Sul perchè le variabili non vengano impostate (e sul perchè, di conseguenza, ti viene dato l'errore sull'indice) neida è già stata più che chiara.
Rimane, però, il problema delle valorizzazioni iniziali che fai
Infatti, quando passi dal punto 2 al punto 3 non viene inviato nessun dato post e quindi ti viene generato l'errore. Le soluzioni possibili sono molte.Codice PHP:$nome=ucwords($_POST['nome']);
$cognome=ucwords($_POST['cognome']);
1) Come suggerito da neida utilizzi dei campi hidden. Questa soluzione, però, anche se più semplice, comporta dei rischi. Cosa succede, infatti, se qualcuno dovesse vedere il codice html della pagina e scoprire che una volta effettuato il controllo del punto 2 i dati vengono ripassati in chiaro al punto 3? Semplice! Potrei inserire valori validi al punto 1 e passare il controllo del punto 2. A questo punto modifico il valore dei dati presenti nei campi hidden facendo passare comunque quello che voglio. Attenzione, dunque!
2) La seconda soluzione si appoggia alle sessioni. E' un po' più difficile da gestire ma più sicura decisamente.
Non fai altro che eseguire il controllo del punto 2 normalmente ma in più assegni i valori delle var alle sessioni. Al punto 3, quindi, ti riferirai ai valori che hai memorizzato in sessione e non dovrai preoccuparti di una loro eventuale modificazione da parte di un utente malintenzionato.

Rispondi quotando