Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Formbuilder - Antispam simple
#26

Sa seigneurie voudrait-elle m'indiquer comment elle s'y prend ? Wink

Ouik - communication . outils numériques . design graphique
Répondre
#27

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/viewto...842#p11842
Répondre
#28

Merci beaucoup JLC ! Cool

En cours de test. J'avais quasi tout bon, sauf le php, évidemment...

Ouik - communication . outils numériques . design graphique
Répondre
#29

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é Smile
Pour ma part, jamais de spam avec ce système quand je l'utilise.
Répondre
#30

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
Répondre
#31

ça marche impec au fait Cool

Ouik - communication . outils numériques . design graphique
Répondre
#32

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 ?

Ouik - communication . outils numériques . design graphique
Répondre
#33

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
Code :
/[a-zA-Z0-9]/
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) Smile
Répondre
#34

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 ! Cool
Je vais tester ça.

Ouik - communication . outils numériques . design graphique
Répondre
#35

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)
Répondre
#36

Merci beaucoup de ton retour, Phil Smile
Répondre
#37

Ah oui, merci ! Cool
Je n'avais pas eu le temps ni le courage de vérifier les bugs de FormBuilder.

Ouik - communication . outils numériques . design graphique
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)