quello posso anche toglierlo, ma la sostanza non cambia
continua non funzionare

comunque mi sa che non hai capito..
è vero che dal formulario si passa alla pagina php premendo sul bottone invio, ma è anche vero che se non supera la validazione in questa pagina deve ritornare indietro e restituire:
1) quello che aveva scritto l'utente nei campi
2) mostrare il campo in rosso
3) dare un messaggio d'errore

come fa a tornare indietro e portarsi tutte queste cose senza sessione?
A dire il vero ora come ora non torna nemmeno indietro..