Visualizzazione risultati 1 fino 15 di 15

Discussione: Form campo obbligatorio e-mail

  1. #1
    Guest

    Predefinito Form campo obbligatorio e-mail

    Ciao a tutti,
    vorrei sapere che codice devo scrivere per far sì che il campo e-mail di un form debba essere compilato per forza con una mail valida;
    mi spiego meglio, attualmente ho scritto:
    Codice PHP:
    ...
    elseif (
    $email=="") {
    print
    "il campo e-mail è obbligatorio";
    }
    ...
    però, ovviamente, il modulo viene inviato scrivendo nel campo qualsiasi cosa... se voglio che sia compilato nella forma aaa@bbb.cccc cosa devo scrivere?

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Puoi farlo in due modi differenti:

    Ho controlli che l'indirizzo sia composto da carattere che in effetti si possono trovare in un indirizzo mail, tramite un'espressione regolare, come puoi vedere qui:

    http://free-script.it/post/Script_ph...a_email-10.htm

    Ho verificare se il client email, che vuoi verificare, risponde ad una connessione smtp, in questo modo:

    http://www.sastgroup.com/tutorials/v...l-tramite-smtp

    Ma questo usa la funzione fsockopen() ( apre una connessione remota ), cosa che deve essere attivata qui su AlterVista.

    P.S.: Io personalmente ti consiglio la prima.

    P.P.S.: Se ti interessa, oltre al metodo adottato da te, che credo sia la stessa cosa, per verificare se una variabile è vuota puoi anche utilizzare la funzione empty() del php.
    Ultima modifica di sevenjeak : 12-02-2012 alle ore 22.14.48

    Sevenjeak
    Software developer and much more

  3. #3
    Guest

    Predefinito

    Ok grazie, adesso come applico la prima soluzione al posto del vecchio codice?
    Scusa ma sono un po' ignorante in materia...
    Ultima modifica di psdworks : 12-02-2012 alle ore 23.07.47

  4. #4
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Codice PHP:
    function ControlloEmail($email){
    $result = eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$email);
    if(
    $result == false){
    // SINTASSI E-MAIL ERRATA
    print "il campo e-mail è obbligatorio";
    }else{
    // SINTASSI E-MAIL ERRATA
    // continui ad eseguire lo script
    }
    }
    Ciao!

  5. #5
    Guest

    Predefinito

    eregi() è deprecata.

    Usa preg_match() oppure filter_var('', FILTER_VALIDATE_EMAIL).


  6. #6
    Guest

    Predefinito

    Questa è una parte di codice attuale funzionante su cui apportare le modifiche:
    Codice PHP:
    <?php

    $username
    = $_POST["user"];
    $email = $_POST["email"];
    $commento = $_POST["commento"];

    if (
    $username==""){
    header ('Location:http://errato.html');
    } elseif (
    $email=="") {
    header ('Location:http://errato.html');
    } elseif (
    $commento=="") {
    header ('Location:http://errore.html');
    }

    else {

    header ('Location:http://corretto.html');
    ...
    ?>
    Al posto di elseif ($email=="") cosa devo mettere??
    Grazie per la pazienza

  7. #7
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Codice PHP:
    <?php

    $username
    = $_POST["user"];
    $email = $_POST["email"];
    $commento = $_POST["commento"];

    if (
    $username==""){
    header ('Location:http://errato.html');
    } elseif(!
    filter_var($email, FILTER_VALIDATE_EMAIL)){
    header ('Location:http://errato.html');
    } elseif (
    $commento=="") {
    header ('Location:http://errore.html');
    }

    else {

    header ('Location:http://corretto.html');
    // qui lo script termina

    // non puoi inserire altro codice
    // visto che reindirizzi l'utente immediatamente ad un'altra pagina
    }
    ?>
    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    Usa preg_match() oppure filter_var('', FILTER_VALIDATE_EMAIL)
    Me n'ero completamente dimenticato... eppure ho fatto tutti i miei script con la seconda opzione... mah!
    @psdworks: ATTENTO! Devi assolutamente fare dei controlli ai dati che prelevi tramite $_POST (nel tuo caso) e $_GET.
    Ciao!

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da radiodelmomento Visualizza messaggio
    Codice PHP:
    <?php

    $username
    = $_POST["user"];
    $email = $_POST["email"];
    $commento = $_POST["commento"];

    if (
    $username==""){
    header ('Location:http://errato.html');
    } elseif(!
    filter_var($email, FILTER_VALIDATE_EMAIL)){
    header ('Location:http://errato.html');
    } elseif (
    $commento=="") {
    header ('Location:http://errore.html');
    }

    else {

    header ('Location:http://corretto.html');
    // qui lo script termina

    // non puoi inserire altro codice
    // visto che reindirizzi l'utente immediatamente ad un'altra pagina
    }
    ?>
    Grazie!
    p.s. nell'else dove hai scritto che non posso inserire altro codice c'è il codice che mi spedisce il commento, e il tutto funziona correttamente.

    Ciao e grazie ancora

  9. #9
    Guest

    Predefinito

    nella form metti un nome e un onsubmit
    Codice PHP:
    <form name="modulo" action="pagina.php" method="post" onsubmit="return controlla_form()">
    poi fai la funzione controlla form e fai:
    Codice PHP:
    function controlla_form(){
    if (!
    eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)){
    alert("ERRORE! Compilare correttamente il campo e-mail!");
    return
    false;
    }
    else
    return
    true;
    }
    Ultima modifica di usletimbro : 14-02-2012 alle ore 22.57.09

  10. #10
    Guest

    Predefinito

    @usletimbro:
    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    eregi() è deprecata. [...]
    E poi come puoi passare una funzione in PHP direttamente al form con un comando in javascript?


  11. #11
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Per fare ciò che ha detto usletimbro occorre utilizzare JavaScript.
    Utilizzando soltanto PHP occorre aggiornare la pagina ogni volta che vuoi effettuare un controllo.
    Utilizzando JS (e AJAX, dipende dai controlli che devi fare) puoi effettuare questi controlli non appena viene eseguita un'azione (onSubmit, onKeyUp, onChange... dipende dall'esigenza).
    Ciao!

  12. #12
    Guest

    Predefinito

    Citazione Originalmente inviato da radiodelmomento Visualizza messaggio
    Per fare ciò che ha detto usletimbro occorre utilizzare JavaScript.
    Utilizzando soltanto PHP occorre aggiornare la pagina ogni volta che vuoi effettuare un controllo.
    Utilizzando JS (e AJAX, dipende dai controlli che devi fare) puoi effettuare questi controlli non appena viene eseguita un'azione (onSubmit, onKeyUp, onChange... dipende dall'esigenza).
    Ciao!
    certo metti il form dove vuoi poi nell'head dell html metti la funzione dentro ai tag <script>

  13. #13
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Il form dovrebbe andare tra <body> e </body>.
    Avevamo detto che avevi sbagliato poiché hai scritto il codice tra i tag [ PHP ] e [ /PHP], quindi pensavamo che tu pensassi che era un codice in PHP (scusa il giro di parole... ).
    Ciao!

  14. #14
    Guest

    Predefinito

    radiodelmomento, visto che mi hai aiutato anche nel mio post e sai il mio codice, vorrei mettere questo controllo anche io però lo vorrei mettere onclick! si può fare??? all'interno della funzione controlla form!

  15. #15
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Non ho capito cosa vuoi fare... perché non lo chiedi nella tua discussione?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •