[PHP] tester une adresse e-mail

tester une adresse e-mail [PHP] - PHP - Programmation

Marsh Posté le 01-08-2006 à 12:45:17    

Bonjour :) ,
J'ai vu que lors de l'inscription a certains sites, ils demandent une addresse email puis il testent si l'email est valide (ou  du moins le domaine sur laquelle elle est enregistrée). Donc voilà j'aurai voulu savoir comment on peut faire ça.
 :hello:


---------------
http://over-templates.c.la
Reply

Marsh Posté le 01-08-2006 à 12:45:17   

Reply

Marsh Posté le 01-08-2006 à 13:09:52    

1.Tu généres un code unique pour l'utilisateur à l'inscription que tu enregistres dans ta base
2.Tu envoies un mail à cette personne. Après deux solutions. Soit tu donnes le code unique dans le mail en demandant à la personne de l'entrer sur le site quand il revient, soit tu fournis un lien dans le mail avec en paramètre ce code unique. De cette façon la personne a juste a cliquer sur le lien pour arriver sur ta page ou son compte sera activée
3. Sur ta page d'activation du compte, tu vérifies que l code fourni correspond à un compte en attente d'activation et si c'est bon tu actives le compte.
4. voila :)

Reply

Marsh Posté le 01-08-2006 à 13:22:54    

gooopil a écrit :

1.Tu généres un code unique pour l'utilisateur à l'inscription que tu enregistres dans ta base
2.Tu envoies un mail à cette personne. Après deux solutions. Soit tu donnes le code unique dans le mail en demandant à la personne de l'entrer sur le site quand il revient, soit tu fournis un lien dans le mail avec en paramètre ce code unique. De cette façon la personne a juste a cliquer sur le lien pour arriver sur ta page ou son compte sera activée
3. Sur ta page d'activation du compte, tu vérifies que l code fourni correspond à un compte en attente d'activation et si c'est bon tu actives le compte.
4. voila :)


+1 :jap:

Reply

Marsh Posté le 01-08-2006 à 14:33:45    

je fais déja ça mais ça me convient, merci


---------------
http://over-templates.c.la
Reply

Marsh Posté le 01-08-2006 à 14:34:26    

hugoOo a écrit :

je fais déja ça mais ça me convient, merci


 :??:

Reply

Marsh Posté le 01-08-2006 à 15:18:57    

Un peu plus rafiné, tenant compte de :
 

Citation :

(ou  du moins le domaine sur laquelle elle est enregistrée


 
Vérifier l'existence du domaine avant d'envoyer l'email. Ca évite que le luser l'utilisateur n'attende un email qui n'arrivera jamais à cause d'une typo dans le nom de domaine.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 01-08-2006 à 19:34:43    

Exactement sircam. Tout le monde n'est pas chez hotmail et compagnie... faut penser à ceux qui ont leur propre nom de domaine.

Reply

Marsh Posté le 01-08-2006 à 21:01:33    

bonjour voilà la solutions
 
if (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["emai"])){  
// l'adresse e-mail n'est pas valide
                 $erreur="Votre adresse e-mail n'est pas valide...";
 
}

Reply

Marsh Posté le 01-08-2006 à 22:22:04    

j'utilise déja ce script mais je me demandai comment tester la validité d'un nom de domaine..
EDIT: je sais qu'il existe une méthode en PEAR mais mon serveur ne le supporte pas.


---------------
http://over-templates.c.la
Reply

Marsh Posté le 02-08-2006 à 06:11:14    

Tu t'en fou un peu de la validité du nom de domaine. C'est à l'utilisateur de faire attention. La méthode proposé par gooopil est parfaite et c'est probablement la plus efficace.

Reply

Marsh Posté le 02-08-2006 à 06:11:14   

Reply

Marsh Posté le 02-08-2006 à 09:41:02    

AlphaZone a écrit :

Tu t'en fou un peu de la validité du nom de domaine. C'est à l'utilisateur de faire attention. La méthode proposé par gooopil est parfaite et c'est probablement la plus efficace.


 :heink:  
 
Beh non, si tu veux chouchouter ton client avec une application sérieuse, tu fais le maximum pour que le client ne fasse pas d'erreurs.
 
Si le client veux s'inscrire en ligne, que tu lui annonces que tu vas lui envoyer un email et qu'il ne le reçoit pas, c'est peut-être un client perdu. Tout cela à cause d'une typo dans un nom de domaine.  [:airforceone]
 
Un peu comme si tu faisais une inscription papier et qu'à cause d'une typo, ton dossier était classé sans suite. Je suis sûr que tu serais mécontent. Même l'administration ne procède généralement pas de la sorte. :D
 
