在我的magento网站中,我启用了从头开始构建的自定义主题的“创建帐户”验证码形式的自定义主题(不是“ rwd”),但是当我尝试在该字段中提供正确的验证码代码来注册客户时,即使显示“错误验证码”,然后刷新并重定向到同一页面。
客户端或服务器中没有警告/错误。
谁能指导我?
在我的magento网站中,我启用了从头开始构建的自定义主题的“创建帐户”验证码形式的自定义主题(不是“ rwd”),但是当我尝试在该字段中提供正确的验证码代码来注册客户时,即使显示“错误验证码”,然后刷新并重定向到同一页面。
客户端或服务器中没有警告/错误。
谁能指导我?
Answers:
您可以通过调试验证码检查过程来解决。
因此,请遵循以下过程。
Magento验证customer registration form's
码已在类Mage_Captcha_Model_Observer
中checkUserCreate()
使用controller_action_predispatch_customer_account_createpost
事件进行功能 检查。
magento在使用时检查验证码值:
$captchaModel->isCorrect($this->_getCaptchaString(Mage::app()->getRequest(), $formId))
这意味着这里magento发送的字段的值captcha[user_create]
并且该字段Mage_Captcha_Model_Zend
在功能上匹配isCorrent()
该字段与会话值匹配。
Mage::getSingleton('customer/session')->getData($this->_getFormIdKey('word')
值
通过使用此功能,您可以跟踪问题所在
该问题可能是由于输入字段名称不正确(例如,name="captcha_user_create"
而不是name="captcha[user_create]"
)引起的。或JS验证码init new Captcha(...)
被触发两次。
template/captcha/zend.phtml
您的自定义主题中是否有文件?
您是否在其他页面上使用了验证码(忘记密码,登录)?在其他页面上可以正常使用吗?
您是否在单个页面上使用两个验证码?
另外,请确保您不会Mage_Captcha_Model_Zend::isCorrect
两次调用method,因为它会从客户会话中清除验证码值。如果这样做,您将始终收到该“不正确的验证码”消息。
查看您的来源,查看页面上是否还有另一个验证码表格。
我有同样的问题。对我来说,问题在于AjaxPro扩展具有隐藏的登录表单,该表单也正在使用CAPTCHA。由于两种形式的块名都相同,即“ captcha”,因此我的块被使用了两次,并且页面加载时第二种(隐藏的)形式的代码也被刷新,从而使我的形式中的一种无效。因此,我必须将自定义表单的块重命名,例如,从“验证码”更改为“ captcha.custom”。然后效果很好。