Interdire liens dans script de commentaires

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Interdire liens dans script de commentaires

par fatalfury » 27 mai 2008, 17:16

J'ai réussi avec une autre méthode. Je donne la valeur "OK" à une variable si l'adresse hôte contient un nom de fai francophone connu. Ensuite, ça devient facile.
$ip = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$listefai = Array('.fr','.be','.ca','.ch','proxad','wanadoo','gaoland','cegetel','club-internet','tiscali','noos','tele2','iam.net.ma','modulonet');
foreach ($listefai as $compare)
{ $comparaison = strstr($ip, $compare);
 if($comparaison!==false)
     {
     $fai = "ok";
     }
}
if($fai != 'ok')
{	
	$banwords = Array('http','www');
	foreach ($banwords as $censure)
	  { $comparaison = strstr($message, $censure);
	 if($comparaison!==false)
	        {echo "Afin de lutter contre les robots spammeurs, les liens sont interdits";
	        exit();
	        }
	  }
}
C'est bon, mais je pense qu'il est possible d'alléger cela.

par mcorgnet » 26 mai 2008, 21:10

Tu as cherché du côté de la fonction
in_array()

?

Interdire liens dans script de commentaires

par fatalfury » 26 mai 2008, 20:46

Bonjour,
Sur mon site, les invités peuvent ajouter des commentaires.
Afin de lutter contre les robots spammeurs, j'ai tout simplement interdit les liens internet.
Voici mon filtre de message :
($message est la variable utilisée pour les messages)

Code : Tout sélectionner

$banwords = Array('http','www'); foreach ($banwords as $censure) { $comparaison = strstr($message, $censure); if($comparaison!==false) {echo "Liens interdits"; exit(); } }
Mais je souhaite autoriser les liens uniquement aux internautes français chez un FAI connu : free, wanadoo, 9telecom, etc...
J'ai un peu de mal à faire ce script et il ne marche pas. Est-ce que quelqu'un peut m'aider à le compléter :

Code : Tout sélectionner

$hote = gethostbyaddr($_SERVER['REMOTE_ADDR']); // adresse hôte, exemple : AMarseille-XXX-X-XX-XXX.w90-42.abo.wanadoo.fr $fai = Array('wanadoo','proxad','gaoland','etc...'); // on vérifie que l'adresse hôte contient ces mots dedans { $comparaison = strstr($hote, $fai); if($comparaison!==false) { // --- Le filtre de message ci-dessus ici pour interdire les liens internet ---- } }
Merci