Formulaire avec un anti spam pour site asso
Fermé
danvon
Messages postés
4
Date d'inscription
mercredi 11 septembre 2019
Statut
Membre
Dernière intervention
15 septembre 2019
-
Modifié le 11 sept. 2019 à 19:50
dugenou Messages postés 6087 Date d'inscription mercredi 19 janvier 2005 Statut Contributeur Dernière intervention 30 juillet 2021 - 15 sept. 2019 à 18:38
dugenou Messages postés 6087 Date d'inscription mercredi 19 janvier 2005 Statut Contributeur Dernière intervention 30 juillet 2021 - 15 sept. 2019 à 18:38
A voir également:
- Formulaire avec un anti spam pour site asso
- Site de telechargement - Accueil - Outils
- Site comme coco - Accueil - Réseaux sociaux
- Site pour vendre des objets d'occasion - Guide
- Quel site remplace coco - Accueil - Réseaux sociaux
- Site inaccessible - Guide
4 réponses
dugenou
Messages postés
6087
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 451
Modifié le 11 sept. 2019 à 20:55
Modifié le 11 sept. 2019 à 20:55
Bonsoir,
Sans PHP, tu peux essayer le captcha de Google, quoique, je ne suis pas certain qu'il soit possible de l'utiliser sans PHP : https://www.google.com/recaptcha/about/
Sinon, il ne reste que le JavaScript.
Par exemple, de cette manière :
Il faut commencer par créer une petite image contenant 2+2= que tu appelleras code.gif et que tu placeras dans le dossier images de ton site.
Ensuite, tu ajoutes ce script dans la page du formulaire, avant le formulaire.
Dans le formulaire tu ajoutes une ligne au formulaire, avant le bouton "Envoyer" :
Puis, tu modifies la ligne du bouton "Envoyer" :
Sans PHP, tu peux essayer le captcha de Google, quoique, je ne suis pas certain qu'il soit possible de l'utiliser sans PHP : https://www.google.com/recaptcha/about/
Sinon, il ne reste que le JavaScript.
Par exemple, de cette manière :
Il faut commencer par créer une petite image contenant 2+2= que tu appelleras code.gif et que tu placeras dans le dossier images de ton site.
Ensuite, tu ajoutes ce script dans la page du formulaire, avant le formulaire.
<script type="text/javascript"> function verifform(formulaire) { if(formulaire.code.value != "4") alert('Erreur code anti-spam !'); else formulaire.submit(); } </script>
Dans le formulaire tu ajoutes une ligne au formulaire, avant le bouton "Envoyer" :
<p>Code anti-spam <img src="images/code.gif"> <input type="text" name="code" size="1" maxlength="1"></p>
Puis, tu modifies la ligne du bouton "Envoyer" :
<button onClick="verifform(this.form)" class="submit">Envoyer</button>
danvon
Messages postés
4
Date d'inscription
mercredi 11 septembre 2019
Statut
Membre
Dernière intervention
15 septembre 2019
11 sept. 2019 à 23:17
11 sept. 2019 à 23:17
J'ai modifié mon formulaire mais ça ne fonctionne pas. Si je remplis mal la case 2+2 ou si je ne la remplis pas, une fenêtre apparait pour me dire "Erreur de calcul dans la case anti-spam !", ce qui est normal mais lorsque dans cette petite fenêtre je clique sur "ok" alors ça envoie le formulaire automatiquement.
Voici le code que j'ai mis :
Si quelqu'un a la solution, j'avoue être perdu avec cette histoire de formulaire.
Voici le code que j'ai mis :
<div class="col g-7"> <script type="text/javascript"> function verifform(formulaire) { if(formulaire.code.value != "4") alert('Erreur de calcul dans la case anti-spam !'); else formulaire.submit(); } </script> <form action="http://w2.webreseau.com/fr/services/FormToEmail/FormToEmail2.asp" ENCTYPE="multipart/form-data" method="POST"> <input type="hidden" name="_id" value="5484984644854"> <input name="_subject" type="hidden" value="Commentaires fr"> <input name="_requiredFields" type="hidden" value="Sujet,Nom,Courriel,Message"> <input name="_userinfo" type="hidden" value="1"><!-- IP --> <input name="_replyToField" type="hidden" value="Email"><!-- répondre à --> <input name="_redirect" type="hidden" value="http://www.mon-site.com/fr-v.html#contact"> <fieldset> <div> <label for="contactName">Nom, Prénom</label> <input name="nom" type="text" id="contactName" size="35" required="required" > </div> <div> <label for="contactEmail">Courriel</label> <input name="courriel" type="text" id="contactEmail" size="35" required="required" > </div> <div> <label for="contactSubject">Sujet </label> <input name="sujet" type="text" id="contactSubject" size="35" required="required" > </div> <div> <label for="contactMessage">Message</label> <textarea name="message" id="contactMessage" rows="15" cols="50"></textarea> </div> <div> <label>Anti-spam<br />Calculez 2 + 2 =</label> <input type="text" name="code" size="1" maxlength="1"> </div> <div> <button onClick="verifform(this.form)" class="submit">Envoyer</button> <span id="image-loader"> <img src="images/loader.gif" alt=""> </span> </div> </fieldset> </form> <div id="message-warning"></div> <div id="message-success"> <i class="icon-ok"></i>Votre message a été envoyé, merci !<br>Your message was sent, thank you!<br> </div> </div>
Si quelqu'un a la solution, j'avoue être perdu avec cette histoire de formulaire.
dugenou
Messages postés
6087
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 451
Modifié le 12 sept. 2019 à 08:48
Modifié le 12 sept. 2019 à 08:48
Bonjour,
Je ne comprends pas pourquoi avec ton formulaire ça ne fonctionne pas. Le JavaScript n'est peut-être pas adapté à cette fonction.
Sur mes formulaires, je n'utilise pas ce genre de script comme captcha, mais seulement pour vérifier que les champs ne sont pas vides. Pour l'anti-spam, j'utilise le même principe du calcul très simple (2+2=4), mais la vérification est faite en PHP.
Dans ton cas, ce n'est pas possible, le fichier de traitement du formulaire se trouve chez ton prestataire.
Je ne comprends pas pourquoi avec ton formulaire ça ne fonctionne pas. Le JavaScript n'est peut-être pas adapté à cette fonction.
Sur mes formulaires, je n'utilise pas ce genre de script comme captcha, mais seulement pour vérifier que les champs ne sont pas vides. Pour l'anti-spam, j'utilise le même principe du calcul très simple (2+2=4), mais la vérification est faite en PHP.
Dans ton cas, ce n'est pas possible, le fichier de traitement du formulaire se trouve chez ton prestataire.
dugenou
Messages postés
6087
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 451
13 sept. 2019 à 07:17
13 sept. 2019 à 07:17
Bonjour,
Après quelques recherches, je pense avoir trouvé la solution. Il faut ajouter onsubmit="return false" dans l'entête du formulaire :
Après quelques recherches, je pense avoir trouvé la solution. Il faut ajouter onsubmit="return false" dans l'entête du formulaire :
<script type="text/javascript"> function verifform(formulaire) { if(formulaire.code.value != "4") alert('Erreur de calcul dans la case anti-spam !'); else formulaire.submit(); } </script> <div class="col g-7"> <form action="http://w2.webreseau.com/fr/services/FormToEmail/FormToEmail2.asp" ENCTYPE="multipart/form-data" method="POST" onsubmit="return false"> <input type="hidden" name="_id" value="5484984644854"> <input name="_subject" type="hidden" value="Commentaires fr"> <input name="_requiredFields" type="hidden" value="Sujet,Nom,Courriel,Message"> <input name="_userinfo" type="hidden" value="1"><!-- IP --> <input name="_replyToField" type="hidden" value="Email"><!-- répondre à --> <input name="_redirect" type="hidden" value="http://www.mon-site.com/fr-v.html#contact"> <fieldset> <div> <label for="contactName">Nom, Prénom</label> <input name="nom" type="text" id="contactName" size="35" required="required" > </div> <div> <label for="contactEmail">Courriel</label> <input name="courriel" type="text" id="contactEmail" size="35" required="required" > </div> <div> <label for="contactSubject">Sujet </label> <input name="sujet" type="text" id="contactSubject" size="35" required="required" > </div> <div> <label for="contactMessage">Message</label> <textarea name="message" id="contactMessage" rows="15" cols="50"></textarea> </div> <div> <label>Anti-spam<br />Calculez 2 + 2 =</label> <input type="text" name="code" size="1" maxlength="1"> </div> <div> <button onClick="verifform(this.form)" class="submit">Envoyer</button> <span id="image-loader"> <img src="images/loader.gif" alt=""> </span> </div> </fieldset> </form> <div id="message-warning"></div> <div id="message-success"> <i class="icon-ok"></i>Votre message a été envoyé, merci !<br>Your message was sent, thank you!<br> </div> </div>
dugenou
Messages postés
6087
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 451
>
dugenou
Messages postés
6087
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
13 sept. 2019 à 10:59
13 sept. 2019 à 10:59
Je te conseille d'utiliser une image pour afficher le calcul du captcha pour plus d'efficacité, les robots spammeurs sont capables de lire et d'interpréter beaucoup de choses :
L'image :
<label>Anti-spam<br />Calculez <img src="images/code.gif" alt="Code"></label>
L'image :
danvon
Messages postés
4
Date d'inscription
mercredi 11 septembre 2019
Statut
Membre
Dernière intervention
15 septembre 2019
13 sept. 2019 à 23:39
13 sept. 2019 à 23:39
Bonsoir,
je viens de faire des tests et ta solution semble être la bonne. L'envoi du formulaire fonctionne bien. Maintenant reste à voir si ça a un effet sur les robots. Si déjà ça limite les 10ènes de courriel quotidiens, ce sera bien.
En tout cas merci pour ton soutien.
je viens de faire des tests et ta solution semble être la bonne. L'envoi du formulaire fonctionne bien. Maintenant reste à voir si ça a un effet sur les robots. Si déjà ça limite les 10ènes de courriel quotidiens, ce sera bien.
En tout cas merci pour ton soutien.
dugenou
Messages postés
6087
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 451
Modifié le 14 sept. 2019 à 06:32
Modifié le 14 sept. 2019 à 06:32
Bonjour,
Très bien ! Tiens nous au courant de l'efficacité de cette solution.
Malheureusement, je ne suis pas certain qu'un anti-spam en JavaScript soit efficace contre des robots-spammeurs.
Très bien ! Tiens nous au courant de l'efficacité de cette solution.
Malheureusement, je ne suis pas certain qu'un anti-spam en JavaScript soit efficace contre des robots-spammeurs.
danvon
Messages postés
4
Date d'inscription
mercredi 11 septembre 2019
Statut
Membre
Dernière intervention
15 septembre 2019
Modifié le 15 sept. 2019 à 17:49
Modifié le 15 sept. 2019 à 17:49
Bonjour Dugenou,
Tes craintes sont justifiées. L'ajout de ce JavaScript n'a strictement rien changé (même en mettant le 2 + 2 en image). J'ai lu sur internet qu'il existe des champs cachés dans les formulaires pour induire les robots en erreur mais bon je n'ai pas réussi à trouver un exemple concret de ce type de script. Le petit site de l'association est hébergé chez OVH, donc normalement le PHP devrait fonctionner. Peut être devrais-je chercher de ce coté. Je voulais éviter de rentrer dans des scripts trop complexes pour un simple formulaire mais bon je crois que je ne vais pas pouvoir y échapper.
Tes craintes sont justifiées. L'ajout de ce JavaScript n'a strictement rien changé (même en mettant le 2 + 2 en image). J'ai lu sur internet qu'il existe des champs cachés dans les formulaires pour induire les robots en erreur mais bon je n'ai pas réussi à trouver un exemple concret de ce type de script. Le petit site de l'association est hébergé chez OVH, donc normalement le PHP devrait fonctionner. Peut être devrais-je chercher de ce coté. Je voulais éviter de rentrer dans des scripts trop complexes pour un simple formulaire mais bon je crois que je ne vais pas pouvoir y échapper.
dugenou
Messages postés
6087
Date d'inscription
mercredi 19 janvier 2005
Statut
Contributeur
Dernière intervention
30 juillet 2021
1 451
15 sept. 2019 à 18:38
15 sept. 2019 à 18:38
Bonjour, Je ne suis pas étonné, je pense que les robots-spammeurs passent outre le JavaScript.
Le système du champ caché ne fonctionne qu'avec du PHP.
Tu trouveras très facilement de nombreux scripts de formulaires de contact en PHP. Tu pourras alors y ajouter un système de captcha ou anti-spam efficace.
Tu peux même utiliser le système du calcul et du résultat à écrire dans un champ, avec une vérification en PHP.
Le système du champ caché ne fonctionne qu'avec du PHP.
Tu trouveras très facilement de nombreux scripts de formulaires de contact en PHP. Tu pourras alors y ajouter un système de captcha ou anti-spam efficace.
Tu peux même utiliser le système du calcul et du résultat à écrire dans un champ, avec une vérification en PHP.