Fonction PHP pour éviter le spam de formulaires Web via l’API de stopforumspam


Général / mardi, décembre 8th, 2009

Sur le web, il y a de plus en plus de robots qui essayent frauduleusement d’utiliser des formulaires destinés normalement à laisser les internautes poster des commentaires.

Le but de ces robots est de poster de la publicité sur des forums, des sites de presse, etc …

Pour contrer cela, l’initiative  http://www.stopforumspam.com est née.

Ce site est utile mais s’adresse à un public expert. Le site néglige un peu les programmeurs amateurs. A titre d’exemple, j’ai relevé que personne n’a jugé utile d’ajouter une fonction simple en php pour utiliser l’API.

J’essaye à ma manière de combler ce manque en vous proposant une petite fonction toute simple qui fonctionne en PHP5 (ou PHP4 avec l’extension XMLDom http://php.net/manual/fr/book.dom.php)

function CheckIfWebspammer ($ip) {

 $url="http://www.stopforumspam.com/api?ip=".$ip;
 $xmlDoc = new DOMDocument();
 if ($xmlDoc->load($url)) {
  if ($xmlDoc->getElementsByTagName('response')->item(0)->getAttribute('success')) {
  if (($xmlDoc->getElementsByTagName('appears')->item(0)->nodeValue)=='yes') {
  //$lastseenvalue = $xmlDoc->getElementsByTagName('lastseen')->item(0)->nodeValue;
 return true;
 }
 }
 }
 return false; //Si l'API de stopforum est indisponible ou mal appelée l'IP est considérée comme non spammante}

Il ne reste plus dans le code qu’à utiliser cette fonction qui retourne true (IP à bannir) ou false (laisser poster).

Pour rappel vous pouvez obtenir l’IP du visiteur de la manière suivante :

$ip=$_SERVER["REMOTE_ADDR"];

Je l’utilise pour ma part ainsi :

//IP bannie	if(CheckIfWebspammer($ip)) {	$banned=1;}

Et plus loin dans mon code je vérifie la valeur de la variable $banned et affiche un message d’erreur correspondant.

Si vous voulez un autre exemple de code qui fait la même chose :

http://www.4homepages.de/forum/index.php?action=printpage;topic=26160.0

 

 

 

 

 

4 réponses à « Fonction PHP pour éviter le spam de formulaires Web via l’API de stopforumspam »

  1. Super passionnant… Evidemment, vu le jugement d’aujourd’hui qui démolit Modri et sa clique de pleurnichards, c’est logique que tu changes un peu de sujet… Allez, je bois le champagne à la santé de Baudouin Prout !

  2. CM : On ne te demande rien à toi ! Tu ne comprend visiblement pas l’intérêt d’une telle fonction php ! C’est avec des initiatives pareilles que le web ne sombre pas dans la barbarie.

    Merci Thibs de partager tes expériences !!!!!

    A propos de Fortis ça fait longtemps que je ne suis plus le dossier qui ne m’intéressait pas du tout avant que Thibs ne m’explique clairement les choses preuves à l’appui.

    Depuis lors j’ai perdu le fil mais je continue à penser qu’il y a de terribles magouilles politico-judiciaires derrière et qu’il est grand temps de mettre un coup de pied dans cette fourmillière immonde !

    CM tu fais certainement partie de cet univers que je débecte.

    Thibs tu restes intègre et mérite tout mon respect ! MERCI !!!!!!!!!!!!!!!!!

  3. @Guillaume F :

    C’est clair : cette fonction PHP de base (à la portée de n’importe quel scripteur junior) va révolutionner le monde.

    Evidemment, quand on ne termine pas ses études de droit, on est bien obligé de se rabattre sur une profession plus facile…

    …et on peut seulement être rêveur devant les prestations de Modrikamen…

Les commentaires sont fermés.