Dopo il successo della prima lezione del corso di php oggi sono qui per postare la seconda lezione, in cui andremo ad approfondire l’utilizzo dei form, con il metodo di comunicazione post, accennati nella scorsa lezione. Vedremo inoltre di approfondire la forma condizionale, che abbiamo visto molto brevemente. Inoltre vedremo anche cosa sono e come si utilizzano le costanti in php.
Forma condizionale
Iniziamo con la forma condizionale. Iniziando da questo punto sarà molto più semplice capire svariati passaggi, che risulteranno molto importanti nelle prossime lezioni.
Nell’articolo introduttivo di questo corso, abbiamo visto che in qualsiasi linguaggio di programmazione, compreso il php, hanno come caratteristica comune, la presenza di 3 forme fondamentali logiche di programmazione. Queste forme sono talmente simili in qualsiasi linguaggio, che vengono implementate praticamente in modo uguale, con le stesse terminologie e quasi la stessa sintassi.
Le tre forme principali sono:
- Forma sequenziale
- Forma condizionale
- Forma iterativa
La forma sequenziale prevede che il programma che andremo a creare, ad un certo punto sia in grado, a seconda della situazione, di eseguire un’azione piuttosto che un’altra. Questo può risultare molto utile, anzi fondamentale, per creare dei programmi dinamici.
Come abbiamo visto la scorsa volta, la forma condizionale ha questa sintassi:
Il codice che vi ho appena inserito, come alcuni potranno aver notato, è lo stesso usato quando abbiamo introdotto l’uso dei form. Infatti questo codice serve per controllare se l’utente ha compilato il form in questione e ha quindi premuto sul pulsante submit (il pulsante di conferma in html).
if($_POST[‘data’])
Successivamente, tra le parentesi graffe, sono presenti le istruzioni da far eseguire all’interprete php, introdotto nel primo articolo del corso. Queste istruzioni verranno eseguite solo se la condizione, contenuta tra le parentesi tonde, è corretta. Nel caso di questo frammento di codice, se l’utente ha premuto sul pulsante submit, verrà memorizzato il valore, in questo caso solo uno, all’interno di una variabile.
Chiuse le parentesi graffe, è presente una seconda parte di questo controllo, ovvero il blocco else
else{
echo “Non hai inserito alcun valore”;
}
Questa seconda parte non è obbligatoria, ma è opzionale. Serve solo se la condizione if non è verificata, quindi non è vera. In tal caso, se non lo è, si può far eseguire tutta una serie di istruzioni, come la segnalazione di un errore, come possiamo osservare in questo caso.
Vediamo un altro esempio di forma condizionale
In questa porzione di codice, stiamo controllando se la variabile $value, contiene effettivamente il valore 2.
Se è così, viene stampato “Il valore è corretto”, altrimenti “Il valore è sbagliato”
Abbiamo usato questa simbologia per il controllo -> ==
I due uguali, servono come operatore di uguaglianza. Da non confondersi con =, che invece, come dimostrato nella scorsa lezione, serve come operatore di assegnamento, per assegnare un valore ad una variabile.
Dico di prestare attenzione, in quanto scrivere
if($value = 2){
risulterebbe essere un grave errore semantico. Per fortuna il php engine si accorge di questo errore e lo segnala esplicitamente, cosa che di solito non succede con gli errori semantici. Abbiamo visto tutto questo nell’introduzione del corso.
Abbiamo quindi visto l’operatore di uguaglianza. Ci sono diversi altri operatori di confronto che vengono usati all’interno della forma condizionale
- Operatore di uguaglianza -> ==
- Operatore di disuguaglianza -> !=
- Operatore di maggioranza -> >
- Operatore di minoranza -> <
- Operatore di negazione -> !
Dato che l’operatore di uguaglianza lo abbiamo appena visto, non lo andremo più ad approfondire. Vediamo nel dettaglio invece gli altri.
Operatore di disuguaglianza
L’operatore di disuguaglianza serve per verificare se il valore di un numero, di una stringa di testo o di una variabile sia diverso da un’altra. In questo piccolo controllo, possiamo vedere che se la variabile $value ha un valore diverso da 2, verrà stampato l’avviso “Il valore è corretto” altrimenti “Il valore è sbagliato”.
Operatore di maggioranza
Questo operatore consente di controllare se un determinato valore sia maggiore di un altro.
In questa porzione di codice, se il valore della variabile $value è maggiore di 2, verrà stampato il messaggio “Il valore è corretto”, altrimenti nel caso non lo fosse, verrà stampato il messaggio “Il valore è sbagliato”.
Operatore di minoranza
Per quanto riguarda l’operatore di minoranza, è lo stesso identico concetto dell’operatore di maggioranza. A cambiare è solo la logica. Infatti se il valore della variabile $value è minore di 2, verrà stampato il messaggio “Il valore è corretto”, altrimenti “Il valore è sbagliato”.
Operatore di negazione
L’operatore di negazione verrà approfondito tra qualche lezione. Per ora, basta solo sapere che questo operatore è molto utile, se non fondamentale, per verificare se un’operazione è andata a buon fine oppure no.
Questo vuol dire che se una funzione rilascia alla fine di un processo, un valore negativo, solitamente il numero 0 (stiamo parlando di valore booleani), il processo è andato non è andato a buon fine. In caso contrario, non ci sono errori riscontrabili e quindi non ci sono problemi.
Valori booleani
Dato che abbiamo accennato i valori booleani, vorrei approfondirli brevemente, per fare più chiarezza in alcuni concetti che possono risultare poco chiari.
La forma condizionale ha alla base la logica booleana. Ovvero la logica del vero o falso. Se una condizione è verificata, è vera e quindi vengono eseguite le istruzioni del blocco if, altrimenti, se la condizione è falsa, se il programma lo prevede, vengono eseguite le istruzioni del blocco else. Dico se il programma lo prevede, in quanto, come abbiamo specificato anche in precedenza, l’istruzione else non è obbligatoria all’interno della forma condizionale.
La logica dei valori booleani nella forma condizionale viene applicata in tutti i linguaggi di programmazione.
In php, come in tutti i linguaggi, esistono due parole chiave per rappresentare il vero e il falso.
- Vero -> in informatica rappresentato con il valore numerico uno (1) -> True
- Falso -> in informatica rappresentato con il valore numerico zero (0) -> False
Vediamo di confermare questa cosa.
Diamo alla variabile $value il valore 0 e poi verifichiamo se è uguale a false
Possiamo notare che la condizione viene verificata. Infatti verrà stampato il messaggio “Il valore è falso”.
La stessa cosa si può fare per la parola chiave (keyword) True.
Fino a questo momento abbiamo visto la forma condizionale semplice. Nelle prossime lezioni vedremo la forma condizionale con più di una condizione.
Costanti
Nella scorsa lezione abbiamo introdotto le variabili. Abbiamo visto che le variabili sono uno spazio di memoria allocato nella ram, che possono contenere dei valori. Questi valori possono essere cambiati nel tempo.
Ma come si deve fare se si vuole ottenere una variabile che abbia un valore fisso? Cioè che non possa mai essere modificato, neppure intenzionalmente. Beh per questo scopo entrano in gioco le costanti, ovvero delle variabili statiche, che una volta dichiarate e inizializzate, non possono essere più alterate o modificate.
Le regole di inserimento sono le stesse che per le variabili. Questo vuol dire che i valori numerici non devono avere gli apici, a meno che servano solo come testo. Le stringhe di testo, invece, devono essere contenute da apici. Insomma non cambia nulla.
Per realizzare delle costanti, si usa la funzione define di php. Vediamo un esempio di codice, per poi vedere i vari passaggi.
Possiamo intanto vedere che le funzioni, tutte le funzioni in php, per essere usate, devono essere richiamate con il loro nome. In questo caso si scrive il nome define, seguito dalle parentesi tonde. All’interno delle parentesi tonde, dovranno essere inseriti i valori richiesti dalla funzione stessa. Ogni valore deve essere separato dalla virgola. Nel caso della funzione define, ci sono due valori obbligatori. Il primo serve per assegnare un nome alla costante, quindi essenzialmente dichiarare la costante (come abbiamo visto per le variabili). Come secondo valore, separato dalla virgola, deve essere inserito il valore che si deve dare alla costante. Essenzialmente la costante viene inizializzata.
I parametri che devono essere inseriti per ogni funzione, si chiamano parametri formali. Per il momento è sufficiente che sappiate come si chiamano. Poi li approfondiremo nelle prossime lezioni.
Vediamo come si richiama una costante. Per farlo, vediamo questo passaggio all’interno di questo esempio di codice.
In questo caso abbiamo stampato il valore della costante. Ogni costante, per essere richiamata, non deve essere usato il simbolo del dollaro, come si fa con le normali variabili che abbiamo visto fino ad ora.
Form
E siamo arrivati finalmente all’ultima parte di questa lezione, dove vedremo qualcosa di nuovo sui form, sfruttando tutto quello che abbiamo imparato oggi.
La scorsa volta avevamo visto un form molto simile a questo
Questo codice lo abbiamo ampiamente visto la scorsa volta. Non abbiamo fatto altro che inviare un numero, grazie alla pressione del pulsante submit, con un campo nascosto. Il valore veniva prelevato tramite il metodo di comunicazione post, che è ritenuto migliore per l’uso dei form.
Una volta che il valore è stato recuperato, lo stampiamo. Se non viene inserito alcun valore, la variabile $number avrà come valore il messaggio “Non hai inserito alcun valore”.
Vediamo come ampliare un po’ questo codice.
Partiamo dalla prima parte
if($_POST[‘data’]){
$number = $_POST[‘number’];
}
else{
$number = “Non hai inserito alcun valore”;
}
In questa parte, viene verificato se il pulsante submit viene premuto dall’utente e quindi se i valori vengono inviati. Questo controllo fa si di controllare che il vettore (vedremo più avanti cosa sia) $_POST sia dichiarato e inizializzato. Una volta fatto ciò, se la condizione è verificata, viene salvato nella variabile $number, il valore numerico inviato tramite il campo hidden. Se la condizione non è verificata, è molto probabile che l’utente non abbia premuto il pulsante submit, e di conseguenza, non abbia inviato alcun valore. A questo punto scatta il blocco di istruzioni dell’else, che assegna alla variabile $number il valore “Non hai inserito alcun valore”.
Questo metodo di controllo è piuttosto scadente, in quanto per esempio, una persona malintenzionata potrebbe dichiarare a mano il vettore $_POST (vedremo nella prossima lezione cosa sia un vettore), magari non inizializzarlo oppure inizializzarlo come vuole e quindi fregare il sistema. Per essere sicuri che tutto ciò non avvenga, bisogna usare la funzione isset, che vuol dire is set, ovvero è settata
Questa funzione non fa altro che verificare che il vettore $_POST sia inizializzato, dichiarato e che sia tutto a posto. Vediamo di applicarlo nel codice
if(isset($_POST[‘data’])){
$number = $_POST[‘number’];
}
else{
$number = “Non hai inserito alcun valore”;
}
Come tutte le funzioni in php, come abbiamo visto anche in precedenza, bisogna scrivere il nome della funzione, seguito dalle parentesi tonde. Questa funzione richiede un solo parametro, ovvero la variabile da controllare. In questo caso dobbiamo controllare un vettore. Quello che posso dirvi per il momento sui vettori, è che sono praticamente come le variabili, ma hanno qualche caratteristica in più.
La funzione isset può essere usata per controllare qualsiasi variabile, anche create da noi, o qualsiasi vettore.
Passiamo alla seconda miglioria.
La seconda miglioria che voglio apportare al codice, riguarda sempre la parte del controllo. Più precisamente, riguarda la memorizzazione del contenuto di un form all’interno di una variabile. Può capitare che molti hacker tentino di eseguire del codice php, dannoso ovviamente, sfruttando i form. Per evitare ciò ci sono tantissime tecniche, che vedremo durante questo corso. Intanto ci accontentiamo di usare una funzione, che abbiamo ampiamente visto all’interno del mio articolo riguardante l’sql injection, chiamata strip_tags, che rimuove dalla stringa del form, tutti i tag html e php. Attenzione tutti i tag, non le funzioni o altre cose. Quindi questa funzione protegge in parte il nostro programma.
Vediamo come applicare tutto questo
if(isset($_POST[‘data’])){
$number = strip_tags($_POST[‘number’]);
}
else{
$number = “Non hai inserito alcun valore”;
}
Come abbiamo potuto notare, la modifica è stata veramente molto semplice. Come tutte le funzioni, anche questa rispetta le regole delle altre. Come parametro richiede la variabile o il vettore da controllare.
Ora, utilizzando tutto quello che abbiamo visto appena adesso, più ovviamente, tutto ciò che abbiamo appreso da questa lezione, lo usiamo per scrivere un piccolo programma che permetta all’utente di inserire il proprio nome e la propria età. Inseriti questi dati, il programma deve essere in grado di stampare il nome dell’utente e dire se la persona è maggiorenne o minorenne. Programma veramente ultra semplice. Useremo i tag html, che darò ovviamente per scontati, come ho detto anche nell’introduzione del corso.
Il codice non lo commento, in quanto è veramente ben comprensibile e non vi è nulla di cui non abbiamo fatto in questa lezione. Ti invito a provarlo e magari a modificarlo, per ampliarlo. Nella prossima versione, vedremo di realizzare un programmino un po’ più complicato.
Approfondimento
Prima di concludere questa lezione, ci tenevo a lasciare qualche link per approfondire.
La forma condizionale in java [parte 2]
Conclusioni
E’ giunto il momento di concludere anche questa lezione, che spero l’abbia trovata utile. Se non ti è chiaro qualcosa, scrivimi nei commenti cosa non hai capito, così cercherò di aiutarti.
Quindi con questo è tutto e ti aspetto ad un mio prossimo post