salve
ho letto, come spesso faccio leggo gli articoli di html.it su php e ne ho trovato uno sulla validazione dei dati input...
interessantissimo al punto che ho subito provato a testarlo e ... non funziona!, certamente commetto qualche errore che mi sfugge ecco come ho provato.
Questo è il file con il form:
<form name="operatori" method="GET" action="reg_operatori.php"> <labl><input type="text" name="nome" >Nominativo</label>
<input type="submit" name="submit" value="invia"> </form>
e questo è il file php che contiene la validazione:
Codice PHP:
$name = filter_input(INPUT_GET, 'nome', FILTER_VALIDATE_REGEXP, array(
'options' => array( 'regexp' => "/[a-z]{3,}/i")));
switch(true) {
case is_null($name):
echo "Il nome non è stato specificato";
break;
case $name == false:
echo "Il nome non è stato specificato nel formato corretto";
break;
default:
echo $name; break;
se ho capito bene il codice dovrebbe funzionare cosi: se nel campo non scrivo niente dovrei avere l'output del primo "case"; se se scrivo caratteri che non corrispondono a lettere da [a-z] dovrei avere l'output del secondo "case"; se invece va tutto bene dovrei avere il "default". c'è anche il minimo delle tre lettere, ma sipuo evitare.
fatto è che se imputo es. " <<<<< pallina" l'output è " <<<<< pallina". e se non imputo niente l'output è l'"echo del secondo case...
come mai?? dove sbaglio....?