Controlla il nome del campo che ti arriva vuoto, sarà diverso da quello recuperato in php.
Oppure prima dell'invio stampa le variabili recuperate in php e blocca lo script con Exit(); e vedi se ci sono tutti i valori.

Devi capire prima se il problema è il form o lo script in php altrimenti esci pazzo.