Bon voyage

Juste quelques mots pour vous souhaiter un bon voyage dans mes univers parfois un peu étranges.
Si vous avez aimé, n'hésitez pas à me laisser un message. Sachez aussi que je suis le webmestre du site Tache d'Encre qui accueillera gratuitement vos récits imaginaires.

jeudi 24 avril 2008

Un filtre anti-spam simple - Partie 2: Le code php

Suite et fin de l'article un-filtre-anti-spam-simple-partie-1-le

Lors de la première étape nous avons donc créé un formulaire html tout bête, tout simple.
Maintenant, nous allons voir comment appliquer un filtre antispam grâce à un code php très simple.

Vous vous souvenez que nous avions créé un champ caché pour les utilisateurs nommé info. Eh bien nous allons tout simplement récupérer la valeur de ce champ après l'envoi du formulaire.
$fakeField = $_POST['info'];

Si le champ n'est pas vide, on peut estimer que le post est un spam:
$postIsSpam = false;
if ($fakeField!='') {
$postIsSpam = true;
}


Une autre possibilité, si vous voulez affiner votre filtre et que vous n'avez pas réellement un besoin inextinguible de recevoir du code html ou du BBcode via votre formulaire: vous pouvez filtrer vos champs sur des codes de base, généralement des liens postés par des robots ou des spammeurs:
$nameField = $_POST['Nom'];
$mailField = $_POST['Mail'];
...

spamObject = array ('<a href', '[url');
for ($i=0;$i<sizeof(spamObject);$i++) {
if ($nameField==spamObject[$i] || $mailField==spamObject[$i]) {
$postIsSpam = true;
}
}



Ensuite, il vous suffit de traiter la variable $postIsSpam: si elle a la valeur true, le post est un spam.
if ($postIsSpam) {
<Votre code pour revenir au formulaire, ou l'affichage du formulaire lui-même>
} else {
<Vous traitez les valeurs du formulaire pour les insérer dans une base de données ou un fichier xml, ou envoyer un mail... enfin ce que vous voulez>
}


Voilà, je crois que c'est l'un des plus simples filtres anti-spam. Parfaitement fonctionnel. Je l'ai mis en place sur mon site qui était assailli de spams. Du jour au lendemain, le résultat était là et ça fonctionne parfaitement lorsque l'on poste quelque chose qui n'est pas du spam.

Aucun commentaire: