Controllo form (con php)

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




ecco la pagina html:

FORM DI PROVA

Script:

FORM DI PROVA:
<br /> Per verificare lo script prova ad inviare il form incompleto.<br />
<span style="color:red;">Al momento il form risulta NON completato.</span><br />
<form action="articolo_php_controllo_form.php" method="post">
<div>
<input type="hidden" name="attivazione" value="2" /><span style="color:red;">Testo</span> <input type="text" name="testo" size="10" maxlength="10" value="" /><br />
<select name="opzione" size="1" >
<option selected="selected"  value=""> </option>
<option value="seconda">seconda</option>
</select><br />
<input name="sceltaradio" type="radio" value="ciao"  />
<input name="sceltaradio" type="radio" value="ciao2" /><br />
<input name="box" type="checkbox" /><br />
<input type="submit" value=" Prova " />
</div>
</form></div>
<br />


 
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.

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 della pagina  articolo_php_controllo_form.php:
<?
$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;

fonte: http://www.allwebfree.it/articolo_php_controllo_form.php

Commenti