Magento Default Captcha mostra “CAPTCHA errato” anche se viene inserito il codice corretto


10

Nel mio sito magento ho abilitato Captcha per creare un account con un modulo di tema personalizzato che ho creato da zero (non "rwd"), ma quando provo a registrare un cliente fornendo il codice captcha corretto nel campo, anche allora mostra "Non corretto Captcha "dopo l'aggiornamento e il reindirizzamento alla stessa pagina.

Nessun avviso / errore nel client o nel server.

Qualcuno può guidarmi?


1
Sto avendo lo stesso problema. Ho notato che se si fa clic sul pulsante di aggiornamento sull'immagine CAPTCHA e si immette correttamente il nuovo valore, lo accetta. Hai avuto lo stesso comportamento?
Moose,

Risposte:


2

È possibile risolvere tramite Debug il processo di controllo captcha.

Quindi, per favore segui la procedura qui sotto.

Magento customer registration form'scaptcha è stato verificato in classe Mage_Captcha_Model_Observersulla funzione checkUserCreate()utilizzando l' controller_action_predispatch_customer_account_createpostevento.

C'è magento è controllare il valore captcha usando:

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

Ciò significa che qui magento invia il valore di field di captcha[user_create] e il campo è match on Mage_Captcha_Model_Zend alla funzioneisCorrent()

Questo campo corrisponde al valore della sessione.

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

valore

Usando questo puoi tracciare dove il problema


iam ottenendo anche lo stesso error.how di controllare questo @Amit Bera
User0434

1

Il problema può fare riferimento a un nome di campo di input errato (ad esempio, name="captcha_user_create"anziché name="captcha[user_create]"). Oppure JS captcha init new Captcha(...)viene attivato due volte.

C'è un file template/captcha/zend.phtmlnel tuo tema personalizzato?

Usi captcha su altre pagine (password dimenticata, login)? Funziona correttamente su altre pagine?

Usi due captcha su una sola pagina?

Inoltre, assicurati di non chiamare il Mage_Captcha_Model_Zend::isCorrectmetodo due volte, poiché cancella il valore captcha dalla sessione del cliente. Se lo fai, otterrai sempre il messaggio "CAPTCHA errato".


Ora che me lo dici, ci sono due captcha sulla singola pagina. Abbiamo un'icona di accesso pop-up e vedo che un CAPTCHA viene generato anche lì sulla pagina di registrazione. L'unico posto in cui CAPTCHA è abilitato è nella pagina di registrazione del cliente.
Moose,

1

Visualizza la tua fonte e vedi se c'è un altro modulo CAPTCHA sulla pagina.

Ho avuto lo stesso problema. Il problema per me era che l'estensione AjaxPro aveva un modulo di accesso nascosto che utilizzava anche CAPTCHA. Poiché entrambi i moduli avevano lo stesso nome di blocco di "captcha", il mio blocco veniva usato due volte e il codice veniva aggiornato per il secondo modulo (nascosto) al caricamento della pagina, invalidando così quello sul mio modulo. Quindi ho dovuto rinominare il blocco per il mio modulo personalizzato, ad esempio, da "captcha" a "captcha.custom". Quindi ha funzionato alla grande.


Posso confermare che questa è stata la radice del mio problema. Anch'io avevo l'estensione AjaxPro e ha aggiunto una casella popover di login nell'intestazione. Quando sono passato sopra ho visto il secondo CAPTCHA. Ho risolto andando su app / design / frontend / base / default / template / tm / ajaxpro / customer / login.phtml e commentandolo: <? Php echo $ this-> getChildHtml ('form.additional.info') ; ?>.
giovedì

0

Un motivo per questo, oltre a quelli già menzionati, può essere avere una risorsa con riferimenti errati che tenta di caricare da una richiesta JS sullo stesso URL di richiesta, che per alcune pagine Magento provoca la rigenerazione del captcha in sessione, senza aggiornare il frontend immagine captcha mostrata, poiché l'output andrà a quella richiesta Ajax.

Ad esempio, stavo avendo una lightbox JS che cercava di caricare un'immagine che faceva riferimento a un percorso relativo, il che causava una richiesta aggiuntiva a / customer / account / forgotpassword con il seguente percorso di richiesta: /customer/account/forgotpassword/images/black.png , ciò causa la modifica del codice captcha nella sessione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.