Le Captcha par défaut de Magento affiche «CAPTCHA incorrect» même si le code correct est entré


10

Dans mon site magento, j'ai activé Captcha pour créer un compte sous forme de thème personnalisé que j'ai construit à partir de zéro (pas "rwd"), mais lorsque j'essaie d'enregistrer un client en fournissant le code captcha correct dans le champ, même alors, il affiche "Incorrect Captcha "après avoir actualisé et redirigé vers la même page.

Aucun avertissement / erreur sur le client ou le serveur.

Quelqu'un peut-il me guider?


1
J'ai le même problème. J'ai remarqué que si vous cliquez sur le bouton d'actualisation de l'image CAPTCHA et que vous entrez correctement la nouvelle valeur, il l'accepte. Avez-vous connu le même comportement?
Moose

Réponses:


2

Vous pouvez résoudre en déboguant le processus de vérification du captcha.

Veuillez donc suivre le processus ci-dessous.

Le customer registration form'scaptcha de Magento a été vérifié en classe Mage_Captcha_Model_Observersur la fonction en checkUserCreate()utilisant l' controller_action_predispatch_customer_account_createpostévénement.

Magento vérifie la valeur du captcha en utilisant:

$captchaModel->isCorrect($this->_getCaptchaString(Mage::app()->getRequest(), $formId))

Cela signifie qu'ici, magento envoie la valeur du champ de captcha[user_create] et le champ correspond Mage_Captcha_Model_Zend à la fonctionisCorrent()

Ce champ correspond à la valeur de la session.

Mage::getSingleton('customer/session')->getData($this->_getFormIdKey('word')

valeur

En utilisant cela, vous pouvez suivre où le problème


iam obtient également la même erreur. comment vérifier cette @Amit Bera
User0434

1

Le problème peut faire référence à un nom de champ de saisie incorrect (par exemple, name="captcha_user_create"au lieu de name="captcha[user_create]"). Ou JS captcha init new Captcha(...)est renvoyé deux fois.

Y a-t-il un fichier template/captcha/zend.phtmldans votre thème personnalisé?

Utilisez-vous captcha sur d'autres pages (mot de passe oublié, connexion)? Fonctionne-t-il correctement sur d'autres pages?

Utilisez-vous deux captchas sur une seule page?

Assurez-vous également de ne pas appeler la Mage_Captcha_Model_Zend::isCorrectméthode deux fois, car elle efface la valeur captcha de la session client. Si vous le faites, vous obtiendrez toujours ce message "CAPTCHA incorrect".


Maintenant que vous le mentionnez, il y a deux captchas sur la même page. Nous avons une icône de connexion pop-up et je vois qu'un CAPTCHA y est généré également sur la page d'inscription. Le seul endroit où CAPTCHA est activé est sur la page d'inscription du client.
Moose

1

Affichez votre source et voyez s'il existe un autre formulaire CAPTCHA sur la page.

J'ai eu ce même problème. Le problème pour moi était que l'extension AjaxPro avait un formulaire de connexion caché qui utilisait également CAPTCHA. Étant donné que les deux formulaires avaient le même nom de bloc "captcha", mon bloc était utilisé deux fois et le code était actualisé pour le deuxième formulaire (masqué) lors du chargement de la page, invalidant ainsi celui de mon formulaire. J'ai donc dû renommer le bloc de mon formulaire personnalisé, par exemple, de "captcha" en "captcha.custom". Ensuite, cela a très bien fonctionné.


Je peux confirmer que c'était la racine de mon problème. Moi aussi, j'avais l'extension AjaxPro et il a ajouté une boîte de connexion dans l'en-tête. Quand j'ai survolé, j'ai vu le deuxième CAPTCHA. Je l'ai corrigé en allant dans app / design / frontend / base / default / template / tm / ajaxpro / customer / login.phtml et en commentant ceci: <? Php echo $ this-> getChildHtml ('form.additional.info') ; ?>.
NotJay

0

Une raison à cela, à part celles déjà mentionnées, peut être d'avoir une ressource référencée de manière incorrecte essayant de se charger depuis une requête JS sur la même URL de requête, ce qui pour quelques pages Magento provoque la régénération du captcha en session, sans rafraîchir le frontend image captcha affichée, car la sortie ira à cette demande ajax.

Par exemple, j'avais une lightbox JS essayant de charger une image référençant un chemin relatif, ce qui provoquait une demande supplémentaire à / client / compte / mot de passe oublié avec le chemin de demande suivant: /customer/account/forgotpassword/images/black.png , ce qui provoque le changement du code captcha en session.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.