Controllo dei campi di un modulo Form con il Php

Controllo form (con Php):

Capita spesso di dover compilare un modulo form con i campi indirizzo email, un nome, una password ecc.

Spesso la verifica di tali informazioni è necessaria per il proseguimento del programma, ed a volte è necessario ricompilare il form perchè contiene informazioni errate.

In questo post si definiscono i controlli in Php inseriti direttamente nella pagina Web.

I controlli permettono di segnalare all'utente che compila il modulo che i dati inseriti sono errati o mancanti e per questo viene richiesto di inserire i dati

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 POST 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).

Attenzione alle righe di codice. Controllate che le istruzioni siano tutte sulla stessa riga, in questo esempio per esigenze di spazio lo script a volte va a capo mentre nell'editor deve rimanere sulla stessa riga.

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>";
}
?>
fonte: http://www.allwebfree.it/articolo_php_controllo_form.php

Commenti

Post popolari in questo blog

Simulazioni di reti (con Cisco Packet Tracer)

Esercizi sulla rappresentazione della virgola mobile IEEE 754 (Floating Point)