Traquer les spams dans vos formulaires

2010, Apr 02    

Vous avez un site ? Un blog ? Ou vous créez des sites ? Nécessairement vous avez donc un formulaire de contact… Il ne vous ai jamais arrivé de recevoir des mails bizarres ? Vous savez… des spams !!! :)

Voici un petit moyen d’éviter que cela ne vous arrive de nouveau. Ce n’est pas compliqué et cela pourra vous éviter de recevoir encore plus de spams :)

Askimet est ton ami

Si vous tenez un blog, vous avez sûrement déjà le plugin « Askimet » installé pour filtrer les spams pour vos commentaires. Et bien nous allons utiliser le même fonctionnement pour vos formulaires. Vous pourrez l’utiliser pour vos formulaires de contact, votre livre d’or ou encore vos commentaires sur un article.

Allez on est partis ;)

Première étape : obtenir une clé « Askimet »

Ce système utilisant une clé il vous faudra l’obtenir. Rien de plus simple pour cela. Rendez vous sur le système d’enregistrement, entrez votre adresse mail et vous recevrez un beau mail avec votre clé « Askimet ».

Your Akismet API key is: ****

Deuxième étape : télécharger « Askimet »

Une fois votre clé acquise, vous devez télécharger le système. Je vous propose de télécharger la classe PHP 5 crée par Aching Brain.

Troisième étape : mettre en place le code

Une fois la classe téléchargée nous allons voir comment mettre « Askimet » en place.

// définition des variables utiles
$apiKey  = '************';
$siteUrl = 'http://rkueny.fr';

// vous devrez sans doute gérer les variables de votre formulaire ici
// exemple : $authorComment = $_POST['authorComment'];

/*
* initialisation de la classe
* ajout des informations utiles (auteur, email, url, contenu)
*/
$askimet = new Askimet($siteUrl, $apiKey);
$askimet->setCommentAuthor($authorComment);
$askimet->setCommentAuthorEmail($emailComment);
$askimet->setCommentAuthorURL($urlComment);
$askimet->setCommentContent($contentComment);

// on test s'il s'agit d'un spam ou pas
if($askimet->isCommentSpame()){
     // c'est un spam
}else{
     // ce n'est pas un spam
}

Et voilà, rien de plus simple :) Vous avez un très bon système de filtrage de spam en place.

Un dernier conseil. « Askimet » n’est pas fiable à 100%. Du coup, enregistrez tout de même les commentaires considérés comme du spam, avec possibilité de les valider par la suite ou de les supprimer. (un simple champ dans la BDD : validate / 1 ou 0).

Si vous avez des questions, ou si vous voulez plus de renseignement, n’hésitez pas à laisser un commentaire.