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

amatrix Messages postés 11 Date d'inscription vendredi 8 août 2003 Statut Membre Dernière intervention 25 décembre 2004 - 28 déc. 2003 à 15:51
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
7 juin 2004 à 16:29
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
7 juin 2004 à 15:59
@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
30 avril 2004 à 11:55
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
27 janv. 2004 à 18:18
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
27 janv. 2004 à 12:17
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
11 janv. 2004 à 14:42
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
28 déc. 2003 à 15:51
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
Rejoignez-nous