ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL2-2_5AST...

17
EL2-2_5ST INTRODUZIONE AL PHP Autore: __________________________________________ Data: _________Classe: ____ ATTENZIONE Il significato dei simboli usati in questa e nelle prossime esercitazioni è spiegato dettagliatamente nella guida http://www.classiperlo.altervista.org/Materiale/Generale/Simboli.d oc (scaricala e consultala in caso di dubbi). Il simbolo della manina in colore blu indica una domanda alla quale bisogna OBBLIGATORIAMENTE rispondere scrivendo in colore blu. Il simbolo della manina in colore blu con la scritta Cou New indica un codice che va incollato usando Courier New in colore blu. Il simbolo della manina in nero indica una o più immagini o schermate da incollare (protette col tuo watermark, le tue iniziali di Nome e Cognome) Il simbolo della manina con colori attenuati indica un'operazione che bisogna svolgere, senza rispondere a nessuna domanda (non vuol dire che non devi fare nulla - significa solo che non devi scrivere niente!). Il simbolo della manina col ciak video indica un video da registrare con Gif Recorder (http://gifrecorder.com/ )e da salvare in formato gif nella cartella dell'esercitazione. recupero. Questo simbolo indica un video di esempio o di spiegazioni da guardare su YouTube

Transcript of ESERCITAZIONE SUGLI ALGORITMI NUMERO TREclassiperlo.altervista.org/Materiale/5ast/EL2-2_5AST...

EL2-2_5ST INTRODUZIONE AL PHPAutore: __________________________________________ Data: _________Classe: ____

ATTENZIONE

Il significato dei simboli usati in questa e nelle prossime esercitazioni è spiegato dettagliatamente nella guida http://www.classiperlo.altervista.org/Materiale/Generale/Simboli.doc (scaricala e consultala in caso di dubbi).

Il simbolo della manina in colore blu indica una domanda alla quale bisogna OBBLIGATORIAMENTE rispondere scrivendo in colore blu.

Il simbolo della manina in colore blu con la scritta Cou New indica un codice che va incollato usando Courier New in colore blu.

Il simbolo della manina in nero indica una o più immagini o schermate da incollare (protette col tuo watermark, le tue iniziali di Nome e Cognome)

Il simbolo della manina con colori attenuati indica un'operazione che bisogna svolgere, senza rispondere a nessuna domanda (non vuol dire che non devi fare nulla - significa solo che non devi scrivere niente!).

Il simbolo della manina col ciak video indica un video da registrare con Gif Recorder (http://gifrecorder.com/)e da salvare in formato gif nella cartella dell'esercitazione.recupero.

Questo simbolo indica un video di esempio o di spiegazioni da guardare su YouTube

A) OPERAZIONI PRELIMINARI

A1) Crea una sottocartella di ES2 con nome uguale a quello di questa esercitazione (EL2-2_5AST Introduzione al PHP)

A2) All'interno della sottocartella EL2-2_5AST Introduzione al PHP salva questo file Word

B) IL LINGUAGGIO PHP

Finora hai imparato a scrivere programmi in linguaggio javascript. Il linguaggio javascript si integra all'interno di una pagina HTML (o in file .js ad essa collegati) e viene eseguito dal browser. Si dice che è un linguaggio di programmazione lato client.

.

B1) Cosa si intende con "linguaggio di programmazione lato client"?

Ci sono alcune cose che è possibile fare con un linguaggio lato client (come javascript) e altre invece che sono impossibili.

B2) Quali fra le cose qui elencate sono possibili e quali invece sono impossibili in javascript (scrivi POSSIBILE o IMPOSSIBILE accanto a ciascuna)?

contare il numero di visitatori sulla pagina di un sito creare una calcolatrice scientifica simulare il sistema solare creare una pagina per gestire prenotazioni a teatro creare un gioco con animazioni e suoni controllare la correttezza della password di accesso a un sito

Per tutte le cose che non possono essere fatte lato client (IMPOSSIBILE), occorre usare un

linguaggio di programmazione lato server come il PHP. Niente paura però: il PHP è abbastanza simile al javascript.

Un server PHP è un programma che elabora le richieste alle pagine contenenti codice PHP e permette di visualizzarle nel browser.

Il programma USBWebserver (che hai scaricato nella precedente esercitazione) funziona anche da server PHP, cioè è in grado di eseguire programmi scritti in PHP. Perciò non abbiamo bisogno d'altro per cominciare... .

B3) Se USBWebserver è il server, chi è il client?

C) UNA SEMPLICE PAGINA HTML

C1) Nella cartella root di USBWebserver crea una pagina di nome Php1.html simile a quella mostrata in figura:

Usa un DIV per il quadrato rosso e applicagli gli stili incorporati per il bordo rosso, le dimensioni e il padding delle scritte.

C2) → Codice pagina HTML

C4) Apri Php1.html col browser (doppio click) e incolla qui sotto una schermata:

C5) Apri la pagina Php1.html passando attraverso il server PHP (devi prima avviare il programma USBWebserver). Quale indirizzo devi digitare nell'URL del browser?

SUGGERIMENTO

Se la cartella root di USBWebserver NON contiene nessuna pagina di nome index (con estensione .html o .php), aprendo l'indirizzo localhost verrà visualizzato l'elenco dei file presenti in root:

C6) La visualizzazione della pagina nei due modi (C4 e C5) dovrebbe essere identica. Qual è dunque la differenza? Spiegami:

Le due visualizzazioni sono identiche perché la nostra pagina non contiene codice PHP da processare. Si tratta di una normale pagina HTML. Niente di strano fin qui...

D) LA TUA PRIMA PAGINA IN PHP

D1) Fai una copia di Php1.html e rinominala in Php2.php (cambia nome e estensione).

ESTENSIONE HTML E PHP

L'estensione .php serve per far capire al server che la pagina contiene codice PHP e che deve dunque essere processata (elaborata).

Le pagine con estensione .html non vengono processate dal server, cioè l'eventuale codice PHP contenuto in esse non viene eseguito. In pratica il server prende le pagine .html e le passa al browser senza nessuna elaborazione e senza eseguire nessun codice.

D2) Inserisci nella tua pagina il seguente codice PHP (fai gli aggiustamenti necessari a seconda del caso, in base al tuo programma):

<p> Sono le ore: <?phpdate_default_timezone_set('Europe/Rome');$orario = date("H:i:s");echo $orario;?></p><p> Del giorno: <?php$data = date("d/m/Y");echo $data;

?></p>

Osserva anzitutto come il codice PHP si inserisce in mezzo al codice HTML:

Praticamente puoi inserire il PHP ovunque: basta aprire il tag <?php all'inizio e richiuderlo con ?> alla fine. Puoi aprire e chiudere il PHP tutte le volte che vuoi all'interno della pagina.

Il PHP si inserisce in qualsiasi punto del codice HTML. Basta aprire il tag <?php, scrivere il codice PHP in mezzo e quindi richiuderlo con ?>.

PUNTO E VIRGOLA FINALE

Tutte le istruzioni PHP devono obbligatoriamente essere terminate da un punto e virgola finale. Se manca il punto e virgola, si ottengono strani messaggi di errore, del tipo:

Parse error: syntax error, unexpected 'echo' (T_ECHO) in E:\Download\USBWebserver v8.6\root\php2.php on line 25

Quando vedi una scritta di questo tipo controlla attentamente non solo la riga su cui è stato segnalato l'errore, ma anche le righe precedenti. Nel 90% dei casi ti sei dimenticato un punto e virgola finale.

D3) Visualizza Php2.php nel browser (attento all'indirizzo che devi scrivere - devi passare attraverso il server web) e incolla qui una schermata:

D4) Visualizza il sorgente della pagina nel browser (tasto destro e poi Visualizza sorgente pagina in Chrome) e incollalo qui sotto:

D5) Cosa noti? Che fine hanno fatto le istruzioni in PHP? Spiegami:

È molto importante comprendere bene questo punto, prima di andare avanti. La pagina .php si trova

sul computer che ospita il server.

Il server elabora la pagina, eseguendo le istruzioni in linguaggio PHP, e quindi la invia al client (cioè al browser). Il browser riceve solo il risultato finale dell'elaborazione, cioè una normale pagina HTML.

D6) Dal momento che la pagina ricevuta dal browser non contiene più traccia del codice PHP, in quale modo l'utente può accorgersi che tale codice era presente in origine? SUGGERIMENTO: pensa all'URL della pagina...

D7) Usando Nu Validator valida il codice HTML (compresa la parte generata al volo dal PHP - usa copia e incolla da visualizza sorgente pagina). Se ci sono errori correggili. Incolla una schermata (qui non dovrebbero esserci errori - se ci sono correggi la pagina prima di proseguire!):

E) VARIABILI, DATE E ISTRUZIONE ECHO

Analizziamo adesso le istruzioni principali del nostro programma, cominciando da:

date_default_timezone_set('Europe/Rome'); // Istruzione 1

L'istruzione date_default_timezone_set('Europe/Rome') è una funzione di library del PHP e serve per settare il fuso orario in base al quale si

deve visualizzare data e ora.

E1) Cosa vuol dire "funzione di library"?

Puoi trovare un elenco di tutti le Timezone supportate qui http://php.net/manual/en/timezones.php

