Bonjour,
Quand une personne s'inscrit sur mon forum, je voudrai tester si l'url de l'email mis dans sa fiche est valide. Ceci afin de limiter toutes les inscriptions non réelles ou automatisées ?
Merci pour votre aide, je ne sais pas comment faire !
Bonjour,
Quand une personne s'inscrit sur mon forum, je voudrai tester si l'url de l'email mis dans sa fiche est valide. Ceci afin de limiter toutes les inscriptions non réelles ou automatisées ?
Merci pour votre aide, je ne sais pas comment faire !
Salut,
Il existe surement des manières plus poussées pour vérifier qu'un mail est valide, mais commence déjà par testé si le mail entré comporte bien un suffixe, l'arobase puis le suffixe grâce à une expression régulière.
Moi j'utilise celle-là, mais il en existe, là encore, surement de meilleures :
@++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // Vérification validité du mail $atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]'; // caractères autorisés avant l'arobase $domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine) $regex = '/^' . $atom . '+' . '(\.' . $atom . '+)*' . '@' .'(' . $domain . '{1,63}\.)+' .$domain . '{2,63}$/i'; // test de l'adresse e-mail if (preg_match($regex, $mail)) { //Traitement mail valide }
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère
Installation de Code::Blocks sous Debian à partir de Nightly Builds
Humm, merci cela n'est pas du tout mon problème...
je veux savoir si le l'url de l'email existe...
exemple : zzzz@ail.com
ail.com est un site réel (accessible sur par le web) oui ou non ???...
C'est cette fonction, pour tester la présence du site, que je recherche !
Tiré des commentaires de la fonction checkdnsrr :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function validate_email($email){ $exp = "^[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$"; if(eregi($exp,$email)){ if(checkdnsrr(array_pop(explode("@",$email)),"MX")){ return true; }else{ return false; } }else{ return false; } }Note : Cette fonction [checkdnsrr] n'est pas disponible sur les machines Windows. Pour la remplacer, essayez la classe PEAR : Net_DNS.
Julp.
Merci ! j'ai bien l'impression que c'est la bonne fonction mais en rajoutant ce code après rien ne marche....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if (validate_email) { echo "l'url : ".array_pop(explode("@",$email))." est valide "; } else { echo "l'url : ".array_pop(explode("@",$email))." n'est pas valide "; }
Votre condition n'est pas correcte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $email = 'zzz@email.com'; if (validate_email($email)) { # ... le reste de votre code
Julp.
Partager