Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di...

28
Corso di PHP

Transcript of Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di...

Page 1: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Corso di PHP

Page 2: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Php il linguaggio

• HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione.

• Invece PHP è un linguaggio di programmazione, come il pascal o il linguaggio C.

• Un linguaggio di programmazione produce delle pagine dinamiche o interattive il cui contenuto può variare a seconda delle scelte dell'utente.

Page 3: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Dove si scrive e come si scrive il codice

• Il codice PHP può essere inserito dentro il codice HTML tra i tag:

• Il codice di un linguaggio di programmazione all'interno di una pagina web viene detto script.

• Un programma PHP si edita come una qualunque pagina HTML con un editor testuale, ma deve essere salvato con estensione .php

Page 4: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

• Questo significa che il codice PHP deve essere interpretato ed eseguito da un apposito modulo PHP che risiede nel server.

• Se si scrive un programma PHP, se ne può vedere l'esecuzione solo in rete e non sul computer locale, a meno che non abbia si abbia installato su di esso sia il modulo PHP, sia il programma APACHE che trasforma in un server il PC.

Funziona così:

•Si scrive il programma con un editor testuale. •Si salva il file con estensione .php; •Si carica (upload) il file sul server; •Si chiama il programma .php digitando l'indirizzo (URL) sul browser; •Il server preleva la pagina chiamata e la manda al modulo PHP; •Il modulo PHP esegue le istruzioni contenute nel programma e genera una pagina web al volo; •Il server rimanda la pagina web al browser che la interpreta e visualizza. •Se cerchi di visualizzare dal tuo browser il codice sorgente di una pagina .php, vedrai solo il codice HTML generato dal modulo PHP.

PHP è un linguaggio di programmazione lato server.

Page 5: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Primo esempio• Come abbiamo detto, il codice PHP può essere inserito dentro il codice

HTML, ma si può anche inserire codice HTML dentro il codice PHP.• Questo avviene con l'istruzione echo. Apri il tuo editor e scrivi (all'interno di

un file HTML) la tua prima riga di codice PHP.Qui di seguito puoi vedere due esempi:

<body><?phpecho"ciao"; ?></body>

<body><?phpecho"<b>ciao</b>, <br /> come ti chiami?"; ?></body>

Osserva la sintassi dell'istruzione echo:All'interno dell'istruzione echo c'è una stringa di HTML (valgono i tag HTML) La stringa di HTML è messa tra virgolette " (ma si possono usare anche gli apici ') L'istruzione termina con punto e virgola ; (come in altri linguaggi di programmazione)

Page 6: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Salvare il file php

• Salva il file come prova.php, ma non tentare di eseguire il programma in locale cliccandoci su!

• Se clicchi su un file .php, il sistema operativo chiederà quale programma si vuole aprire. Spesso apre il blocco note in cui è visibile solo il codice.

• Per vedere l'esecuzione del programma, lo devi pubblicare sul server!

• Chiamando il programma dal browser, il modulo PHP costruirà al volo una pagina HTML che sarà visualizzata dal tuo browser.

• Qual è il vantaggio?Per il momento nessuno, per avere un minimo di interattività dobbiamo introdurre le variabili.

Page 7: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Pubblicare sul server

• Per pubblicare sul server (cioè nel sito remoto) devi prima aver salvato il file prova.php nel sito locale, cioè in una cartella del tuo computer.

• Se hai installato EasyPHP è possibile una volta avviato il server Apache emulare un server web in locale.

Page 8: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Sito locale Cliccando con il tasto destro sull’iconadi EasyPHP della barra degli strumenti del desktop di windows si apre una finestra di dialogo con diverse opzioni.Cliccando su Sito Locale si apre la finestra del browser predefinito con la pagina principale del sito associata all’indirizzo IP di default http://127.0.0.1/ a cui è associato anche l’indirizzo mnemonico localhost.

Page 9: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Gestione file con EasyPHP

Con EasyPHP la gestione dei file e la pubblicazione dei file in un serverLocale avviene con la modalità classica con cui si gestiscono i file in windows.La cartella www e la cartella principale dove vengono salvati i file del sito e dove è presente un file index.php. Qui è possibile creare nuove cartelle e salvare i file del sito nei diversi formati.Una volta salvati (pubblicati) i file php è possibile eseguirli direttamente dal browser.

Page 10: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Le variabili

• Una variabile PHP non deve generalmente essere dichiarata, come in altri linguaggi di programmazione

• Il nome di una variabile deve essere preceduto dal carattere $, può contenere lettere, cifre e il carattere "_" (underscore), ma non può iniziare con una cifra.

Esempi: $a $pippo $a12 $contatore $mario_rossi

Tipi di variabiliIl tipo di variabile dipende dal loro contenuto. Le variabili semplici possono essere: di tipo numerico se contengono valori numerici di tipo stringa se contengono stringhe di caratteri di tipo boolean se contengono solo i valori TRUE/FALSE