$orario = date("H:i:s"); // Istruzione 2

L'istruzione $orario = date("H:i:s") è una assegnazione (come puoi facilmente vedere).

E2) Da cosa riconosci che si tratta di un'assegnazione? Cos'è una assegnazione?

$orario è una variabile. In PHP qualsiasi nome che inizia col simbolo del dollaro $ è una variabile.

Eccoti qui i riferimenti per la spiegazioni su Programmiamo e W3School:

http://www.programmiamo.altervista.org/php/istruzioni/variabili.html

https://www.w3schools.com/php/php_variables.asp

date("H:i:s")usa la funzione di library date per recuperare ora, minuti e secondo della data corrente

La funzione date può essere usata in molti modi diversi (cambiando i parametri scritti fra parentesi) per ottenere tutte le informazioni riguardo al tempo.

Eccoti qui i riferimenti per la spiegazioni su Programmiamo e W3School:

http://www.programmiamo.altervista.org/php/intro/ora.html

https://www.w3schools.com/php/php_date.asp

In pratica l'istruzione $orario = date("H:i:s") assegna alla variabile $orario una stringa di caratteri con l'ora corrente (nel formato hh:mm:ss).

echo $orario ; //Istruzione 3

L'istruzione echo $orario stampa (visualizza) il contenuto della variabile $orario sulla pagina corrente.

COME SI PRONUNCIA

L'istruzione echo si legge "eco" e non "ecio" (come cacio) come dicono talvolta i miei studenti!

L'istruzione echo è importantissima, poiché consente di creare il codice e il contenuto di una pagina al volo, attraverso il PHP.

Eccoti qui i riferimenti per la spiegazioni su Programmiamo e W3School:

http://www.programmiamo.altervista.org/php/intro/ora.html

https://www.w3schools.com/php/php_echo_print.asp

E3) Adesso spiegami tu il funzionamento delle due istruzioni PHP successive (cerca di essere preciso e completo nella spiegazione):

$data = date("d/m/Y"); // Istruzione 4

echo $data; // Istruzione 5

F) PHP MINIMO E PHP MASSIMO

Ci sono due stili diversi di programmazione in PHP, detti PHP minimo e PHP massimo.

Quando si programma in stile PHP minimo, si costruisce la pagina in HTML e si usa il PHP solo quando è strettamente indispensabile.

Per esempio, la nostra prima pagina Php2.php è stata costruita in stile PHP minimo: il codice PHP è stato usato all'interno del codice HTML, chiudendo e riaprendo il tag <?php ogni volta che era necessario.

Adesso ti faccio vedere un esempio di PHP massimo.

F1) Fa una copia di Php2.php nella cartella root e rinominala Php3.php

F2) Modifica Php3.php in modo da introdurre il codice seguente (aggiustalo in base alla tua pagina):

<?phpecho "<p> Sono le ore: ";date_default_timezone_set('Europe/Rome');$orario = date("H:i:s");echo $orario;echo "</p><p> Del giorno:" ;$data = date("d/m/Y");echo $data;echo "</p>";?>

F3) Visualizza Php3.php nel browser e incolla qui una schermata:

Non dovresti vedere nessuna differenza rispetto a prima, giusto? Cosa è cambiato allora?

PHP MINIMO PHP MASSIMO<p> Sono le ore: <?phpdate_default_timezone_set('Europe/Rome');$orario = date("H:i:s");echo $orario;?></p><p> Del giorno: <?php$data = date("d/m/Y");

<?phpecho "<p> Sono le ore: ";date_default_timezone_set('Europe/Rome');$orario = date("H:i:s");echo $orario;echo "</p><p> Del giorno:" ;$data = date("d/m/Y");echo $data;echo "</p>";

echo $data;?></p>

?>

F4) Osserva il confronto qui sopra e poi prova a spiegarmi qual è la differenza fra PHP massimo e PHP minimo. Se non ti è chiaro, domanda aiuto al prof.

Volendo, uno potrebbe addirittura produrre l'intera pagina con una serie di istruzioni echo, senza neppure una riga di HTML puro (l'HTML sarebbe scritto attraverso il PHP).

QUAL È LA TECNICA MIGLIORE?

Non c'è una risposta univoca. Dipende dai casi e anche dal gusto personale. Molto spesso si adotta una soluzione intermedia: non si scrive tutto in PHP, ma neppure si apre e si chiude il PHP di continuo dentro la pagina. Programmando sceglierai tu la soluzione che ti sembra di volta in volta preferibile.

Ti faccio osservare che in

echo "</p><p> Del giorno:";

sono andato a capo all'interno degli apici dell'istruzione echo.

DOVE TERMINA UNA ISTRUZIONE IN PHP