De plus, ça réduit les éventuels frais de post-processing, si un opérateur doit lister les inscriptions pendantes ou s'enquérir d'une alerte/audit pour un email qui n'a pas abouti, ou en cas d'appel : "je me suis inscrit sur votre site mais..." et tu commences déjà à perdre de l'argent.
 
Visez la qualité ! En l'occurence, ça ne coûte pas (trop) cher. Il faut juste être prudent que la vérification du nom de domaine ne prenne pas des plombes et, qu'en cas d'échec, elle n'empêche pas l'inscription!


Message édité par sircam le 02-08-2006 à 12:28:17

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 02-08-2006 à 12:06:18    

+1


---------------
http://over-templates.c.la
Reply

Marsh Posté le 02-08-2006 à 12:25:36    

Le contrôle d'existence de domaine n'empêche pas non plus l'erreur de saisie d' utilisateur : c'est aussi de sa responsabilité que de vérifier, ou de lui donner les moyens de vérifier, la validité de saisie de son adresse mail.
Chacun sa méthode, mais je préfère de loin un regex pour contrôler la forme et la double saisie d'adresse mail dans un formulaire pour vérification (même si des utilisateurs font du copier/coller).
Accessoirement, rappeler à la validation de l'inscription ou après l'envoi de forumulaire quelle est l'adresse qui a été utilisée.
La méthode est classique et l'erreur 'facteur humain' inévitable.

Reply

Marsh Posté le 02-08-2006 à 12:27:59    

AlphaZone a écrit :

Tu t'en fou un peu de la validité du nom de domaine. C'est à l'utilisateur de faire attention. La méthode proposé par gooopil est parfaite et c'est probablement la plus efficace.


 
 :heink: aussi !
 
Les deux sont complémentaires...C'est pas la même chose, alors comment tu peux dire que ce que j'ai proposé est plus efficace ?  
 
Sinon comme l'a dis Sircam, c'est clair et net que l'idéal c'est de faire la vérification du domaine au moment ou tu vérifies la validité de l'email...La plupart du temps je fais une vérification de domaine, annonce l'erreur au visiteur mais je ne bloque pas l'inscription à cause de ça. C'est le genre de petit plus qui font la différence sur le long terme entre un projet soigné et un autre...

Reply

Marsh Posté le 02-08-2006 à 13:09:32    

gooopil a écrit :

Les deux sont complémentaires...C'est pas la même chose, alors comment tu peux dire que ce que j'ai proposé est plus efficace ?


 
J'aurais du souligner et mettre en gras le "probablement".

Reply

Marsh Posté le 02-08-2006 à 13:18:39    

je fais ça aussi parfois. ça assure que le domaine existe, mais pas que l'adresses est valide.  
 
djfsjdflk@jfkldsjfasdfhfsdfhskjhfk.com -> false
ffffdsjfsadjflsdjfsajl@yahoo.fr  -> ok
 

Code :
  1. list($compte, $domaine)=split("@", $email, 2);
  2.           if (!checkdnsrr($domaine, "MX" ))
  3.                {
  4.                echo "<li>invalid e-mail address : ($compte@$domaine)";
  5.        }


Message édité par jagstang le 02-08-2006 à 13:19:16

---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 02-08-2006 à 15:16:42    

Il n'est pas possible de tester plus loin que la validité du domaine de toute façon. Plus aucun serveur email ne fournit d'indication sur l'existence ou la non-existence d'une adresse au sein du domaine.
 
[:pingouino]
 
Si la vérification échoue, il convient de distinguer deux cas :
- Le DNS check a échoué. On ne peut rien conclure, si ce n'est qu'on n'a pas pu procéder à la vérification. Il est conseillé de passer un audit/alert;
- Le DNS check dit que le domaine n'existe pas. On peut attirer l'attention de l'utilisateur et l'inviter à corriger son adresse, mais il vaut mieux ne pas l'empêcher de poursuivre.
 
S'assurer que le service est fiable : s'il faut attendre un timeout pour se rendre compte qu'il est dans les choux, c'est no good...


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 02-08-2006 à 15:29:34    

sircam a écrit :

Plus aucun serveur email ne fournit d'indication sur l'existence ou la non-existence d'une adresse au sein du domaine.


 
ça n'a même jamais été possible


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 02-08-2006 à 17:35:29    

jagstang a écrit :

ça n'a même jamais été possible


Si, et ça l'est encore en théorie, mais à l'heure actuelle, je ne vois plus aucun serveur mail qui accepte de fournir une réponse.   [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed