Ero andato a vedere subito lo script di elaborazione senza guardare l'altro... e invece è proprio qui che c'è l'errore!!

Ho visto che per ogni campo da far riempire che inserisci dichiari un form, ma soprattutto solo nell'ultimo form inserisci un button per fare il submit.

Questo è sbagliato.

Quando fai un form, ad esso associ uno script e con un button di tipo submit permetti al client di mandare i valori a tale script.

Quando clicchi sul button, il client raccoglierà tutti i dati presenti nei campi di quel form e li manderà.

quindi, se tu scrivi:
codice:
<form ..... ><input ...     ></form>
<form ..... ><input ...    ></form>
<form ..... ><input ...    ></form>
<form ..... ><input ...    ></form>
<form ..... ><input type="submit" ...     ></form>
quando cliccherai sul button, verrano inviati i dati solo del form a cui appartiene, quindi in questo caso non verrà inviato niente.

La forma corretta è questa:
codice:
<form ........>
    <input1>
    <input2>
    <input3>
    ecc...
    <input type="submit>
</form>
in questo modo, quando cliccherai sul button, verranno inviati tutti i dati.

Inoltre ricorda di fare sempre dei controlli lato client, per evitare per esempio che i campi obbligatori del form ti arrivino vuoti!!

Spero di essere stato chiaro