Page 11: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Gli OperatoriPer operare sulle variabili si usano operatori aritmetici, relazionali o logici.

Page 12: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Input di dati

Tutto quello che abbiamo visto non è molto utile se non troviamo il modo di far immettere i dati all'utente. Si tratta in realtà di 2 file: il primo è un file HTML in cui è contenuto un modulo o form di immissione dati, il secondo è il file PHP che elabora i dati di ingresso.

Page 13: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Input di dati 2

<body bgcolor="#ccff00"><form action ="calcola.php" method="post">Inserisci due numeri:<input type=text name="a"><input type=text name="b"><input type="submit"></form></body>

Il tag form deve avere due attributi importanti (action e method) che permettono il collegamento al programma calcola.php che elaborerà i dati. E' assolutamente necessario che i due input abbiano l'attributo name perchè il programma PHP deve creare delle variabili con il nome assegnato (in questo caso $a e $b) e con il valore immesso dall'utente prelevato attraverso l’arraysuperglobali $_ POST.

<body><?php$a=$_POST[‘a’];$b=$_POST[‘b’];$somma=$a + $b;$differenza= $a - $b;$prodotto = $a *$b;$rapporto = $a/$b;$resto = $a%$b;

echo" <p>Hai immesso i numeri $a e $b</p><p>La somma dei due numeri è $somma</p><p>La differenza è $differenza</p><p>Il prodotto è $prodotto</p><p>Il rapporto è $rapporto</p><p>Il resto della divisione è $resto</p>";?><p><a href="calcola.htm">Torna indietro</a></p></body>

Calcola.htm Calcola.php

Page 14: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Le variabili superglobali $_GET, $_POST

PHP è un linguaggio dove in generale non sono supportate le cosiddette variabiliglobali, cioè variabili utilizzabili in qualsiasi ambito e punto del codice.Ad ogni modo però in PHP, e nello specifico dal 4.1.x in poi sono state introdottevariabili interne di sistema che hanno comportamenti analoghi e sono cosiddetteglobali, anzi, superglobali.In particolare si tratta di array chiamati superglobali e predefiniti in PHP per l'utilizzo da parte dello sviluppatore.Vediamo di seguito questi array superglobali:$_GET[ ]E' un array che include tutte le variabili ricevute da PHP tramite browser con il metodo GET di HTTP.$_POST[ ]E' un array che include tutte le variabili ricevute da PHP tramite browser con il metodo POST di HTTP.

Page 15: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

La selezione IF

<?//specifico il valore della variabile $tempo$tempo = "sole";

//Costruisco la condizioneif ($tempo == "piove"){print "resto a casa";}else{print "vado al parco";}?>

Page 16: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

La selezione if … else<?//specifico il valore della variabile $tempo$tempo = "sole";//...e quello della variabile $temperatura$temperatura = "freddo";

//Costruisco la condizioneif ($tempo == "piove"){  if ($temperatura == "freddo"){  print "resto a casa";  }else{  print "vado al bar";  }}else{print "vado al parco";}?>

Page 17: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

La selezione multipla switch<?//specifico il valore della variabile $tempo$tempo = "sole";switch ($tempo) {//se piove...case ‘piove‘:print "resto a casa"break;

//se c‘è il sole...case ‘sole‘:print "vado al parco"break;

//negli altri casi...default:print "vado al bar"}?>

Page 18: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Le itarazioni/cicli

while (condizione) {istruzione;istruzione;... ;};

do {istruzione;istruzione;... ;} while (condizione);

for ($i=0; $i<$n; $i++) {istruzione;istruzione;... ;};

Iterazione while

Iterazione do .. whileIterazione for

In PHP esistono tre tipi di cicli:•l'istruzione while •l'istruzione do .. while •l'istruzione for

Page 19: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Gli arrayGli array non sono altro che contenitori dove poter stipare dati, con un contatore univoco per ogni dato inserito.

Definizione di array:

$saluto = array('buongiorno','buonasera','buonanotte');

Oppure:

$saluto[0] = 'buongiorno';$saluto[1] = 'buonasera';$saluto[2] = 'buonanotte';

Se scriviamo:print $saluto[0]."<br>\n";print $saluto[1]."<br>\n";print $saluto[2]."<br>\n";

Otterremo come risultato:buongiornobuonaserabuonanotte

Page 20: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Contare in array:

Per contare gli elementi contenuti in un array dobbiamo utilizzare la funzione count()

Esempio:Supponiamo di avere un array così composto:$saluto = array('buongiorno','buonasera','buonanotte'); Se scriviamo $nomeacaso = count($saluto); La variabile $nomeacaso da adesso contiene il numero degli elementi dell'array, ossia 3.

Page 21: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Ciclo FOR ed array:Procedura ciclo FOR:

Dopo aver ricavato il numero degli elementi con la funzione count() dobbiamo scrivere il ciclo for fermandoci appena trovato l'ultimo elemento. La chiave di lettura sarà la stessa variabile di controllo del ciclo FOR.

Esempio:$saluto = array('buongiorno','buonasera','buonanotte');$conta = count($saluto);for($i=0;$i<$conta;$i++){echo"<span style="color:green;">"$saluto[$i]."</span><br>";}Otterremo come risultato:buongiornobuonaserabuonanotte

Page 22: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Ciclo foreach()Il ciclo foreach si utilizza esclusivamente per gli array. In pratica il ciclo guarda dentro un array e per ogni elemento ne estrae la chiave ed il valore.

Sintassi ciclo foreach:foreach($array as $chiave => $valore){..operazioni..}Per ogni ciclo avremo $chiave contenente la chiave dell'elemento esaminato, e $valore contenente il valore dell'elemento esaminato.

Esempio: <?php$saluto2['mattina'] = 'buongiorno';$saluto2['sera'] = 'buonasera';$saluto2['notte'] = 'buonanotte';foreach ( $saluto2 as $chiave => $valore) {echo $chiave."--".$valore."<br/>";}?>

Dal ciclo dell'esempio otterremo come risultato:mattina--buongiornosera--buonaseranotte--buonanotte

Page 23: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

Ordinare gli array

Per ordinare gli array il linguaggio Php ci mette a disposizione delle funzioni:

•sort() (Ordine crescente e rinomina le chiavi) •rsort() (Ordine DEcrescente e rinomina le chiavi) •asort() (Ordine crescente con chiavi originali) •arsort() (Ordine DEcrecente con chiavi originali) •array_reverse() (Inverte l'ordine)

Page 24: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

sort()sort()La funzione sort() ordina un array in ordine crescente, e rinomina le sue chiavi partendo da zero.

Esempio: <?$provarray=array(5,'a',7,1,'r','c');sort($provarray);foreach($provarray as $chiave => $valore){echo "provarray[".$chiave."]=".$valore."<br />";}?>Otteniamo come risultato:provarray[0]=aprovarray[1]=cprovarray[2]=rprovarray[3]=1provarray[4]=5provarray[5]=7

Page 25: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

rsort()rsort()La funzione rsort() ordina un array in ordine DEcrescente, e rinomina le sue chiavi partendo da zero.

Esempio: <?$provarray=array(5,'a',7,1,'r','c');rsort($provarray);foreach($provarray as $chiave => $valore){echo "provarray[".$chiave."]=".$valore."<br />";}?>Otteniamo come risultato:provarray[0]=7provarray[1]=5provarray[2]=1provarray[3]=rprovarray[4]=cprovarray[5]=a

Page 26: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

asort()asort()La funzione asort() ordina un array in ordine crescente e mantiene le sue chiavi originali.

Esempio: <?$provarray=array(5,'a',7,1,'r','c');asort($provarray);foreach($provarray as $chiave => $valore){echo "provarray[".$chiave."]=".$valore."<br />";}?>Otteniamo come risultato:provarray[1]=aprovarray[5]=cprovarray[4]=rprovarray[3]=1provarray[0]=5provarray[2]=7

Page 27: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

arsort()arsort()La funzione arsort() ordina un array in ordine DEcrescente e mantiene le sue chiavi originali.

Esempio: <?$provarray=array(5,'a',7,1,'r','c');arsort($provarray);foreach($provarray as $chiave => $valore){echo "provarray[".$chiave."]=".$valore."<br />";}?>Otteniamo come risultato:provarray[2]=7provarray[0]=5provarray[3]=1provarray[4]=rprovarray[5]=cprovarray[1]=a

Page 28: Corso di PHP. Php il linguaggio HTML definisce l'aspetto della pagina e non è un linguaggio di programmazione. Invece PHP è un linguaggio di programmazione,

array_reverse()array_reverse()La funzione array_reverse() inverte l'ordine e rinomina le chiavi.Se vogliamo mantenere le chiavi originali dobbiamo scrivere: array_reverse($array,true);

Esempio: <?$provarray=array(5,'a',7,1,'r','c');$provarray2=array_reverse($provarray);echo"array_reverse con chiavi rinominate:<br />";foreach($provarray2 as $chiave => $valore){echo "provarray2[".$chiave."]=".$valore."<br />";}echo "<br />";$provarray3=array_reverse($provarray,true);echo"array_reverse con chiavi originali:<br />";foreach($provarray3 as $chiave => $valore){echo "provarray3[".$chiave."]=".$valore."<br />";}?>

Otteniamo come risultato:array_reverse con chiavi rinominate:provarray2[0]=cprovarray2[1]=rprovarray2[2]=1provarray2[3]=7provarray2[4]=aprovarray2[5]=5

array_reverse con chiavi originali:provarray3[5]=cprovarray3[4]=rprovarray3[3]=1provarray3[2]=7provarray3[1]=aprovarray3[0]=5