IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

vérifier une email [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Points : 144
    Points
    144
    Par défaut vérifier une email
    Bonjour,

    J'avais trouvé cette fonction pour vérifier la validité d'une email, j'aurais aimé avoir votre avis svp ?

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    // Vérifie une adresse email
    function TestMail($email)
    {
    	$r = '^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)+$';
     
        if(eregi($r, $email)) 
    		{
            	list($login, $domaine) = split ("@", $email, 2);
            	if(checkdnsrr($domaine, "MX")) 
    				{
                		return true; // valide
            		}
            	    else 
    				{
                		return false; // non valide
            		}
        	}
        	else 
    		{
            	return false; // non valide
       		}
    }

    Par ailleurs j'ai trouvé une autre expression réguliere qui change peu de celle qui est présente dans cette fonction mais je ne comprend pas les différences, si quelqu'un peut m'aide svp ?

    "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$"

    Merci
    Bonne fin d'aprem

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    La différence est tout de même importante car le caractère point est un métacaractère dont la signification est n'importe quel caractère (sauf le saut à la ligne en temps normal). Pour qu'il y est correspondance avec le caractère point il faut échapper celui-ci, c'est à dire le précéder d'un backslash (\). Donc la deuxième est effectivement meilleure.

    Plus d'infos : Initiation aux expressions régulières.


    Julp.

  3. #3
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Points : 144
    Points
    144
    Par défaut
    ah ok oui effectivement c'est pas pareil

    et la fin : *$ au lieu de +$ ??

    Merci ++

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par italiasky
    et la fin : *$ au lieu de +$ ??
    Ah oui je n'avais pas vu cette partie.

    Il s'agit de vérifier la partie domaine de l'adresse sachant que celle-ci peut être composée de zéro ou plusieurs sous-domaines, c'est pourquoi là encore, je pense que la deuxième forme est plus appopriée (domaines simples comme x@mydomain aux domaines plus complexes x@impots.gouv.fr ). Donc avec votre + vous imposez que le domaine contienne au moins un sous-domaine alors qu'avec * non.

    Il convient de dissocier les deux symboles $ et +/* : * ou + marquant une contrainte sur le nombre d'apparitions et $ marque la fin de la chaîne ou de la ligne.


    En espérant avoir été clair dans mes propos, Julp.

  5. #5
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Points : 144
    Points
    144
    Par défaut
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/10/2010, 16h54
  2. vérifier l'email d'une case
    Par minooo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/08/2008, 08h14
  3. [RegEx] Vérifier une adresse email
    Par zulkifli dans le forum Langage
    Réponses: 7
    Dernier message: 03/05/2007, 10h47
  4. [debutant][ereg] Vérifier une adresse email
    Par romuluslepunk dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 05/05/2006, 17h17
  5. Vérifier une url, altenatives à fsockopen
    Par gendo dans le forum Langage
    Réponses: 4
    Dernier message: 14/09/2004, 21h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo