dando un'occhiata al codice non riesco a trovare errori, prova a fare un pò di debug e vedi dov'è il punto in cui lo script va "i crisi"
come mai a volte usi empty() e altre array_key_exists() ? prova usando sempre empty(), oppure prova a verificare l'esistenza del dato semplicemente con:
Codice PHP:# fai un minimo di controllo sui dati che ricevi in input
$nome = stripslashes(trim($_GET['nome']));
if ($nome == "" && ...)
edit: metti anche un error_reporting(E_ALL); all'inizio dello script


Rispondi quotando