Oggi sono in vena di domande.
Finora per validare un form ho utilizzato questo metodo: controllo le variabili una per una inizializzando un messaggio di errore e un contatore degli errori stessi. Ogni volta che viene trovato un errore il messaggio viene aggiunto alla stringa e il contatore di errori viene aggiornato.
Siccome mi rendo conto che come metodo fa abbastanza schifo vi sarei grato se mi spiegaste come faccio a rendere il mio codice di esempio una funzione.
codice:
$mesErr = '';
$errori = 0;
if (preg_match("#[a-z]{5,10}#i",$_POST['nome']))
$nome = $_POST['nome'];
else
{
$mesErr.='Il nome deve contenere solo lettere (minimo 5 e massimo 10)
';
$errori++;
}
if ($_POST['numero'] >=1 && $_POST['numero'] <= 10)
$numero = $_POST['numero'];
else
{
$mesErr.='il numero deve essere tra 1 e 10
';
$errori++;
}
if (preg_match("#[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}#",$_POST['data']))
$data = $_POST['data'];
else{
$mesErr.='non è una data valida
';
$errori++;
}
// Se c'è stato almeno un errore stampo la stringa ed esco dal codice
if ($errori != 0)
{
echo $mesErr;
exit;
}
else
{
// altrimenti procedo col mio script
// qui ovviamente stampo solo a video le mie tre variabili se sono corrette
echo $nome.' '.$numero.' '.$data;
}