Page 1 sur 1

Interdire liens dans script de commentaires

Posté : 26 mai 2008, 20:46
par fatalfury
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

Posté : 26 mai 2008, 21:10
par mcorgnet
Tu as cherché du côté de la fonction
in_array()

?

Posté : 27 mai 2008, 17:16
par fatalfury
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.