ciao a tutti.
ho un problema con la gestione degli errori nei form.

voglio praticamente che i vari messaggi d'errore compaiano nella stessa pagina in cui è presente il form e che questo si ripresenti con i dati immessi precedentemente dall'utente.
per fare questo ho usato questo codice che funziona, ma che ha un difetto.
già da quando viene caricato compare il msg d'errore, che invece dovrebbe comparire solo dopo una compilazione errata del form. in sostanza accade questo: http://www.comefaccio.net/prova_mia.php .

avevo provato a mettere un contatore, ma non ci sono riuscito.
di seguito il codice... qualche buon'anima che mi aiuta?

<form id="form" name="form" method="post" action="<? $_SERVER['PHP_SELF']; ?>">


Nome

<input name="nome" type="text" id="nome" value="<? echo $nome; ?>" />
</p>


Cognome

<input name="cognome" type="text" id="cognome" value="<? echo $cognome; ?>" />
<input type="submit" name="Submit" value="Submit" />
</p>
</form>

<?
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$error = 0;
$error_type = "";

if (trim($nome) == "") {
$error++;
$error_type .= "Non hai inserito il nome";
}
if (trim($cognome) == "") {
$error++;
$error_type .= "Non hai inserito il cognome";
}
?>



<?
if ($error != 0) {
echo "Non hai compilato tutti i campi";
echo $error_type;
}
else {
echo "invio del form completato con successo";
echo "Ecco i dati che hai inviato:
";
echo "nome: $nome cognome: $cognome";
}

?>