Sto costruendo uno scrippetino per il controllo di un form con quattro campi: &nome, $email, $paese, $testo. Sono tutti obbligatori tranne il campo $email, che può essere lasciato vuoto dall'utente. Sebbene sia un novizio, sono praticamente riuscito a creare lo script, mi manca solo un piccolo particolare che sicuramente è una sciocchezza: aiutatemi!Intanto vi mostro il breve script, di seguito vi spiego il problema.
Codice PHP:
if(empty($nome) || empty($paese) || empty($testo)) {
echo "<h3>Il tuo messaggio NON è stato inserito!</h3>
Torna indietro e assicurati di compilare correttamente tutti i campi obbligatori.</p>";
}
// INIZIO CONTROLLO DELL'EMAIL
elseif(!empty($email)) {
if(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
echo "<h3>Il tuo messaggio NON è stato inserito!</h3>
Torna indietro ed inserisci un indirizzo e-mail valido.</p>";
}
// MANCA QUALCOSA QUI!!!!!!!
}
// FINE DEL CONTROLLO DELL'EMAIL
else {
echo "<h3>Anteprima del tuo messaggio</h3>";
// LA VALIDAZIONE è ANDATA A BUON FINE, LO SCRIPT PROSEGUE MOSTRANDO L'ANTEPRIMA DI CIò CHE HA SCRITTO L'UTENTE.
}
In pratica, la validazione dell'email deve avvenire solo se l'utente ha inserito qualcosa nel campo $email del form, quindi se (!empty($email)). Infatti, giustamente, se l'utente lo ha lasciato vuoto lo script termina correttamente mostrando l'anteprima del messaggio.
Invece, se l'email è stata inserita, lo script procede ad un controllo per verificare la correttezza dell'indirizzo (che deve contenere @, ecc. ecc.). Infatti se nel form inserisco un email non conforme (ad es. senza @), lo script mi mostra giustamente l'errore. DOVE STA IL PROBLEMA, ALLORA? In pratica succede che quando inserisco un indirizzo email corretto, viene superato il controllo di conformità dell'email, ma non succede niente perché lo script si blocca dove ho scritto "MANCA QUALCOSA QUI!!!!!!!". Come faccio a chiudere questo "if" interno e consentire il superamento del controllo e-mail? Mi sa tanto di una scemata, ma aiutatemi!!!!