La verifica ed il controllo delle informazioni inserite da un utente in form costituisce un'operazione di primaria importanza; un form non controllato pu? dare grandissimi problemi di sicurezza per le vostre applicazioni web: pensate sia ad utenti "alle prime armi" che potrebbero non capire che tipo i dato state richiedendo loro o molto peggio ad utenti malintenzionati che vogliano danneggiare il vostro sito.Il controllo delle informazioni inserite ? quindi un'ottima procedura per proteggere il proprio sito dai malintenzionati ed in pi? ? un cordiale aiuto a quegli utenti poco esperti che potrebbero commettere involontariamente errori.
Iniziamo con un esempio di un form [file form.html]:
<form action="controllo_info.php" method="post"> nome: <input type="text" size="20" name="nome"> quanti anni hai? <input type="text" size="4" name="anni"> sesso: <select name="sesso"> <option>scegli</option> <option value="maschio">maschio</option> <option value="femmina">femmina</option> </select> email: <input type="text" size="20" name="email"> <input type="submit" value=" invia "> |
visto dal browser [nel esempio il form non funziona volutamente] |
In questo tutorial non tratteremo le caratteristiche dei form, se desiderate farlo potete consultare il tutorial "I form ed gli elementi che gli che li compogano" che verte proprio su questo argomento
Il form punta verso un file d'elaborazione: controllo_info.php .
In questo file, prima di procedere all'elaborazione delle informazioni provenienti del form, dovremo fare alcuni controlli. Di seguito alcuni suggerimenti per controllare i dati provenienti da un form di questo tipo:
- inanzitutto voglio che l'utente inserisca tutte le informazioni che richiedo all'interno del form, ovvero l'utente deve compilare tutti i campi per poter procedere all'elaborazione del form
- il campo "et?" deve contenere solo numeri e non altri caratteri: non si ? mai vista un et? "cew4g43"
- il campo "email" deve contenere il carattere "@" altrimenti non ? un indirizzo email esistente
<? # controllo campi compilati if (( $nome == "" ) || ( $et? == "" ) || ( $sesso == "" ) || ( $email == "" )) { echo "<h3>Errore!</h3><br>Deve compilare tutti i campi dal form per continuare<br> La preghiamo di <A HREF=\"javascript:history.go(-1)\">tornare indietro e correggere</A>. Grazie"; exit; }# controllo campo et? compilato con numeri if (!is_numeric($telefono)) { echo "<h3>Errore!</h3><br>Deve inserire la sua et?<br> La preghiamo di <A HREF=\"javascript:history.go(-1)\">tornare indietro e correggere</A>. Grazie"; exit; } # controllo campo email - email valida if (!ereg("@",$email)){ echo "<h3>Errore!</h3><br>Deve inserire una email valida<br> La preghiamo di <A HREF=\"javascript:history.go(-1)\">tornare indietro e correggere</A>. Grazie"; exit; } # inizio elaborazione dei dati ?> |
Analizziamo il codice php che effettua il controllo.
if (( $nome == "" ) || ( $et? == "" ) || ( $sesso == "" ) || ( $email == "" ))
controlla che tutti i campi o meglio le variabili ad essi associati contengani almeno un valore cio? che l'utente abbia compilato tutti i campi come volevamo.
if (!is_numeric($telefono))
questo codice controllla che la variabile $telefono contengo come valore solo numeri o stringi di numeri.
if (!ereg("@",$email))
con questo if controllerete che nella variabile $email ci sia il carattere "@" ovvero controlla la presenza della "@" nel valore della variabile $email
Tutto quello che si trova dentro le parentesi { e } ? l'azione che php dovr? effettuare nel caso in cui "if" abbia un esito vero.
Il comando echo stamper? a video sul browser del'utente il messaggio di errore e lo inviter? a correggerlo per poter proseguire.
(la presenza di exit; prima della parentesi di chiusura } interrompe l'elaborazione dello script).
Adesso che avete fatto un primo e semplice controllo potete utilizzare i dati ottenuti dal form per archiviarli in un database MySQL, inviarli per email, stamparli a video o far elaborarli come meglio credete.