Ok grazie a tutti, sono riuscito ad implementare parecchi controlli, e ora il form è molto più funzionale!

Ho un dubbio su una cosa però.

Come sistema per segnalare che c'è un errore nella compilazione, utilizzo un "alert" con windows.location. Più precisamente cosi:

codice:
echo "<script> alert('Il Campo \"nome\" risulta essere vuoto o compilato con caratteri non validi. Torna indietro e correggilo/compilalo.'); window.location = 'contatti.php'; </script>";
Tuttavia questo codice mi ricarica la pagina dei contatti, e perdo il contenuto dei campi compilati.
Esiste un modo per far si che abbia lo stesso effetto dell'historyback di javascript?

Ho provato anche con un windows.history.go(-1), ma quando clicko ok sulla finestrella dell'alert mi resta sulla pagina php dei controlli, non torna indietro..