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?
magento-1.9
customer
customer-account
customer-session
captcha
haute définition
la source
la source
Réponses:
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's
captcha de Magento a été vérifié en classeMage_Captcha_Model_Observer
sur la fonction encheckUserCreate()
utilisant l'controller_action_predispatch_customer_account_createpost
événement.Magento vérifie la valeur du captcha en utilisant:
Cela signifie qu'ici, magento envoie la valeur du champ de
captcha[user_create]
et le champ correspondMage_Captcha_Model_Zend
à la fonctionisCorrent()
Ce champ correspond à la valeur de la session.
valeur
En utilisant cela, vous pouvez suivre où le problème
la source
Le problème peut faire référence à un nom de champ de saisie incorrect (par exemple,
name="captcha_user_create"
au lieu dename="captcha[user_create]"
). Ou JS captcha initnew Captcha(...)
est renvoyé deux fois.Y a-t-il un fichier
template/captcha/zend.phtml
dans 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::isCorrect
méthode deux fois, car elle efface la valeur captcha de la session client. Si vous le faites, vous obtiendrez toujours ce message "CAPTCHA incorrect".la source
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é.
la source
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.
la source