Eicaptcha : Ajout d’une configuration avancées des sélecteurs

Cet article est assez ancien, malgré toute l'attention que j' apporte à mes contenus il est possible que celui-ci ne soit plus d'actualité.
N'hésitez pas à me le signaler si nécessaire via le formulaire de contact.

J’ai eut beaucoup de retours ces dernières semaines sur le non-fonctionnement de mon module de captcha sur les thèmes différents de default-boostrap ( celui par défaut ).
Ceci était du au fait que j’avais stocké directement dans le code des sélecteurs css spécifiques à ce thème.

Vous pouvez le voir sur l’extrait de code suivant :

<script type="text/javascript">
 $(document).ready(function(){
 //Add div where the captcha will be displayed
 $(".submit").before("<div id=\"captcha-box\"></div>"); // <= sélecteur stocké en dur
 
 //Manage form submit 
 $("#submitMessage").click(function(){ // <= sélecteur stocké en dur
 ...
 </script>

La nouvelle version qui sortira dans les prochains jours corrigera ce problème, en permettant d’éditer ces informations directement depuis l’administration.
Dans un nouvel onglet « Paramètres avancés »

captcha-configuration-avancee

Récupération des sélecteurs de votre thème

Attention car la récupération des éléments est assez technique.
Si la notion vous est totalement étrangère je vous invite à consulter la documentation sur ce sujet.

Le plus pratique est d’utiliser les options de développement de votre navigateur  qui s’activent via la touche F12
Une fois ceux-ci activés.

Sélecteur du bouton de soumission du formulaire :
Faites un clic droit sur le bouton de soumission du formulaire et cliquer sur « Examiner l’élément » ( Firefox ) ou « Inspecter » (chrome)
Vous devrez obtenir une capture de ce genre :

Inspecteur bouton formulaire

Dans le cas de cet capture le sélecteur à saisir est #submitMessage car le bouton de soumission a l’id égal à submitMessage.

 

Sélecteur insertion bloc captcha :

Celui-ci est encore un peu plus complexe, car il faut définir l’élément css AVANT LEQUEL nous souhaitons ajouter le bloc de captcha.
Il faut également s’assurer que le bloc sera bien entre les balises <form> et </form> pour que les données soient bien envoyées.

Cela correspond à cette partie du javascript :

$(".submit").before("<div id=\"captcha-box\"></div>");

Dans la configuration par défaut le sélecteur est .submit le bloc du captcha et donc ajouté avant la div « submit » comme vous pouvez voir sur la capture :

Captcha inspecteur container

Pour ceux qui ne sont pas trop à l’aise avec cet élément, il est également possible de rajouter à l’emplacement ou vous souhaitez afficher le captcha directement le code :

<div id="captcha-box"></div>

Pour tous les autres détails de ce module merci de consulter la page spécifique : Module captcha Prestashop

37 réflexions sur “Eicaptcha : Ajout d’une configuration avancées des sélecteurs”

    1. Bonjour,

      J’ai vidé l’ensemble des commentaires qui étaient considérés comme spam par akismet, votre message légitime a du être supprimé avec par erreur.
      Quel était votre message initial ?

      Edit: J’ai également vu passer le message suivant de ta part ( en spam également) :
      « Crois moi je vais te faire de la bonne pub sur les forums le premier Forum de Prestashop pourquoi supprimer mes commentaires…? »

      Je me permets de te répondre directement car c’est pour moi un comportement intolérable.
      En plus de vouloir que je prennes de mon temps libre pour répondre à tes questions tu te permets encore de me menacer car j’ai supprimé par erreur ton message ?!!

      Cordialement,

  1. salut excuse moi si ca ta blésé, car mon commentaire été loin d’être un spam, ma question été comment avoir un Eicaptcha exemple 10 + 1 = … Merci a toi

  2. Bonjour, merci beaucoup pour ce module de captcha.
    Sur ma version de presta 1.7.4.3 le captcha n’apparait pas dans le formulaire de contact. Mais apparait dans le formulaire de création de compte. J’ai pourtant télécharger la derniere version il me semble, EiCaptcha v0.4.15 – par hhennes
    Aurais tu une solution ?
    Merci beaucoup
    Thierry

  3. bonjour,

    J’ai bien la dernière version mais je reçoit des spam russe (200 par jour)

    J’ai lu d’essayer en désactivant javascript sur mon navigateur et le recaptcha disparaît et le mail passe bien par le formulaire?

    y a t’il une solutions ?

    merci

  4. EiCaptcha
    v2.0.4 – sur presta 1.7
    Dans la page Créez votre compte j’ai bien le captcha qui apparait mais a coté j’ai l’inscription « Captcha » également… Est ce normal ou dois je pouvoir l’enlever ?
    Captcha

    Merci beaucoup, très bonne soirée et encore bravo/merci pour votre travail.
    Thierry

  5. Hi,
    Looks like this module doesn’t secure prestashop in 100%.
    I have configured everything creating account and contact page and it works fine for humans.

    But security doesn’t work for bots when they don’t use html rendered page but prepared POST requests.

    I was able to creat account with POST request.
    Can you confirm it has vulnerability for that?
    BR,
    Mateusz

  6. Bonjour Hervé,
    Super module qui fonctionne bien sous PS 16123 ; En fait, le captcha s’affiche pour le formulaire de contact mais ne s’affiche pas pour le formulaire de création de compte car l’Id est SubmitCreate.
    Y a til une solution pour palier à cela ?
    Merci

    1. Bonjour Patrick,

      L’affichage de la création du compte ne devrait pas poser de problème car j’utilise un hook standard de prestashop.
      Est-ce que vous utilisez un thème custom ?
      Merci d’ouvrir un ticket sur github avec plus de détails si nécessaire.

      Cordialement,
      Hervé

  7. Erreur de ma part, le formulaire de saisie des infos contient bien le captcha, je m’étais focalisé sur la page /connexion?back=my-account qui contient les 2 formulaires de création ou de connexion.
    Cdlt

  8. Bonjour Hervé,
    même chose que Patrick me concernant,
    j’utilise la version Prestashop 1.6.0.11 et 0.4.15 de votre module ;
    le submit est bien #submitCreate et le Sélecteur css bloc captcha est par contre identique : .submit,
    même résultat donc le captcha n’est pas affiché sur le formulaire d’inscription.

    J’ai essayé de rajouter le code :

    mais sans résultat.

    Je précise que sur la version 0.4.3 cela ne fonctionnait pas non plus, mais je n’avais pas eu de spam sur ce module…
    Merci pour votre aide.

    Cordialement.

    1. Bonjour Thimy,

      Avez-vous lu la dernière réponse de Patrick ?
      A priori pas de problème de son côté.
      La gestion du sélecteur est utile uniquement pour le formulaire de contact.
      Pour la page de création de compte j’utilise un hook natif prestashop.

      Cordialement,
      Hervé

  9. Bien pas la peine non plus de publier le commentaire précédent me concernant, même chose que le dernier message de Patrick, je ne regardais pas où il fallait… le captcha est bien présent sur la page authentification#account-creation

    Merci à vous pour ce développement.

  10. Bonjour et merci pour ce module,

    il fonctionne très bien pour la page contact, mais pas pour la page authentification.
    Je suis en PS1.6.2.2, et quand je teste le module, j’ai cette erreur :
    Errors

    the module is not registered in hook header
    the module is not registered in hook contactFormAccess
    ContactController.php override does not exists
    ContactController.php override is not present in class_index.php
    Please remove file cache/class_index.php in order to fix the issue
    J’ai supprimer class_index.php, plusieurs fois et toujours la même erreur.
    Si tu as une idée, merci
    Patrick

  11. bonjour suite a une suppression complète des caches j’ai toujours une erreur de hook header, je possède la dernière version 0.4.16

    Errors
    the module is not registered in hook header
    Success
    the module is compatible with your version
    the module is well registered in hook displayCustomerAccountForm
    the module is well registered in hook contactFormAccess
    the module is well registered in hook actionBeforeSubmitAccount
    Overrides are enabled on your website
    ContactController.php override exists
    ContactController.php override is present in class_index.php
    Aditionnal informations
    Prestashop version 1.6.1.23
    Theme name transformer
    Php version 7.0.33

  12. I am experiencing the following error while submitting contact form data! What could it be???

    1 error

    incorrect response to CAPTCHA challenge. Please try again.
    —————————————–
    My prestashop!

    advanded parameters
    Errors
    OPC checkout is enable, be aware that the captcha won’t be displayed on it

    Success
    the module is compatible with your version
    the module is well registered in hook header
    the module is well registered in hook displayCustomerAccountForm
    the module is well registered in hook contactFormAccess
    the module is well registered in hook actionBeforeSubmitAccount
    Overrides are enabled on your website
    ContactController.php override exists
    ContactController.php override is present in class_index.php
    Aditionnal informations
    Prestashop version 1.6.1.7
    Theme name default-bootstrap
    Php version 5.6.40

  13. Bonjour,

    Mon client à des problèmes de spam russe et chinois (400/jour), j’ai installé le module mais il fonctionne uniquement en captcha v.2 ! Hors en v.2 (même avec la protection maximal sélectionner), les bots passe le captcha. Que faire ?

  14. Bonjour Hervé

    Vous avez du entendre parler de la faille du à PHPUnit.
    Est ce que votre module a été vérifié? Y a t il une MAJ à faire?

    PS : le module marche super bien. Merci !

  15. Bonjour,
    Depuis quelues temps j’ai un souci avec ce module.
    Voilà le lien : https://www.polyte.ch/shop/index.php

    Tout est ok dans le module, lorsque je clique sur paramètres avancés :
    Success

    the module is compatible with your version
    the module is well registered in hook header
    the module is well registered in hook displayCustomerAccountForm
    the module is well registered in hook contactFormAccess
    the module is well registered in hook actionBeforeSubmitAccount
    Overrides are enabled on your website
    ContactController.php override exists
    ContactController.php override is present in class_index.php

    Par contre, j’ai toujours l’erreur : Il y a 1 erreur

    Captcha Incorrect, merci d’essayer à nouveau

    Je ne sais plus trop où chercher.

    Au plaisir de vous lire.

    Jacques

Répondre à Jacques Disner Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *