Visualizzazione risultati 1 fino 12 di 12

Discussione: verifica esistenza email

  1. #1
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito verifica esistenza email

    salve a tutti avrei bisogno di un aiutino

    sul mio sito (nella sezione dedicata alla registrazione)
    l'utente deve inserire la propria mail...

    ho la necessità che il sistema verifichi la reale esistenza dell'indirizzo mail inserito.
    girando in internet ho trovato questo codice:
    Codice:
    <script type="text/javascript">
    function checkEmail(theForm) {
    var re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/
    if (re.test(theForm.news.value))
    return true;
    alert("l'eMail \"" + theForm.news.value + "\" NON \u00c8 valida!");
    return false;
    }
    </script>
    il problema è che questo non mi esegue la verifica dell'esistenza della mail...ma solo la verifica che la mail inserita possa esistere " (cioè...che ci sia un ###@###.###)

    voi conoscete dei codici javascript che facciano al mio caso?

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

    Predefinito

    Basta cercare
    Check esistenza indirizzo email

    Ciao!

    PS: vuoi saperlo tramite PHP o Javascript? Hai postato nella sezione relativa al PHP e chiesto uno script Javascript
    Ultima modifica di radiodelmomento : 22-01-2014 alle ore 18.06.16

  3. #3
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Via javascript è praticamente impossibile, infatti il codice che hai riportato serve sono a validare un indirizzo email, ma non può verificare che esista.

    Quello che si fa è di solito è di inviare un link con un codice alla mail inserita dall'utente. Se è in grado di cliccarci sopra vuol dire che la mail esiste: pensa a tutte le volte che ti sei iscritto ad un servizio online, Altervista compreso.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  4. #4
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Via javascript è praticamente impossibile, infatti il codice che hai riportato serve sono a validare un indirizzo email, ma non può verificare che esista.

    Quello che si fa è di solito è di inviare un link con un codice alla mail inserita dall'utente. Se è in grado di cliccarci sopra vuol dire che la mail esiste: pensa a tutte le volte che ti sei iscritto ad un servizio online, Altervista compreso.
    ma come posso realizzare una cosa simile?
    non ho la più pallida idea di come realizzare una cosa simile....

    io il fatto di inviare una mail in automatico...ok...
    ma come faccio a fare il codice e la conferma via mail?

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

    Predefinito

    Citazione Originalmente inviato da fabiovergotti Visualizza messaggio
    ma come posso realizzare una cosa simile?
    Ti ho linkato una guida semplicissima dove non devi fare altro che copiare e incollare il codice di una funzione e richiamarla quando vuoi.
    Questo se devi controllare la validità di un indirizzo.
    Se invece, come ha detto saitfainder, devi verificare che chi si registra sia realmente "in possesso" di quella e-mail ti consiglio di dare un'occhiata a questo script di registrazione-login

    Ciao!

  6. #6
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    Citazione Originalmente inviato da radiodelmomento Visualizza messaggio
    Ti ho linkato una guida semplicissima dove non devi fare altro che copiare e incollare il codice di una funzione e richiamarla quando vuoi.
    Questo se devi controllare la validità di un indirizzo.
    Se invece, come ha detto saitfainder, devi verificare che chi si registra sia realmente "in possesso" di quella e-mail ti consiglio di dare un'occhiata a questo script di registrazione-login

    Ciao!
    la guida che mi hai linkato l'ho guardata ma non riesco a capire come settarla :(
    a me non interessa verificare che l'utente sia veramente in possesso della mail....ma la vera validità dell'indirizzo mail scelto

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

    Predefinito

    Inserisci questo codice all'inizio della pagina:
    Codice PHP:
    function validateEmail( $email, $domainCheck = true, $verify = true ) {
    // Verifica sintassi con espressione regolare
    if ( preg_match('/^([a-zA-Z0-9\._\+-]+)\@((\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,7}|[0-9]{1,3})(\]?))$/', $email, $matches) ) {
    $user = $matches[1];
    $domain = $matches[2];

    // Verifica se esiste un record MX
    if ( $domainCheck && function_exists('checkdnsrr') ) {
    // Creo un array con i mailserver disponibili
    if ( getmxrr($domain, $mxhosts, $mxweight) ) {
    for (
    $i = 0; $i < count($mxhosts); $i++ ){
    $mxs[$mxhosts[$i]] = $mxweight[$i];
    }
    asort($mxs);
    $mailers = array_keys($mxs);
    } else if(
    checkdnsrr($domain, 'A') ) {
    $mailers[0] = gethostbyname($domain);
    } else {
    $mailers=array();
    }

    $total = count( $mailers );

    // Interrogo ogni mailserver
    if ( $total > 0 && $verify ) {
    // Verifico se il mailserver accetta posta
    for ( $n = 0; $n < $total; $n++ ) {
    // Impostazioni socket
    $connect_timeout = 2;
    $errno = 0;
    $errstr = 0;
    // Indirizzo email di autenticazione
    $probe_address = 'vostra_email@vostrodominio.it';

    // Provo la connessione socket
    if ( $sock = @fsockopen($mailers[$n], 25, $errno , $errstr, $connect_timeout) ) {
    $response = fgets($sock);
    stream_set_timeout($sock, 45);
    $meta = stream_get_meta_data($sock);
    $cmds = array(
    "HELO vostrodominio.it", // Deve essere impostato correttamente!
    "MAIL FROM: <" . $probe_address . ">",
    "RCPT TO: <" . $email . ">",
    "QUIT",
    );

    // Errore di connessione
    if ( ! $meta['timed_out'] && ! preg_match('/^2\d\d/', $response) ) {
    $error = "Errore: <span>" . $mailers[$n] . "</span> dice <span>" . $response . "</span>\n";
    break;
    }

    foreach (
    $cmds as $cmd ) {
    $before = microtime(true);
    fputs($sock, "$cmd\r\n");
    $response = fgets($sock, 4096);
    $t = 1000*(microtime(true)-$before);
    if ( !
    $meta['timed_out'] && preg_match('/^5\d\d/', $response) ) {
    $error = "Indirizzo non verificato: <span>" . $mailers[$n] . "</span> dice <span>" . $response . "</span>\n";
    break
    2;
    }
    }
    fclose($sock);
    break;
    } else if (
    $n == $total-1 ) {
    $error = $domain . ": Nessun mailserver per il dominio specificato può essere contattato";
    }
    }
    } else if (
    $total <= 0 ) {
    $error = "Nessun DNS record utilizzabile per il dominio <span>" . $domain . "</span>";
    }
    }
    } else {
    $error = "Errore di sintassi: indirizzo email non corretto";
    }

    return ( isset(
    $error ) ? $error : "Indirizzo email valido!" );
    }
    Mentre, nel punto in cui vuoi stampare il risultato, inserisci:
    Codice PHP:
    echo validateEmail("indirizzo@server.ext");
    Ciao!

  8. #8
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Citazione Originalmente inviato da fabiovergotti Visualizza messaggio
    a me non interessa verificare che l'utente sia veramente in possesso della mail....ma la vera validità dell'indirizzo mail scelto
    In pratica è la stessa cosa. Per sapere se esiste devi inviare una mail e siccome non puoi verifica l'esito della consegna quello proposto è l'unico modo di realizzare la cosa.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  9. #9
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    Citazione Originalmente inviato da radiodelmomento Visualizza messaggio
    Inserisci questo codice all'inizio della pagina:
    Codice PHP:
    function validateEmail( $email, $domainCheck = true, $verify = true ) {
    // Verifica sintassi con espressione regolare
    if ( preg_match('/^([a-zA-Z0-9\._\+-]+)\@((\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,7}|[0-9]{1,3})(\]?))$/', $email, $matches) ) {
    $user = $matches[1];
    $domain = $matches[2];

    // Verifica se esiste un record MX
    if ( $domainCheck && function_exists('checkdnsrr') ) {
    // Creo un array con i mailserver disponibili
    if ( getmxrr($domain, $mxhosts, $mxweight) ) {
    for (
    $i = 0; $i < count($mxhosts); $i++ ){
    $mxs[$mxhosts[$i]] = $mxweight[$i];
    }
    asort($mxs);
    $mailers = array_keys($mxs);
    } else if(
    checkdnsrr($domain, 'A') ) {
    $mailers[0] = gethostbyname($domain);
    } else {
    $mailers=array();
    }

    $total = count( $mailers );

    // Interrogo ogni mailserver
    if ( $total > 0 && $verify ) {
    // Verifico se il mailserver accetta posta
    for ( $n = 0; $n < $total; $n++ ) {
    // Impostazioni socket
    $connect_timeout = 2;
    $errno = 0;
    $errstr = 0;
    // Indirizzo email di autenticazione
    $probe_address = 'vostra_email@vostrodominio.it';

    // Provo la connessione socket
    if ( $sock = @fsockopen($mailers[$n], 25, $errno , $errstr, $connect_timeout) ) {
    $response = fgets($sock);
    stream_set_timeout($sock, 45);
    $meta = stream_get_meta_data($sock);
    $cmds = array(
    "HELO vostrodominio.it", // Deve essere impostato correttamente!
    "MAIL FROM: <" . $probe_address . ">",
    "RCPT TO: <" . $email . ">",
    "QUIT",
    );

    // Errore di connessione
    if ( ! $meta['timed_out'] && ! preg_match('/^2\d\d/', $response) ) {
    $error = "Errore: <span>" . $mailers[$n] . "</span> dice <span>" . $response . "</span>\n";
    break;
    }

    foreach (
    $cmds as $cmd ) {
    $before = microtime(true);
    fputs($sock, "$cmd\r\n");
    $response = fgets($sock, 4096);
    $t = 1000*(microtime(true)-$before);
    if ( !
    $meta['timed_out'] && preg_match('/^5\d\d/', $response) ) {
    $error = "Indirizzo non verificato: <span>" . $mailers[$n] . "</span> dice <span>" . $response . "</span>\n";
    break
    2;
    }
    }
    fclose($sock);
    break;
    } else if (
    $n == $total-1 ) {
    $error = $domain . ": Nessun mailserver per il dominio specificato può essere contattato";
    }
    }
    } else if (
    $total <= 0 ) {
    $error = "Nessun DNS record utilizzabile per il dominio <span>" . $domain . "</span>";
    }
    }
    } else {
    $error = "Errore di sintassi: indirizzo email non corretto";
    }

    return ( isset(
    $error ) ? $error : "Indirizzo email valido!" );
    }
    Mentre, nel punto in cui vuoi stampare il risultato, inserisci:
    Codice PHP:
    echo validateEmail("indirizzo@server.ext");
    Ciao!
    sto seguendo questa guida (http://forum.it.altervista.org/how/1...strazione.html)
    ma come posso modificare la realizzazione del codice capthca rendendola a più font?

  10. #10
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,066

    Predefinito

    Non lo capisci dal sorgente?

    Codice PHP:
    imagettftext(
    $image, //immagine
    15, //dimensione carattere
    rand(-5, 5), //angolo di rotazione
    10+rand(-10,10), //offset sulla x
    30, //offset sulla y
    $nero, //colore
    './caratteri/arial.ttf', //font
    $testo //da stampare
    );
    Ah, se vuoi fare ogni lettera con un font diverso, allora (penso) devi scrivere lettera per lettera, scegliendo ogni volta il font.

    Ciao!

  11. #11
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Non lo capisci dal sorgente?



    Ah, se vuoi fare ogni lettera con un font diverso, allora (penso) devi scrivere lettera per lettera, scegliendo ogni volta il font.

    Ciao!
    si cambiare il font lo avevo fatto..intendevo ogni lettera di un font diverso...
    Ultima modifica di fabiovergotti : 23-01-2014 alle ore 21.12.12

  12. #12
    VaniaRupeni non è connesso Neofita
    Data registrazione
    26-10-2005
    Messaggi
    12

    Predefinito

    A me questo script su altervista non funziona, a voi si?

Regole di scrittura

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