Наверх

Captcha

CAPTCHA – фильтр спам-ботов и реальных пользователей сайта, которые оставляют сообщения в формах различных модулей сайта, таких как «Обратная связь», «Комментарии», «Обратная связь», «Форум» и т.д. Капча может быть трех видов, классический «Код на картинке», более сложная вариация «reCAPTCHA», или «Вопрос-Ответ», когда администратор задает вопрос и варианты ответа, а пользователь должен выбрать правильный, чтобы его сообщение было принято на сайте.

Подключение

Подключаемая часть – файл modules/captcha/captcha.inc.php. В нем описан класс Captcha_inc. В модуле к объекту класса можно обратиться через переменную $this->diafan->_captcha. Экземпляр класса создается при первом вызове переменной.

Методы

string get ([string $modules = "modules"], [string $error = ""], [boolean $is_update = false]) – Выводит капчу.

  • string $modules: метка капчи
  • string $error: ошибка ввода кода, если запрос передан не через Ajax
  • boolean $is_update: капча генерируется для обновления

Пример:

// в модели modules/comments/comments.inc.php запрашиваем каптчу
$captcha = $this->diafan->_captcha->get("comments", '');

//выводим защитный код в шаблоне modules/comments/views/comments.view.form.php
echo $captcha;

boolean configmodules (string $module, [integer $site_id = 0]) – Проверяет подключена ли капта в настройках модуля.

  • string $module: названием модуля
  • integer $site_id: страница сайта с подключенным модулем

string|boolean false error ([string $modules = "modules"]) – Проверяет правильность ввода капчи.

  • string $modules: метка капчи

Пример:

//выводим защитный код в шаблоне modules/comments/views/comments.view.form.php
echo $captcha;

//запрашиваем правильно ли введен защитный код при обработке запроса в файле modules/faq/faq.action.php
$error = $this->diafan->_captcha->error('faq');
if(
$error)
{
    
// защитный код введен неправильно
}

Вопрос-Ответ

Список вопросов для капчи

Бэкенд «Вопрос-Ответ» имеет свой административный интерфейс для ввода вопросов. Для добавления вопроса нужно заполнить следующие поля.

Редактирование вопроса для капчи

Основные:

  • Вопрос – Вопрос, на который должен ответить посетитель сайта для того, чтобы пройти проверку. Параметр имеет разные значения для разных языковых версий сайта.
  • Опубликовать на сайте – Если не отмечено, то вопрос не будет участвовать в проверке. Параметр имеет разные значения для разных языковых версий сайта.
  • Не показывать ответы – Если отмечено, то пользователю на сайте будет предложено поле для ввода правильного ответа.
  • Ответы – Возможные варианты ответов с указанием правильного.

Настройки

Настройки

В настройках модуля можно выбрать бэкенд для капчи и вписать настройки для бэкенда.

  • Тип – Выбор метода фильтрации спам-ботов. Возможные значения:
    • Код на картинке,
    • reCAPTCHA,
    • Вопрос-Ответ.
  • Public Key для сервиса reCAPTCHA – Параметр выводится, если в поле «Тип» выбрано «reCAPTCHA».
  • Private Key для сервиса reCAPTCHA – Параметр выводится, если в поле «Тип» выбрано «reCAPTCHA».

База данных

{captcha} – Вопросы для капчи типа Вопрос-ответ

{captcha_answers} – Варианты ответов для капчи типа Вопрос-ответ

Файлы

  1. modules/captcha/admin/captcha.admin.php – редактирование вопросов для капчи;

  2. modules/captcha/admin/captcha.admin.config.php – настройки модуля;

  3. modules/captcha/admin/captcha.admin.inc.php – подключение модуля к административной части других модулей;

  4. modules/captcha/admin/js/captcha.admin.config.js – настройка модуля, JS-сценарий;

  5. modules/captcha/admin/js/captcha.admin.js – редактирование вопросов для капчи, JS-сценарий;

  6. modules/captcha/captcha.get.php – генерирование изображения капчи;

  7. modules/captcha/captcha.inc.php – подключение для работы с капчей;

  8. modules/captcha/captcha.install.php – установка модуля;

  9. modules/captcha/js/captcha.get.js – JS-сценарий стандартной капчи;

  10. modules/captcha/js/captcha.get_qa.js – JS-сценарий капчи «Вопрос-Ответ»;

  11. modules/captcha/js/captcha.get_recaptcha_.js – JS-сценарий для reCAPTCHA;

  12. modules/captcha/views/captcha.view.get.php – шаблон стандартной капчи;

  13. modules/captcha/views/captcha.view.get_form.php – шаблон формы стандартной капчи;

  14. modules/captcha/views/captcha.view.get_qa.php – шаблон капчи «Вопрос-Ответ»;

  15. modules/captcha/views/captcha.view.get_qa_form.php – шаблон формы для капчи «Вопрос-Ответ»;

  16. modules/captcha/views/captcha.view.get_recaptcha.php – шаблон reCAPTCHA.

Ваши комментарии и дополнения

А что происходит и как работает captcha когда нажата кнопка обновить картинку с кодом?
Не отображается ReCaptcha в popup окнах и табах! Может кто сталкивался с данной проблемой?
Проблема была связана с асинхронной подгрузкой скриптов в файле custom/themes/functions/show_js.php

Убрал асинхронную загрузку и все заработало. http://prntscr.com/g0fxzv
Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.