Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11


    Questa non valida le email correttamente?


    Codice PHP:
    $r1 "([a-z0-9]+[";
    $r2 "\-]?){1,3}([a-z0-9])*";

    $pattern "/(?i)^{$r1}\._{$r2}\@{$r1}\.{$r2}\.[a-z]{2,6}$/"

    preg_match($pattern$email
    Ciao!

  2. #12
    Originariamente inviato da fmortara


    Questa non valida le email correttamente?


    Codice PHP:
    $r1 "([a-z0-9]+[";
    $r2 "\-]?){1,3}([a-z0-9])*";

    $pattern "/(?i)^{$r1}\._{$r2}\@{$r1}\.{$r2}\.[a-z]{2,6}$/"

    preg_match($pattern$email
    No, esempi:
    codice:
    foobar.@mail.com -> email invalida ma passa il check
    foobar@mail-.com -> email invalida ma passa il check
    fo__bar@mail.com -> email valida ma non passa il check
    e chissa' quanti altri

  3. #13
    Giusto, ma allora il controllo che fa la funzione filter_var è più preciso? Non commette errori?

    in rete ho trovato questo, una discussione circa le modalità "definitive" per validare una mail.
    http://www.linuxjournal.com/article/9585?page=0,3
    discussione completa: http://www.linuxjournal.com/article/9585

    Ma fanno numerose preg_match, impensabile in un sito in produzione se deve essere chiamata molte volte.

    Altrimenti cosa si deve fare?
    Ciao!

  4. #14
    L'unico metodo sicuro per validare un'email, e' il piu' semplice e ovvio: provare a mandare un messaggio e vedere se arriva

    In fondo e' quello che fanno praticamente tutti i siti che chiedono una registrazione che viene confermata da un link inviato per email.

  5. #15
    vabbè chiaro, io intendo dire se l'indirizzo è formalmente valido.
    Ciao!

  6. #16
    Il fatto e' che il formato valido di un'email in generale e' molto complicato, quindi di conseguenza e' complicato anche il controllo. Se si vuole semplificare, si finisce per forza per lasciare dei buchi.

  7. #17
    Questo passa la validazione:

    Codice PHP:
    if(!filter_var('sdfg@fsdf'FILTER_VALIDATE_EMAIL)) {
        return 
    false;

    Ciao!

  8. #18
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    guardate che filter_var .. FILTER_VALIDATE_EMAIL non fa altro che usare una regex, nient'altro di magico

    codice:
    $ grep -A4 php_filter_validate_email ext/filter/logical_filters.c
    void php_filter_validate_email(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */
    {
            /* From http://cvs.php.net/co.php/pear/HTML_...mail.php?r=1.4 */
            const char regexp[] = "/^((\\\"[^\\\"\\f\\n\\r\\t\\b]+\\\")|([A-Za-z0-9_\\!\\#\\$\\%\\&\\'\\*\\+\\-\\~\\/\\^\\`\\|\\{\\}]+(\\.[A-Za-z0-9_\\!\\#\\$\\%\\&\\'\\*\\+\\-\\~\\/\\^\\`\\|\\{\\}]*)*))@((\\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9])(([A-Za-z0-9\\-])*([A-Za-z0-9]))?(\\.(?=[A-Za-z\\-]))?)+[A-Za-z\\-]*))$/D";
    E sappiamo tutti che non esiste la regex ideale per le mail, quindi anche filter_var e' da usare consapevolmente.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.