VÉRIFIER SI L'ADRESSE E-MAIL EST CORRECT

Signaler
Messages postés
11
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
25 décembre 2004
-
tommythefreak
Messages postés
3
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
10 juin 2004
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/18465-verifier-si-l-adresse-e-mail-est-correct

tommythefreak
Messages postés
3
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
10 juin 2004

oui j'ai remarqué ca par après, le mieux est encore de vérifier si le nom de domaine existe...
Voila la fonction que j'ai créée :


function verifmail($email)
{
//verification de l'adresse mail au format x*[.x*]@x*.xx[x][.xx[x]]
if (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]{2,})*\.[a-z0-9-]{2,}$", $email))
{
//recuperation du nom de domaine
list($name, $domain) = explode("@", $email);
//verification du nom de domaine
if (!checkdnsrr($domain))
{
return "Nom de domaine inconnu";
}
else
{
return 0;
}
}
else
{
return "Format invalide";
}
}

Je crois qu'elle est asez complète cette fois :)
cs_gysmovoile
Messages postés
1
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
7 juin 2004

@tommythefreak :
les noms de domaines peuvent très bien avoir une extension de 4 lettres également ...

exemple *.aero ! et y en a plein d'autre (*.info ...)
tommythefreak
Messages postés
3
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
10 juin 2004

si je ne me trompe ce test acceptera des adresses de type xxx.xxx@xxx.xxxxxxx
alors qu'un domaine ne peut avoir que 2 ou 3 caractères dans son extension (.fr, .com)
et n'acceptera pas des domaines du style xxx.xx.xx (fr.st, co.uk)

une solution serait de remplacer l'expression régulière par
^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]{2,3})*\.[a-z0-9-]{2,3}$

Je viens seulement d'apprendre les ereg donc je ne suis pas sûr ;)
virtuelkiller
Messages postés
44
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
9 mars 2016

Une petite astuce : activer le compte par mail.
Je m'explique quand les usagers créent un compte celui-ci n'est validé que par le lien qui sera inscrit dans le mail que vous enverrai à l'email donnée lors de l'inscription.
affiliatel
Messages postés
11
Date d'inscription
mardi 27 janvier 2004
Statut
Membre
Dernière intervention
22 novembre 2004

certains usagers code www.email@domain.com
quelqu'un à une astuce pour éviter cela ?
virtuelkiller
Messages postés
44
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
9 mars 2016

Désolé pour le retard ;-)
if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$",$email))
//^[_a-z0-9-] verifie s'il y a bien des caractères alphanumérique sans espace
//+(\.[_a-z0-9-]+)* verifie la présence d'un point et si oui après avec un texte alphanumérique
//@[a-z0-9-]+(.[a-z0-9-]+)*$ tout cela autour d'un arobase et vérifie un texte avec un point (wanadoo.fr par exemple)

{
//si il n'y a pas cela erreur
echo"<script language="Javascript">alert("Votre adresse e-mail est incorrect. Attention\, elle vous permettra de récupérer votre pass si vous le perdez \!");history.back();</script>";
exit;
}
amatrix
Messages postés
11
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
25 décembre 2004

Si tu savais laisser un commentaire pour expliker le commande if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$",$email))
car je n ai rien compris merci