Jump to content

Ajout D'un Captcha Aux Commentaires


Recommended Posts

Voilà j'utilise cet excellent module:

http://www.mygeeksgi..._product=18&p=5

 

sur ma version 1.2.5, mais parfois je me fais spammer et recois jusqu'à 2 ou 3 commentaires bidon pa jour (c'est par période)

 

j'ai doc voulu ajouter un captcha en utilisant recaptcha mais en regardant les explications pour intégréer tout ca, je me rends compte que je ne sais pas du tout comment faire.

 

j'ai réussi à afficher le captcha en insérant le script de ce lien:

http://code.google.c...s/formmail.html

 

dans mon fichier productcomments.tpl, mais pour la suite je sèche complètement.

de plus je ne sais pas si je dois utiliser la méthode "php" ou "formail" ou autre.

 

est ce que qqun ici saurait m'éclairer d'autant que je suis sure que ca pourra servir à beaucoup d'entre nous.

 

merci d'avance.

Link to comment
Share on other sites

hello,

 

je ne sais pas pour le captcha parce que je n'aime pas trop ça (et les utilisateurs non plus...)

pour éviter les spams, voilà ce que je fais partant du principe que les spams sont envoyés par des moteurs (sinon, de toute façon, le captcha ne sert à rien)

je mets un champ texte en début de formulaire avec une classe grace à laquelle je balance ce champ 10000 pixel à gauche (donc pas vu par un utilisateur), j'appelle ce champ laisservide ou je lui mets un title du genre pour les lecteurs d'écrans (truc qu'un robot stupide ne comprendra pas) et, bien sûr une value=""

à la validation du formulaire, si ce champ n'est pas vide = moteur = die();

 

effet garanti testé de nombreuses fois sur des sites spammés aussi

 

si ton module te permet de personnaliser le formulaire et sa validation, c'est simple et efficace

 

have swing

 

édité pour une petite anecdote

j'ai tenu longtemps un forum sur le jazz gitan et, au début, à l'inscription, j'avais mis un captcha justement.

un jour je reçois un mail d'un gars me demandant de l'aider à s'inscrire parce qu'il ne voyait pas bien le truc en bas

je lui réponds "t'inquiète, moi aussi, à nos âges..."

et là le gars me réponds en rigolant "et bien en fait, je suis aveugle"

depuis ce jour je n'ai plus jamais utilisé de captcha :)

Link to comment
Share on other sites

hello,

 

le truc n'est juste de rajouter un champ au formulaire, il faut être sûr de pouvoir le valider ensuite juste pour vérifier qu'il est bien vide, si pas, adios -> die(); :)

je fait un truc du genre juste en dessous de la balise d'ouverture du formulaire

<div class="rt"><input type="text" name="laisservide" id="laisservide" value="" /></div>

dans les css

.rt {


   position: absolute;
   left	   : -10000px;
}

le mettre dans un div c'est juste pour être valide en strict les éléments de formulaire ne devant pas se balader "à sec" en strict mais tu peux le faire en mettant juste l'input et la class dessus

ensuite, dans les verif, à adapter à la façon dont les vérif du module fonctionnent

if ( !empty($_POST) )


{
   if ( $_POST['laisservide'] != "" ) die();
}

et hop, adios robots spammeurs :)

 

have swing

Link to comment
Share on other sites

je viens de le faire et au moins je n'ai pas de bug.

j'ai réussi à ajouter le champ, pour le moment je l'ai rendu visible pour pouvoir faire des tests et en fait quand je mets ton code, ca me renvoi une page vide mais par contre je recois quand même le commentaire.

j'ai essayé de mettre ca ) la place de die();

$errors[] = $this->l('laisservide is not required.');

 

mais ca ne fonctionne pas, aurais tu une idée du code à mettre à la place?

merci encore pour ton aide.

Link to comment
Share on other sites

hello,

 

ben pour t'aider, faudrait que je vois comment le module traite le formulaire en fait

 

ajouter un champ au formulaire ne devrait pas lui poser de problème, à la limite il ne s'en occupe carrément pas, c'est au moment de traiter les données que ça se fait mais une chose est sûr c'est que is not required ça ne doit pas être ça :)

 

si tout baigne quand tu envoie le formulaire avec le champ vide et que tu as une page blanche si tu mets des données dedans, c'est le but du jeu en fait, en clair, si un moteur remplit ce champ, ça n'envoie pas de données et ça ne livre plus rien, ça arrête tout d'où die(), ne fais pas de sentiments avec les moteurs de spams :)

en revanche si le champ n'est pas rempli, tout doit fonctionner sans problème

 

si tu veux vérifier que c'est bien l'effet die mets du texte dedans genre

die('bye bye spammeurs de mes...');

:)

 

have swing

Link to comment
Share on other sites

  • 1 year later...

Je déterre ce topic pour dire merci à virtualgadjo pour l'astuce du champs caché qui doit rester vide.

 

Je ne connaissais pas mais c'est simple à mettre en place et ça peut avoir son efficacité, même en complément d'un captcha (car les robots sont malheureusement de plus en plus malins :angry:)

 

Juste une petite suggestion :

Pour une meilleur efficacité je ferais en sorte de donner à ce champ une appellation vraisemblable, pour que ça ressemble vraiment à un champ légitime.

ex: Si vous avez un champ "email" vous pouvez appeller ce champ caché "confirm-email"

 

Ensuite on peut même faire un traitement pour simuler l'envoi réussi au cas ou ce champ serait rempli... ;)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...