Allora ragazzi, ho fatto prove tutta la mattina e ho scritto questo codice.
Ho trasformato la mia validazione in una funzione e sto cercando di usare le sessioni per mantenere i dati nel form nel caso la validazione fallisca. Il problema è che li mantiene anche troppo, nel senso che vorrei che nel caso non ci siano errori dopo che avviene l'inserimento i campi del form venissero resettati invece rimangono i dati appena inseriti. Mi dite cosa sbaglio.
Questo è il form.
	Codice PHP:
	
<form action="elaboraform2.php" method="post">
nome: <input type="text" name="nome" value="<?php echo isset($_SESSION['nome']) ? $_SESSION['nome'] : '' ?>" />
numero: <input type="text" name="numero" value="<?php echo isset($_SESSION['numero']) ? $_SESSION['numero'] : '' ?>" />
data: <input type="text" name="data" value="<?php echo isset($_SESSION['data']) ? $_SESSION['data'] : '' ?>" />
<input type="submit" value="Invia">
 
e questa è la pagina che controlla i dati e poi esegue la query.
	Codice PHP:
	
function valida() {
    $mesErr = '';
    $errori = 0;
    $_SESSION['nome'] = $_POST['nome'];
    if (!preg_match("#^[a-z]{5,10}$#i",$_POST['nome']))  
    {
        $mesErr.='Il nome deve contenere solo lettere (minimo 5 e massimo 10)
';
        $errori++;
    }
    
    $_SESSION['numero'] = $_POST['numero']; 
    if ($_POST['numero'] <1 || $_POST['numero'] > 10)
    { 
    $mesErr.='il numero deve essere tra 1 e 10
';
    $errori++;
    }
    
    $_SESSION['data'] = $_POST['data']; 
    if (!preg_match("#[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}#",$_POST['data'])) 
    {
    $mesErr.= 'non è una data valida
';
    $errori++;
    }
    
    if ($errori > 0)
    {
    echo $mesErr.'
';
    echo "<a href=\"invioform2.php\">torna alla pagina di inserimento</a>";
    exit;
    }
    else
    {
    $query = "insert into validazioneform(nome,numero,miadata) values('$_SESSION[nome]',$_SESSION[numero],'$_SESSION[data]') ";
    
    mysql_query($query) or die(mysql_error());
    if (mysql_affected_rows() > 0)  
        header("Location: inserimentook2.php"); 
    else  
    echo 'no inserimento';
    }
}
valida(); 
 
ovviamente in tutte e due le pagine c'è il session_start() in cima.
Confido in voi.  