In teoria quando invii un form puoi recuperare le variabili e inserirle in un campo hidden, per poi rinviarle al form successivo e così accumulando le variabili di ogni form in campi hidden.
All'ultimo invii tutto al database.
Per il controllo lo fai sul form attivo. Se non sono validi i valori non ti invia il form, quindi sono due problemi distinti.