• User Attivo

    registrazione e-mail

    ciao a tutti :-)))
    ho un programma in php per l'invio di newsletter e funziona correttamente.
    L'unico problema che non riesco a risolvere, risiede nel fatto che quando dal form
    sul sito provo ad iscrivermi alla newsletter con un indirizzo e-mail che ha un punto esempio
    [email protected] mi dice "Invalid address" e non me lo registra..con gli altri indirizzi senza punto è tutto OK. come mai?

    Vi posto la parte di codice che secondo me è coinvolta in questo problema:
    (secondo me è la riga $expression = che va corretta per fargli accettare anche gli indirizzi con il punto...ma come?)

    function add_email(){
    global $email, $header, $reply_email;
    $expression = "^[_A-Za-z0-9-]+@[_A-Za-z-]+(.[A-Za-z]+)(.[A-Za-z]+)*$";
    if(empty($email)){
    error("Please fill in all fields!");
    }
    if(!ereg("$expression",$email)) {
    error("Invalid address");
    }

    fatemi sapere
    Ciao e GRAZIE


  • User

    Io uso la seguente espressione regolare per validare i campi email:

    [php]
    $expression = "^[\w.-]+@\w+[\w.-]*?.\w{1,3}$";
    [/php]


  • User Attivo

    ciao Satifal e grazie innanzitutto per la pronta risposta.
    Ho provato a sostituire la mia espressione con quella che mi hai gentilmente postato ma mi da il seguente messaggio di errore:

    Warning: ereg() [function.ereg]: REG_BADRPT in /test/test/test/newsletter/add_unsub.php on line 2


  • User

    Allora ti posto la funzione completa che utilizzo io:

    [PHP]
    function chkEmail($email) {
    $email = trim($email);
    if ($email != "") {
    if (preg_match( '/^[\w.-]+@\w+[\w.-]*?.\w{1,3}$/', $email)) {
    return true;
    }
    }
    return false;
    }
    [/PHP]


  • User Attivo

    grazie Satifal, così funziona benissimo.
    sei un amico, grazie ancora per la gentilezza! :-)))

    a presto