Che casotto ...
Innanzitutto ti sconsiglio vivamente di utilizzare questo approccio perche' ti incasini solo la vita.
E se un utente pigia F5 sulla pagina ? Submitta costantemente il form e ti spamma il db.
quindi consiglio di :
1 separare
2 semplificare
1) separa il form (view) dalle operazioni di salvataggio dati(controller) e dalle strutture dati(model)
2) risolvi 1 problema alla volta nei vari elementi che vai a separare al punto 1
quindi :
a) crei il file html con il form e la action di submit
b) crei lo script per gestire i dati con le necessarie protezioni
c) inserisci il codice nello script e un gestisci la terminazione con redirect + codice di uscita in get o session o dove ti pare
d) crei la pagina di uscita dove gestire la terminazione della procedura.
Evita quindi di mescolare troppo codice PHP e HTML.
Inserisci i var_dump($variabile) necessari a capire lo stato delle var nelle porzioni di codice che reputi problematiche o che nn sai a priori cosa stanno gestendo
e per l'amor d'iddio evita di fare
if{ ?>
codice html <?
}
Che diventi scemo a capire cosa succede, piuttosto forgiati una stringa in testa a lla pagina e poi la stampi direttamente nell'html altrimenti esci pazzo a debuggare infatti se noti ti manca la chiusura dell'else ( o non l'ho vista in quel marasma )