Les images anti-spam

Artichow vous permet de protéger efficacement vos pages contre les requêtes automatisées de robots, avec la classe AntiSpam. Cette fonctionnalité peut être utilisée pour filtrer l'inscription à un site communautaire par exemple.

La protection d'une page se fait en trois étapes. La première est de créer une image qui affiche une valeur aléatoire, la deuxième de créer un formulaire sur lequel l'utilisateur devra réécrire la valeur aléatoire qu'il voit, et la troisième de vérifier que la valeur fournie par l'utilisateur correspond avec celle qui était affichée sur l'image.

On commence par créer l'image anti-spam dans un fichier spam.php. On choisit de créer une image avec 5 lettres.

<?php

	require_once 'Artichow/AntiSpam.class.php';

	// On créé l'image anti-spam
	$object = new AntiSpam();
	
	// La valeur affichée sur l'image aura 5 lettres
	$object->setRand(5);
	
	// On assigne un nom à cette image pour vérifier
	// ultérieurement la valeur fournie par l'utilisateur
	$object->save('exemple');
	
	// On affiche l'image à l'écran
	$object->draw();

?>

Ce code devrait permettre d'afficher une image telle que celle-ci :

Une image anti-spam

Une fois l'image créée, on peut maintenant développer un formulaire form.php sur lequel l'utilisateur devra réécrire le code aléatoire de 5 lettres qui lui sera donné. Ce formulaire ne contient pas de PHP, juste quelques lignes au format HTML. Il demande à l'utilisateur de saisir le code affiché sur l'image.

<form action="valid.php" method="get">
	<img src="spam.php" style="vertical-align: middle" alt=""/>
	<input type="text" name="code"/>
	<input type="submit" value="Submit"/>
</form>
Le formulaire de demande de code

Le formulaire ainsi créé doit pointer vers une page qui permettra de déterminer si l'utilisateur a saisi un code correct. Il ne reste plus qu'à créer une page valid.php où valider la valeur soumise par l'utilisateur, tel que montré ci-dessous :

<?php

	require_once "Artichow/AntiSpam.class.php";
	
	$object = new AntiSpam;
	
	// On vérifie la valeur fournie par l'utilisateur
	// avec la valeur enregistrée pour l'image
	if($object->check('exemple', $_GET['code'])) {
		echo "Bonne valeur :-)";
	} else {
		echo "Mauvaise valeur :-(";
	}

?>

Le contenu de la page valid.php est maintenant protégé contre les requêtes automatiques de robots. Ce tutoriel est terminé et si vous le souhaitez, vous pouvez retrouver l'ensemble du code utilisé dans l'archive de Artichow.

Liens

 
 
 
  Le contenu de ce site est placé sous license Creative Commons.