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

Messages postés
11
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
25 décembre 2004
- - Dernière réponse : tommythefreak
Messages postés
3
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
10 juin 2004
- 7 juin 2004 à 16:29
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