Formbuilder - Antispam simple -
Ouik - 17/04/2012
Sa seigneurie voudrait-elle m'indiquer comment elle s'y prend ?
Formbuilder - Antispam simple -
Jean le Chauve - 17/04/2012
Créer une UDT : validating
Code :
if ($params['email2'] != '[unspecified]') {
echo "il semble que vous êtes un robot spammeur. Veuillez utiliser le formulaire contact si ce n'est pas le cas.";
return array(false);
}
else return array(true);
remplacer [unspecified] par ce que vous avez mis dans l'onglet "paramètres d'affichage du formulaire" -> Texte à renvoyer pour les valeurs de champ non spécifiées : [unspecified]
Formulaire :
1° Ajouter un champ mail (nom : email2) sans validation avec une classe hidden (css : form.hidden {display:none;})
2° onglet "envoi du formulaire" : Balise utilisateur à appeler pendant la validation du formulaire : choisir l'UDT validating
Bonjour les bots, si ce champ a été rempli, le formulaire ne sera pas validé et le message "il semble que vous êtes un robot spammeur. Veuillez utiliser le formulaire contact si ce n'est pas le cas." apparaîtra.
Edit: champ email au lieu de champ texte, voir plus haut
http://www.cmsmadesimple.fr/forum/viewtopic.php?pid=11842#p11842
Formbuilder - Antispam simple -
Ouik - 17/04/2012
Merci beaucoup JLC !
En cours de test. J'avais quasi tout bon, sauf le php, évidemment...
Formbuilder - Antispam simple -
Jean le Chauve - 17/04/2012
bess a écrit :non, on lit sur la toile que les bots se sont adaptés
a vrai dire il n'y a pas grand chose qui soit pas pété par les bots... même recaptcha fait un gros fail quand tu sais que certains programmeurs indiens sont payés au Captcha saisit ... que veux tu faire ?
bref pour l'instant c'est Recaptcha , non personnalisable, et ce jusqu'à nouvel ordre.
C'est que ton site est trop bien coté
Pour ma part, jamais de spam avec ce système quand je l'utilise.
Formbuilder - Antispam simple -
gilgab - 03/05/2012
Jean le Chauve a écrit :J'utilise un champ hidden et s'il se rempli, ça ne valide pas. Depuis, jamais de spam.
Bonjour Jean le Chauve, J'ai une petite question, comment fais tu pour vérifier que ce champ caché reste vide ?
Grand merci
OUPS excusez moi je n'ai pas vu la deuxieme page. Question sans fondement donc.
Merci
Formbuilder - Antispam simple -
Ouik - 10/05/2012
ça marche impec au fait
Formbuilder - Antispam simple -
Ouik - 11/03/2013
J'ai un souci avec cet UDT : si je l'appelle pendant la validation du formulaire, les autres vérifications (style le champ email est bien renseigné avec un email, les champs obligatoires ne sont pas vides) ne fonctionnent plus, et donc un mail peut partir sans adresse email valide, sans nom, sans texte, etc. J'ai loupé un truc ?
Formbuilder - Antispam simple -
Jean le Chauve - 14/03/2013
Effectivement !
Je ne sais pas si c'est dû aux nouvelles versions ou si ce problème apparaissait à l'époque du post.
Pour moi, c'est un bug ou alors :
return array(false);
}
else return array(true);
n'est plus accepté.
Autre solution :
1° Ajouter un champ ligne de texte simple (nom : email2) et tu choisis "validation du champs :
ne pas valider l'expression régulière" + une classe hidden (css : form.hidden {display:none;})
2° Dans les options avancées du champ, Validation Regex : tu entres
C'est tout ; si un robot (ou même un humain) essaye de remplir ce champ, l'erreur "Veuillez entrer une valeur correcte pour "mail2" apparaîtra et le formulaire ne sera pas validé (pas évident de comprendre que le champ doit rester vide)
Formbuilder - Antispam simple -
Ouik - 15/03/2013
J'ai l'impression que c'est apparu récemment, à l'époque j'avais fait les tests qui vont bien, et ça ne se passait pas.
Merci pour ta nouvelle solution !
Je vais tester ça.
Formbuilder - Antispam simple -
Phil - 16/03/2013
Bonjour
Pour utiliser l'UDT et concerver le processus de validation :
il y a un petit bug à corriger
http://dev.cmsmadesimple.org/bug/view/8691
il faut sortir une condition d'une boucle
pour ceux qui auraient du mal à le faire
modules/FormBuilder/classes/Form.class.php
il faut ajouter une accolade fermante à Ligne 548 avant la condition :comme ceci
Code :
}
if( $validated == true && !empty($udt) && "-1" != $udt )
et il faut enlever (ou commenter) une accolade fermante à la ligne 581
Code :
//}
return array($validated, $message);
La solution de Jean le Chauve (post #27) foncionne alors sans les problème indiquer par Ouik (post #32)
Formbuilder - Antispam simple -
Jean le Chauve - 17/03/2013
Merci beaucoup de ton retour, Phil
Formbuilder - Antispam simple -
Ouik - 18/03/2013
Ah oui, merci !
Je n'avais pas eu le temps ni le courage de vérifier les bugs de FormBuilder.