No meu site magento, ativei o captcha para criar uma conta com o tema personalizado que criei do zero (não "rwd"), mas quando tento registrar um cliente fornecendo o código captcha correto no campo, mesmo assim ele mostra "Incorreto Captcha "após atualizar e redirecionar para a mesma página.
Não há avisos / erros no cliente ou no servidor.
Alguém pode me guiar?
Respostas:
Você pode resolver depurando o processo de verificação captcha.
Então, siga o processo abaixo.
O
customer registration form's
captcha do Magento foi verificado na classeMage_Captcha_Model_Observer
na funçãocheckUserCreate()
usandocontroller_action_predispatch_customer_account_createpost
event.Há magento é verificar o valor captcha usando:
Isso significa que aqui o magento envia o valor do campo de
captcha[user_create]
e o campo é correspondenteMage_Captcha_Model_Zend
na funçãoisCorrent()
Este campo corresponde ao valor da sessão.
valor
Ao usar isso, você pode acompanhar onde o problema
fonte
O problema pode se referir ao nome do campo de entrada incorreto (por exemplo, em
name="captcha_user_create"
vez dename="captcha[user_create]"
). Ou o JS captcha initnew Captcha(...)
é acionado duas vezes.Existe arquivo
template/captcha/zend.phtml
no seu tema personalizado?Você usa captcha em outras páginas (esqueceu sua senha, login)? Funciona corretamente em outras páginas?
Você usa dois captchas em uma única página?
Além disso, certifique-se de não chamar o
Mage_Captcha_Model_Zend::isCorrect
método duas vezes, pois ele apaga o valor captcha da sessão do cliente. Se você fizer isso, sempre receberá a mensagem "CAPTCHA incorreta".fonte
Visualize sua fonte e veja se há outro formulário CAPTCHA na página.
Eu tive esse mesmo problema. O problema para mim foi que a extensão AjaxPro tinha um formulário de logon oculto que também usava CAPTCHA. Como os dois formulários tinham o mesmo nome de bloco "captcha", meu bloco estava sendo usado duas vezes e o código estava sendo atualizado para o segundo formulário (oculto) no carregamento da página, invalidando o que estava no meu formulário. Então, tive que renomear o bloco para o meu formulário personalizado, por exemplo, de "captcha" para "captcha.custom". Então funcionou muito bem.
fonte
Um motivo para isso, além dos já mencionados, pode ser o recurso de referência incorreta ao tentar carregar de uma solicitação JS no mesmo URL de solicitação, o que para poucas páginas Magento causa a regeneração do captcha na sessão, sem atualizar o frontend imagem captcha mostrada, pois a saída irá para essa solicitação ajax.
Por exemplo, eu estava com uma caixa de luz JS tentando carregar uma imagem referenciando um caminho relativo, o que estava causando uma solicitação adicional para / customer / account / forgotpassword com o seguinte caminho de solicitação: /customer/account/forgotpassword/images/black.png , fazendo com que o código captcha seja alterado na sessão.
fonte