Автор Тема: Проблема с капчей  (Прочитано 97 раз)

05 Апрель 2018, 02:00:00
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день.
В магазине на Престашоп не работает регистрация: сообщает, что неверно заполнена капча - хотя заполняют правильно. Форма - всплывающая (с modal'ом) и на аяксе. Не могу найти место, где создаётся файл, обрабатывающий аякс-запрос: форма (action) указывает на страницу /authentication , но на той странице в браузере пусто - только шапка и подвал; по логике и по аналогии с другой темой там должно выводиться содержимое authentication.tpl , но не выводится. Сам authentication.tpl не содержит ничего, что могло бы обрабатывать аяксовый запрос.

Собственно, вопрос: как мне искать место, где происходят все эти чудеса?
Сайт на версии 1.5.3.1, модуль капчи - некий mmg_captcha.
Спасибо.
05 Апрель 2018, 09:55:42
Ответ #1
  • Новичок
  • *
  • Сообщений: 37
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день.
В магазине на Престашоп не работает регистрация: сообщает, что неверно заполнена капча - хотя заполняют правильно. Форма - всплывающая (с modal'ом) и на аяксе. Не могу найти место, где создаётся файл, обрабатывающий аякс-запрос: форма (action) указывает на страницу /authentication , но на той странице в браузере пусто - только шапка и подвал; по логике и по аналогии с другой темой там должно выводиться содержимое authentication.tpl , но не выводится. Сам authentication.tpl не содержит ничего, что могло бы обрабатывать аяксовый запрос.

Собственно, вопрос: как мне искать место, где происходят все эти чудеса?
Сайт на версии 1.5.3.1, модуль капчи - некий mmg_captcha.
Спасибо.

Включайте показ ошибок, и уже текст ошибки сюда, тогда будет понятнее с чем разбираться.
05 Апрель 2018, 10:03:17
Ответ #2
  • Ветеран
  • *****
  • Сообщений: 15144
  • Репутация: +14589/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Проверка в контроллере /controllers/front/AuthController.php или в классе модуля.
05 Апрель 2018, 11:27:57
Ответ #3
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Включайте показ ошибок, и уже текст ошибки сюда, тогда будет понятнее с чем разбираться.
Показ ошибок включён. Сообщений о php-ошибках не вижу. Текст "Введен не верный код с картинки" приходит в ответе на аякс-запрос.

Проверка в контроллере /controllers/front/AuthController.php или в классе модуля.
В первом не нашлось ничего похожего. А модуль я пробовала отключать совсем, тогда картинка капчи не выводится, а аякс-проверка всё равно сообщает, что код заполнен неправильно.

Я думаю, проще будет дать ссылку на то, что есть: https://greenkraft.ru/ - ссылка на регистрацию в правом верхнем углу. Я уже вывела в консоль и отправляемые данные, и ответ - что, однако, не приблизило меня к решению.
05 Апрель 2018, 11:35:02
Ответ #4
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22573
  • Репутация: +17130/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Капчи нет в prestashop. Она добавляется только модулем и модуль переопределяет базовый контроллер AuthController.php.
Проблему нужно искать в модуле капчи. Отключать модули, которые переопределяют контроллеры нет смысла. Так как сами контроллеры остаются.
Такой модуль нужно удалять, потом проверять папку override, так как файлы могут не удалится. Вам нужно найти подключение и проверку капчи в php и tpl файлах и удалить этот код.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
05 Апрель 2018, 11:43:08
Ответ #5
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вам нужно найти подключение и проверку капчи в php и tpl файлах и удалить этот код.
Да вот я как раз это и пытаюсь сделать! Всё обыскала - даже поиском по файлам. Либо какие-то файлы не охватила, либо код выглядит так, как я не могу представить - ключевые слова не те.
05 Апрель 2018, 11:52:08
Ответ #6
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Уже есть за что сказать спасибо: проверка всей этой радости находится тут - /override/controllers/front/AuthController.php - и выглядит так:

include_once(_PS_MODULE_DIR_.'mmg_captcha/controllers/front/captcha.php');
    if(!mmg_captchaCaptchaModuleFrontController::checkCaptchaStatic())
      $this->errors[] = Tools::displayError('Invalid captcha');

Правда, я пока не знаю, что мне с этим делать. Но хотя бы видно, как можно избавиться от капчи.
05 Апрель 2018, 12:05:40
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 15144
  • Репутация: +14589/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Если вам капча не нужна, удалите модуль mmg_captcha.
05 Апрель 2018, 12:10:28
Ответ #8
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Не то чтобы не нужна, но лучше без капчи, чем с глючной капчей, не дающей сделать заказ. Если удастся её исправить - оставим, если нет - убьём.

И, кстати, как я уже говорила - промежуточная проблема была в том, что модуль я удаляла, а проверка на капчу не пропадала. (Это я уже второй раз разбиваю лоб об override.)
05 Апрель 2018, 12:14:55
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 15144
  • Репутация: +14589/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Удаляете модуль.
Удалете файл /override/controllers/front/AuthController.php
Удаляете файл /cache/class_index.php
В шаблоне tpl, который отвечает за форму, удаляете код вывода капчи.
Отключаете кеширование и включаете перекомпиляцию шаблонов.
Вот так удаляют такие модули.
05 Апрель 2018, 12:26:05
Ответ #10
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Да, спасибо; я один раз такой модуль уже удаляла, но до автоматизма навык пока не довела. На третий раз, думаю, напоминания не понадобятся.

И всё-таки хочется разобраться с этой капчей до конца; удалить мы, конечно, всегда успеем, но почему ж она не работает?.. Как будто пользователю отдаётся одна картинка, а на проверку - другая.
05 Апрель 2018, 14:38:38
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 1252
  • Репутация: +16/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Используйте методы prestashop p($variable) и d($variable) для того, чтобы проверить получение значения капчи из формы.
06 Апрель 2018, 11:28:07
Ответ #12
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Насчёт методов - не подкинете ссылку на мануал? Через гугль получается очень долго и мучительно, и к тому же всё время не то.
06 Апрель 2018, 11:30:03
Ответ #13