Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/02/2007, 16h49   #1
Membre habitué
 
Étudiant
Inscription : janvier 2006
Messages : 501
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2006
Messages : 501
Points : 113
Points : 113
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 :
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
italiasky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2007, 17h01   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
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.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2007, 17h09   #3
Membre habitué
 
Étudiant
Inscription : janvier 2006
Messages : 501
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2006
Messages : 501
Points : 113
Points : 113
ah ok oui effectivement c'est pas pareil

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

Merci ++
italiasky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2007, 17h24   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
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.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2007, 17h36   #5
Membre habitué
 
Étudiant
Inscription : janvier 2006
Messages : 501
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2006
Messages : 501
Points : 113
Points : 113
Merci beaucoup
italiasky est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h56.


 
 
 
 
Partenaires

Hébergement Web