Controllo di un form con PHP. Come controllare che un form sia compilato correttamente.
ALLWEB free
Directory Web Script Linguaggi
Italiano Inglese Tutte
 
 18 Jan 2017
aggiungi in preferiti  
Home    Mappa directory    Script




Controllo form (con php):

Capita spesso di dover chiedere al navigatore informazioni come l'indirizzo email, un nome, una password ecc. tramite un form.
A volte la verifica di tali informazioni Ŕ necessaria per il proseguimento del programma, ed a volte Ŕ necessario ricompilare il form perchŔ contiene informazioni errate.

Per risparmiare al navigatore di dover riscrivere tutte le informazioni corrette del form (cosa che potrebbe far decidere al navigatore di non proseguire..) possiamo REinserire noi stessi i valori nei campi che risultano esatti, questo lo facciamo tramite il passaggio delle variabili globali (in questo esempio POST).


Descrizione script:

In questa sezione creeremo un form che spedisce i dati a questa stessa pagina.
Dopo aver inviato il form uno script verificherÓ che il form sia stato compilato correttamente, altrimenti mostrerÓ di nuovo il form semicompilato (ricordando i dati giÓ inseriti in precedenza).


Prova Script:

FORM DI PROVA:
Per verificare lo script prova ad inviare il form incompleto.
Al momento il form risulta NON completato.
Testo




Come noterete il form si ricorderÓ delle informazioni inserite in precedenza, e non farÓ concludere l'inserimento se tutti i campi non sono completati.

Dopo la corretta compilazione il link riazzera rispedisce le variabili formato GET a questa pagina, il nome "RIAZZERA" vuol significare che le variabili POST da adesso sono tutte nulle (perchŔ non trasferite), ed il form Ŕ riazzerato.


Script:

Lo script scrive il form inserendo come value="" il contenuto delle variabili. Se il form non Ŕ mai stato compilato le variabili sono nulle, e pertanto il form risulterÓ vuoto.

Nel caso all'interno del form ci sia del testo che descrive i campi (come la voce "Testo" nel nostro esempio), pu˛ nascere l'esigenza di mostrare tale scritta di colore rosso nel caso non sia stata compilata. A tale scopo possiamo verificare se il form Ŕ giÓ stato compilato tramite una variabile di controllo nascosta (campo hidden), e mostrare del codice CSS prima e dopo il testo (che lo colora).

Codice:
<?
$attivazione=$_POST['attivazione'];
$testo=$_POST['testo'];
$opzione=$_POST['opzione'];
$sceltaradio=$_POST['sceltaradio'];
$box=$_POST['box'];

if($testo!=null and $opzione!=null and $sceltaradio!=null and $box!=null and $attivazione==2){//se tutte le variabili sono state definite propongo il link
echo"<span style=\"color:red;\">FORM COMPLETATO CORRETTAMENTE</span><br>
<a href=\"articolo_php_controllo_form.php? attivazione=".$attivazione."&testo=".$testo."&opzione=".$opzione." &sceltaradio=".$sceltaradio."&box=".$box." \">Riazzera</a>
";}
else{//se almeno una variabile NON Ŕ stata definita ripropongo il form semicompleto
echo"<span style=\"color:red;\">FORM <b><u>NON</u></b> COMPLETATO CORRETTAMENTE.</span><br>";
echo"<form action=\"articolo_php_controllo_form.php\" method=\"post\">
<input type=\"hidden\" name=\"attivazione\" value=\"2\">";
if($testo=="" and $attivazione==2){echo"<span style=\"color:red;\">";}echo"Testo ";if($testo=="" and $attivazione==2){echo"</span>";}//Se il testo non Ŕ stato compilato lo scrivo di rosso
echo"<input type=\"text\" name=\"testo\" size=\"10\" maxlength=\"10\" value=";
echo "\"".$testo."\"";//il testo non lo verifico, lo scrivo semplicemente
echo"><br>
<select name=\"opzione\" size=\"1\" >
<option";
if($opzione==""){echo" selected ";}//verifica se l'opzione prima Ŕ stata selezionata, se si scrive selected
echo" value=\"\"> </option>
<option";
if($opzione=="seconda"){echo" selected ";}//verifica se l'opzione seconda Ŕ stata selezionata, se si scrive selected
echo" value=\"seconda\">seconda</option>
</select><br>
<input name=\"sceltaradio\" type=\"radio\" value=\"ciao\" ";
if ($sceltaradio=="ciao"){echo "checked";}//verifico il primo radio
echo">
<input name=\"sceltaradio\" type=\"radio\" value=\"ciao2\"";
if ($sceltaradio=="ciao2"){echo "checked";}// verifico il secondo radio
echo"><br>
<input name=\"box\" type=\"checkbox\"";
if($box){echo"checked";}//verifico che il checkbox sia attivo (ON oppure 1 oppure TRUE)
echo"><br>
<input type=\"submit\" value=\" Prova \">
</form>";
}
?>



ATTENZIONE:
- Lo script pu˛ essere copiato ed incollato, ma state attenti ai commenti!! devono stare tutti sulla stessa riga, altrimenti si genera un errore.
- Per uniformare il tutto al protocollo W3C nel link dovrete cambiare tutte le lettere & inserite negli indirizzi internet (link) con &amp;