El Captcha predeterminado de Magento muestra "CAPTCHA incorrecto" incluso si se ingresa el código correcto


10

En mi sitio de magento, he habilitado Captcha para crear una forma de tema personalizado que construí desde cero (no "rwd"), pero cuando intento registrar a un cliente proporcionando el código captcha correcto en el campo, incluso entonces muestra "Incorrecto Captcha "después de actualizar y redirigir a la misma página.

No hay advertencias / errores en el cliente o el servidor.

¿Alguien puede guiarme?


1
Estoy teniendo el mismo problema Sin embargo, noté que si hace clic en el botón Actualizar en la imagen CAPTCHA e ingresa el nuevo valor correctamente, lo acepta. ¿Has experimentado el mismo comportamiento?
Moose

Respuestas:


2

Puede resolver mediante depuración el proceso de verificación de captcha.

Entonces, siga el siguiente proceso.

El customer registration form'scaptcha de Magento se ha verificado en clase Mage_Captcha_Model_Observeren función checkUserCreate()usando controller_action_predispatch_customer_account_createpostevento.

Hay magento es comprobar el valor de captcha al usar:

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

Eso significa que aquí Magento envía el valor del campo de captcha[user_create] y el campo coincide Mage_Captcha_Model_Zend en la funciónisCorrent()

Este campo coincide con el valor de la sesión.

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

valor

Al usar esto, puede rastrear dónde está el problema


iam también recibe el mismo error. cómo verificar esto @Amit Bera
User0434

1

El problema puede referirse a un nombre de campo de entrada incorrecto (por ejemplo, en name="captcha_user_create"lugar de name="captcha[user_create]"). O JS captcha init new Captcha(...)se dispara dos veces.

¿Hay un archivo template/captcha/zend.phtmlen su tema personalizado?

¿Utiliza captcha en otras páginas (contraseña olvidada, inicio de sesión)? ¿Funciona correctamente en otras páginas?

¿Utiliza dos captchas en una sola página?

Además, asegúrese de no llamar al Mage_Captcha_Model_Zend::isCorrectmétodo dos veces, ya que elimina el valor de captcha de la sesión del cliente. Si lo hace, siempre recibirá el mensaje "CAPTCHA incorrecto".


Ahora que lo menciona, hay dos captchas en una sola página. Tenemos un icono de inicio de sesión emergente y veo que se está generando un CAPTCHA allí también en la página de registro. El único lugar donde CAPTCHA está habilitado es en la página de registro del cliente.
Moose

1

Vea su fuente y vea si hay otro formulario CAPTCHA en la página.

Tuve el mismo problema. El problema para mí fue que la extensión AjaxPro tenía un formulario de inicio de sesión oculto que también usaba CAPTCHA. Como ambos formularios tenían el mismo nombre de bloque "captcha", mi bloque se estaba usando dos veces y el código se estaba actualizando para el segundo formulario (oculto) en la carga de la página, invalidando así el que estaba en mi formulario. Así que tuve que cambiar el nombre del bloque para mi formulario personalizado, por ejemplo, de "captcha" a "captcha.custom". Entonces funcionó muy bien.


Puedo confirmar que esta fue la raíz de mi problema. Yo también tenía la extensión AjaxPro y agregó un cuadro emergente de inicio de sesión en el encabezado. Cuando me acerqué, vi el segundo CAPTCHA. Lo arreglé yendo a app / design / frontend / base / default / template / tm / ajaxpro / customer / login.phtml y comentando esto: <? Php echo $ this-> getChildHtml ('form.additional.info') ; ?>.
NoJay

0

Una razón para esto, aparte de las ya mencionadas, puede ser tener un recurso incorrectamente referenciado que intenta cargar desde una solicitud JS en la misma URL de solicitud, lo que para pocas páginas de Magento provoca la regeneración del captcha en la sesión, sin actualizar la interfaz. se muestra la imagen captcha, ya que la salida irá a esa solicitud ajax.

Por ejemplo, estaba teniendo una caja de luz JS tratando de cargar una imagen que hace referencia a una ruta relativa, lo que estaba causando una solicitud adicional a / customer / account / forgetpassword con la siguiente ruta de solicitud: /customer/account/forgotpassword/images/black.png , esto provoca que el código captcha cambie en la sesión.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.