По умолчанию в Magento Captcha отображается «Неверная капча», даже если введен правильный код


10

На моем magento сайте я включил форму настраиваемой темы Captcha for Create Account, которую я создал с нуля (не «rwd»), но когда я пытаюсь зарегистрировать клиента с указанием правильного кода капчи в поле, даже тогда он показывает «Неправильно». Капча "после обновления и перенаправления на ту же страницу.

Нет предупреждений / ошибок ни на клиенте, ни на сервере.

Кто-нибудь может направить меня?


1
У меня та же проблема. Однако я заметил, что если вы нажмете кнопку обновления на изображении CAPTCHA и правильно введете новое значение, оно примет его. Вы испытали такое же поведение?
Лось

Попробуйте бесплатно magecomp.com/magento-new-recaptcha.html
Гаурав Джайн

Ответы:


2

Вы можете решить, отладить процесс проверки капчи.

Поэтому, пожалуйста, следуйте приведенному ниже процессу.

Magento customer registration form'sкапча была проверена в классе Mage_Captcha_Model_Observerна функцию, checkUserCreate()используя controller_action_predispatch_customer_account_createpostсобытие.

Здесь есть проверка значения капчи при использовании:

$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')

ценность

С помощью этого вы можете отслеживать, где проблема


Я также получаю ту же ошибку. Как проверить это @Amit Bera
User0434

1

Проблема может указывать на неправильное имя поля ввода (например, name="captcha_user_create"вместо name="captcha[user_create]"). Или JS captcha init new Captcha(...)запускается дважды.

Есть ли файл template/captcha/zend.phtmlв вашей пользовательской теме?

Вы используете капчу на других страницах (забыли пароль, логин)? Работает ли он правильно на других страницах?

Вы используете две капчи на одной странице?

Также, пожалуйста, убедитесь, что вы не вызываете Mage_Captcha_Model_Zend::isCorrectметод дважды, так как он стирает значение с картинки. Если вы это сделаете, вы всегда получите сообщение «Неверная капча».


Теперь, когда вы упомянули об этом, на одной странице есть две капчи. У нас есть всплывающая иконка входа в систему, и я вижу, что CAPTCHA генерируется там же, на странице регистрации. Единственное место, где включена CAPTCHA, находится на странице регистрации клиента.
Лось

1

Просмотрите свой источник и посмотрите, есть ли другая форма CAPTCHA на странице.

У меня была такая же проблема. Проблема для меня заключалась в том, что расширение AjaxPro имело скрытую форму входа, которая также использовала CAPTCHA. Поскольку обе формы имели одно и то же имя блока «captcha», мой блок использовался дважды, и код обновлялся для второй (скрытой) формы при загрузке страницы, тем самым аннулируя один из них в моей форме. Поэтому мне пришлось переименовать блок для моей пользовательской формы, например, с «captcha» на «captcha.custom». Тогда это работало отлично.


Я могу подтвердить, что это было корнем моей проблемы. У меня тоже было расширение AjaxPro, и оно добавило всплывающее окно входа в систему в шапке. Когда я завис, я увидел вторую капчу. Я исправил это, перейдя в app / design / frontend / base / default / template / tm / ajaxpro / customer / login.phtml и прокомментировав это: <? Php echo $ this-> getChildHtml ('form.additional.info') ; ?>.
NotJay

0

Одной из причин этого, помимо уже упомянутых, может быть наличие ресурса с неправильной ссылкой, пытающегося загрузить из JS-запроса по тому же URL-адресу запроса, что для нескольких страниц Magento вызывает регенерацию капчи в сеансе без обновления внешнего интерфейса. показанное изображение с картинки, так как вывод пойдет на этот ajax-запрос.

Например, у меня был лайтбокс JS, пытающийся загрузить изображение, ссылающееся на относительный путь, что вызывало дополнительный запрос к / customer / account / Forgotpassword со следующим путем запроса: /customer/account/forgotpassword/images/black.png Это вызывает изменение кода капчи в сеансе.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.