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?
Respuestas:
Puede resolver mediante depuración el proceso de verificación de captcha.
Entonces, siga el siguiente proceso.
El
customer registration form's
captcha de Magento se ha verificado en claseMage_Captcha_Model_Observer
en funcióncheckUserCreate()
usandocontroller_action_predispatch_customer_account_createpost
evento.Hay magento es comprobar el valor de captcha al usar:
Eso significa que aquí Magento envía el valor del campo de
captcha[user_create]
y el campo coincideMage_Captcha_Model_Zend
en la funciónisCorrent()
Este campo coincide con el valor de la sesión.
valor
Al usar esto, puede rastrear dónde está el problema
fuente
El problema puede referirse a un nombre de campo de entrada incorrecto (por ejemplo, en
name="captcha_user_create"
lugar dename="captcha[user_create]"
). O JS captcha initnew Captcha(...)
se dispara dos veces.¿Hay un archivo
template/captcha/zend.phtml
en 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::isCorrect
mé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".fuente
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.
fuente
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.
fuente