Accueil > Développement > Programmation > Vérification d’email à l’inscription

Vérification d’email à l’inscription

lundi 10 octobre 2005, par Prélude

Les emails incorrects sont un problème majeur dans les jeux type PBeM puisque le jeu est censé se jouer par mail. Evidement, ce n’est pas toujours le cas, mais le problème reste lorsqu’il faut envoyer des résultats aux joueurs. Beaucoup de retour d’erreur. Des joueurs qui ne reviennent plus car ils ne savent même plus qu’ils se sont inscrit.
Il existe beaucoup de solutions pour résoudre plus ou moins cette difficulté. Le mieux étant évidement de conjuguer les solutions tant que cela ne nuie pas au joueur.

La méthode

Nous allons ici étudier une solution qui consiste à envoyer un message au joueur, sur l’email qu’il a indiqué lors de son inscription, afin de lui demander de valider son inscription.
S’il répond au mail, c’est qu’il a bien reçu cet email. Sinon, son inscription n’est pas validée et pourra, par exemple, être supprimée au bout d’un certain laps de temps.

Les différentes étapes de la méthode

La première étape consiste donc à envoyer un mail au joueur qui vient tout juste de s’inscrire. Ce mail doit contenir un code d’accès que le joueur ne pourra trouver sans lire le mail en question.
A ce niveau, sa fiche doit contenir deux champs concernant cette méthode :
- le code secret cité plus haut
- un flag indiquant que son inscription est en attente.

Génération du code secret

Il est très simple de générer un code secret aléatoire à l’aide du Php ou de l’ASP.
Nous allons donc voir cela avec les deux langages :

En ASP

randomize
N1 = CStr(CInt(rnd()*9999)+1)
N2 = CStr(CInt(rnd()*9999)+1)
do while len(N1) < 4
  N1 = "0" & N1
loop
do while len(N2) < 4
  N2 = "0" & N2
Loop
C1 = Chr(CInt(rnd()*25)+ASC("A"))
C2 = Chr(CInt(rnd()*25)+ASC("A"))
CodeSecret = C1 & N1 & "-" & C2 & N2

Voilà, nous avons donc en sortie un code secret de la forme : « A1234-B1234 »

La même chose en Php :

srand((float) microtime()*1000000);
$N1 = strval(rand(1, 9999));
$N2 = strval(rand(1, 9999));
while (strlen($N1) < 4) {$N1 = "0".$N1;}
while (strlen($N2) < 4) {$N2 = "0".$N2;}
$C1 = Chr(intval(rand(0, 25)+ord("A")));
$C2 = Chr(intval(rand(0, 25)+ord("A")));
$CodeSecret = $C1.$N1."-".$C2.$N2;

Vérification de l’email

Le mail envoyé au joueur doit donc contenir ce code secret et indiquer au joueur qu’il doit venir sur le site pour confirmer son inscription.
Il vous faut donc prévoir une page spéciale, que vous indiquez dans le mail et qui permettra au joueur d’indiquer le code secret reçu en plus de son login et mot de passe.
Si les trois informations concordent, alors son email est correct a priori et son inscription peu être validée.
Vous devez alors passer le flag de validation dans un nouvel état.

Conclusion

Cette méthode permet de définir à coup sûr que l’email utilisé lors de l’inscription est un email réel.
Maintenant, il existe tellement de services de mails gratuits que le joueur peu très bien utiliser un mail « poubelle » et ne jamais plus l’utiliser par la suite.
Mais cette méthode permet tout de même de faire un tri non négligeable.