Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Controllo form con PHP: quasi finito, ma...

    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!!!!
    IN OMNIA PERICVLA TASTA TESTICVLA

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Re: Controllo form con PHP: quasi finito, ma...

    E' sufficiente usare una variabile per gestire il caso di errori

    Codice PHP:
    $errori 0;
    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>"
    ;
                 
    $errori 1;
    }

    // INIZIO CONTROLLO DELL'EMAIL
    if(!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>"
    ;
                
    $errori 1;
        }
    // NON MANCA NIENTE QUI!!!!!!! :-)
    }
    // FINE DEL CONTROLLO DELL'EMAIL

    if (! $errori) {
        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.


  3. #3
    Grazie, ho testato subito la tua idea e mi sembra proprio che funzioni. Per te sarà stata sicuramente una bazzeccola, ma non per questo ti sono meno riconoscente: erano due giorni che cercavo una soluzione...
    IN OMNIA PERICVLA TASTA TESTICVLA

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.