Fai attenzione. In PHP le istruzioni terminano solo quando viene scritto il punto e virgola finale. Dunque, anche se si va a capo, se non si mette il punto e virgola, l'istruzione è sempre la stessa.

F5) Che cosa cambia fra andare a capo e scrivere tutto sulla stessa linea in PHP? Per esempio scrivere così:

echo "</p> <p> Del giorno:";oppure così:

echo "</p><p> Del giorno:";

Prova le due diverse versioni dell'istruzione e visualizza in entrambi i casi il codice HTML che viene generato.

ANDARE A CAPO NEL CODICE PHP

Come avrai visto dal tuo esperimento, posso inserire liberamente delle andate a capo scrivendo il codice PHP, ma questo non produce nessuna differenza nella visualizzazione della pagina.

E se avessi voluto visualizzare nella pagina qualcosa di questo genere (andando a capo dopo la scritta Sono le ore)?

F6) Fammi vedere come avrei dovuto modificare il codice PHP per ottenere la visualizzazione su due righe come mostrato sopra (SUGGERIMENTO: sfrutta gli elementi HTML per andare a capo all'interno del codice generato al volo con il PHP):

E se ti piace il codice compatto, ti mostro adesso un'altra versione della nostra pagina.

F7) Fa una copia di Php3.php nella cartella root e rinominala Php4.php

F8) Modifica il codice della pagina in questo modo:

<?phpdate_default_timezone_set('Europe/Rome');$orario = date("H:i:s");$data = date("d/m/Y");echo "<p> Sono le ore: $orario </p><p>Del giorno: $data</p>";?>

DOPPI APICI E APICI SINGOLI

Quando si usano i doppi apici (virgolette) in una istruzione ECHO, le eventuali variabili contenute fra i doppi apici vengono sostituite col loro valore (è quello che succede nell'esempio qui sopra alle variabili $orario e $data).

Quando invece si usano gli apici singoli, i nomi di variabili vengono trattati come stringhe qualsiasi (nessuna sostituzione di valore).

echo "Orario: $orario"; // visualizza Orario: 12:44:02echo 'Orario: $orario'; // visualizza Orario: $orario

F9) Per vedere se hai capito la spiegazione nel box qui sopra, spiegami cosa succederebbe scrivendo (con gli apici singoli):echo '<p> Sono le ore: $orario </p><p>Del giorno: $data</p>';

F10) Cosa vuol dire che il PHP consente di generare dinamicamente codice HTML al volo? Spiega con parole tue:

F11) Copia tutte le pagine che hai creato dalla cartella root alla cartella di questa esercitazione.

BONUS DOMADA D'ESAME +1 PC - EL2-2_5ST - DOMANDA1

INCLUDEPICTURE "http://www.fttr.it/wp-content/uploads/2017/01/question-mark.jpg" \* MERGEFORMATINET INCLUDEPICTURE "http://www.fttr.it/wp-content/uploads/2017/01/question-mark.jpg" \* MERGEFORMATINET INCLUDEPICTURE "http://www.fttr.it/wp-content/uploads/2017/01/question-mark.jpg" \* MERGEFORMATINET

Rispondere alla seguente domanda sul foglio a righe in 8-12 righe (http://classiperlo.altervista.org/File%20comuni/Foglio%20righe.docx). Leggi prima le modalità di compilazione su (http://classiperlo.altervista.org/Materiale/Generale/Simboli.doc).

DOMANDA: Che differenze ci sono fra il linguaggio Javascript e il linguaggio PHP dal punto di vista del funzionamento e del rispettivo scopo?

Invia la risposta separatamente su Classiperlo in un file Word di nome EL2-2_5ST - DOMANDA1.

Salva tutte le risposte alle domande in una cartella a parte, in modo da poterle facilmente ritrovare a fine anno (servono per la preparazione all'esame orale di maturità).

G) OPERAZIONI FINALI

G1) Controlla di aver risposto a tutte le domande e incollato tutte le schermate. Tutte le

caselline dovrebbero avere un segno X, per indicare che hai risposto

G2) Comprimi le immagini contenute in questo file Word (seleziona un'immagine, scheda Formato e poi Comprimi immagini e infine Applica a tutte le immagini del documento) in modo da ridurne le dimensioni.

G3) Controlla che la cartella di questa esercitazione contenga i seguenti file con i nomi qui indicati:

Nome del file Tipo del file DescrizioneEL2-2_5AST Introduzione al PHP Word Il file di questa esercitazionePhp1.html HTML Pagina htmlPhp2.php PHP Pagina PHP Php3.php PHP Pagina PHP Php4.php PHP Pagina PHP

G4) Chiudi tutti i file, zippa la cartella di questa esercitazione e inviala all'insegnante su Classiperlo.