Quel webmaster n’a pas été confronté à ce problème simple en apparence du contrôle d’une adresse mail lors de l’inscription de ces joueurs ? Ce n’est pas un problème à prendre à la légère et doit être pris en compte dès le commencement du développement d’un jeu en ligne.

La problématique

Ce problème simple peu devenir très vite un important problème lorsque vous avez affaire a un robot qui inscrit des joueurs fictifs pour nuire au jeu. Dans un autre domaine, les webmasters ayant installés un forum phpBB, dans une version antérieure, ont vu le nombre d’abonnés augmenter de façon exponentielle. La première réaction a été de se dire  » Chouette, pleins de nouveaux membres, mes efforts payent enfin… « , mais dès lors que ces membres fantômes ne participaient pas à la vie du forum, les webmasters se sont posés quelques questions. Mais lorsqu’ils ont vu que la page servant à afficher la liste des membres affichait aussi les sites internet des soient disant nouveaux membres avec un lien en dur vers leurs sites, la joie est très vite descendue.

Car en effet, le seul intérêt qu’avaient ces nouveaux membres résidait dans la présence d’un lien en dur vers leur site. Comme Google prenaient en compte le nombre de back links (de lien vers un site à partir d’un autre site), la méthode devenait très vite sympa : repérer les forums phpBB sur Google, allez s’inscrire et tout ça de façon automatisée. Heureusement, les développeurs de phpBB ont vite réagis.

La méthode

La méthode présentée ici consiste à vérifier le schéma d’une adresse mail à l’aide des expressions régulières.

Ces fameuses expressions régulières sont réellement très pratiques pour peu que l’on arrive à s’en servir, car leur puissance égale leur difficulté de mise en œuvre.

Une adresse mail prend la forme suivante : xxxx@yyy.zzz.fff

Où xxx peu être remplacé par n’importe quel caractère alphanumérique ou des caractères spéciaux comme l’underscore « _ » ou le tiret « -« .
C’est le même schéma pour yyy, zzzz et fff. De plus, xxx peu être répété plusieurs fois ainsi que les autres schémas.

Nous ne rentrerons pas dans le fonctionnement des expressions régulière dans cet article.

Voici donc la fonction en ASP :
function Email_Is_Valide(email)
set modele = New RegExp
modele.pattern = "^[\w_.~-]+@[\w][\w.\-]*[\w]\.[\w][\w.]*[a-zA-Z]$"
modele.global = true
Email_Is_Valide = modele.test(email)
end function

Et pour le Php :
function Email_Is_Valide($email)
$regex = "^([~._a-z0-9-]+[~._a-z0-9-]*)@(([a-z0-9-]+\.)*([a-z0-9-]+)(\.[a-z]2,3))$";
return (eregi($regex, $email));

Voilà, vous n’avez plus qu’à faire appel à ces fonctions lors de la validation d’un formulaire d’inscription pour contrôler l’email indiqué.

Vous pouvez évidement coupler cette méthode avec d’autres méthodes expliquées dans d’autres articles.