Bloquer un spam de formulaire sans captcha?

bigpot Messages postés 27 Statut Membre -  
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je voudrai savoir comment bloquer un spam sans passer par un captcha? j'en reçois sur mes commentaires et je voudrai m'en débarrasser.

Merci de votre aide

A voir également:

4 réponses

Apatik Messages postés 6040 Statut Contributeur 782
 
Des spams..
Toujours la même IP/plage? Bloque la via un .htaccess (gaffe si c'est une plage, tu vas aussi sans doute bloquer des utilisateurs)
Si c'est répété tu peux bloquer l'accès à la page si on la demande plus de x fois par seconde par exemple, toujours via le .htaccess.

Ou encore, via ton code de traitement du formulaire, tu peux automatiquement le supprimer en fonction des mots (en anglais sans doute) qu'il y a dedans..
0
bigpot Messages postés 27 Statut Membre
 
merci Apatik pour cette réponse.

Peut tu m'expliquer d'avantage la seconde méthode. Je ne capte pas!

merci
0
dsy73 Messages postés 9917 Date d'inscription   Statut Contributeur Dernière intervention   2 486
 
Si ton spam provient de bot, tu peux aussi utiliser un formulaire en AJAX en insérant un temps de latence entre chaque champs du formulaire.
0
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 509
 
Salut.

Tu peux créer un script PHP qui génère un jeton.
Ce jeton sera affiché (echo) et enregistré dans une variable de session ($_SESSION['contactFormToken']).

Sur ton formulaire, crées un champ
<input type="hidden" name="contactFormTokenz" />
(j'ai volontairement ajouté un "z" à "Token" si jamais l'option register_globals est activée)
Ensuite, à l'aide d'AJAX, tu pourras récupérer un jeton et le mettre comme valeur pour ce champ.

Lors de la soumission, vérifie si $_POST['contactFormTokenz'] est égal à $_SESSION['contactFormToken'].
Si oui, alors fait les opérations nécessaires et supprime le jeton.
0
dsy73 Messages postés 9917 Date d'inscription   Statut Contributeur Dernière intervention   2 486
 
Peux-tu stp expliquer le but du script ? Vérifier que la session est la même ? Si l'utilisateur est entrée directement sur la page du formulaire, cela fonctionne ?
0
avion-f16 Messages postés 20368 Date d'inscription   Statut Contributeur Dernière intervention   4 509
 
Les robots ne comprennent pas le Javascript, la requête AJAX ne sera donc pas envoyée, et donc le script PHP ne sera pas exécuté => aucun jeton ne sera généré ni stocké en session

Avec un utilisateur normal, la requête AJAX sera effectuée. Tu peux la faire au chargement de la page (onload) du formulaire.
0