Pb de spam avec un formulaire

Petit nouveau ! | 4 Messages

29 sept. 2008, 22:48

Bonjour à tous,

Je viens de finir mon premier site et j'ai déjà un spammer qui pourri mon site. Il passe par un formulaire présent sur toute mes pages.

Je voudrais faire en sorte que le formulaire ne soit pas envoyé s'il contient du code html.
Voilà ce qu'on m'a conseillé mais ca ne marche pas.

Code : Tout sélectionner

$message = nl2br(htmlentities(htmlspecialchars($_POST['message']))); // De même pour le message $string = '$message'; $badString = 'http://' ;// Le mauvais mot if((strpos($string, $badString) === FALSE)){ echo "<SCRIPT language='Javascript'> <!-- alert('Votre message à bien été envoyé !'); // --> </SCRIPT>"; } else{ echo "<SCRIPT language='Javascript'> <!-- alert('Pas d'adresse web, merci !'); // --> </SCRIPT>"; }
Le formulaire est quand même envoyé malgré la présence du mot "http://" dans le textarea ($message).

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

29 sept. 2008, 23:26

Bonjour,

A première vue, je vois deux erreurs:
1) l'ordre des paramètre de la fonction strpos(): http://fr.php.net/strpos
2) l'initialisation de la variable $string avec des guillemets simple qui empèche d'affecter ce que tu veux y affecter.
(par ailleurs, même si ce n'est pas bloquant, appeler une variable "string" est quand même un peu douteux...)
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 20 Messages

30 sept. 2008, 00:09

le mieux c'est de generer un code sous forme d'image, ou meme une simple chaine de caractères a recopier.