Magento Default Captcha mostra "CAPTCHA incorreto", mesmo que o código correto seja inserido


10

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?


1
Estou tendo o mesmo problema. Notei que, se você clicar no botão de atualização na imagem CAPTCHA e inserir o novo valor corretamente, ele o aceitará. Você já experimentou o mesmo comportamento?
Moose

Respostas:


2

Você pode resolver depurando o processo de verificação captcha.

Então, siga o processo abaixo.

O customer registration form'scaptcha do Magento foi verificado na classe Mage_Captcha_Model_Observerna função checkUserCreate()usando controller_action_predispatch_customer_account_createpostevent.

Há magento é verificar o valor captcha usando:

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

Isso significa que aqui o magento envia o valor do campo de captcha[user_create] e o campo é correspondente Mage_Captcha_Model_Zend na funçãoisCorrent()

Este campo corresponde ao valor da sessão.

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

valor

Ao usar isso, você pode acompanhar onde o problema


iam também ficando mesmo error.how para verificar isso Bera @Amit
User0434

1

O problema pode se referir ao nome do campo de entrada incorreto (por exemplo, em name="captcha_user_create"vez de name="captcha[user_create]"). Ou o JS captcha init new Captcha(...)é acionado duas vezes.

Existe arquivo template/captcha/zend.phtmlno 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::isCorrectmétodo duas vezes, pois ele apaga o valor captcha da sessão do cliente. Se você fizer isso, sempre receberá a mensagem "CAPTCHA incorreta".


Agora que você mencionou, existem dois captchas na única página. Temos um ícone de login pop-up e vejo que um CAPTCHA também está sendo gerado lá na página de registro. O único local em que o CAPTCHA está ativado é na página de registro do cliente.
Moose

1

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.


Posso confirmar que essa foi a raiz do meu problema. Eu também tinha a extensão AjaxPro e ela adicionava uma caixa popover de login no cabeçalho. Quando passei o mouse, vi o segundo CAPTCHA. Corrigi-o acessando app / design / frontend / base / default / template / tm / ajaxpro / customer / login.phtml e comentando isso: <? Php echo $ this-> getChildHtml ('form.additional.info') ; ?>.
precisa saber é

0

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.