Другие модули на выбор

Вахтер

Стоимость: руб.
Этот компонент мы сможете использовать только при наличии лицензии. Подходящие редакции:

Получите быструю помощь по покупке, оплате, установке, настройке, продлению и другим вопросам, оставив заявку

Установка модуля из Маркетплейс для любой редакции 1С Битрикс. На сервере – обязательно использование библиотеки GD2.

Настройки для каждого типа защиты разнесены по отдельным вкладкам. На отдельной вкладке редактируются наборы «вахтеров».

Для того, чтобы добавить «вахтера», нужно ввести его название (используется только для человекопонятной идентификации, вы можете назвать его, например «Вахтер для формы обратной связи»). Напротив названия «вахтера» отразится его цифробуквенный код.

Созданный «вахтер» станет доступен на вкладках со всеми вариантами, он появится в поле «Вахтер», следующим за «Основные настройки». Установив для него настройки и сохранив их, вы можете использовать «вахтера» в публичной части сайта.

Например:

в init.php

\Bitrix\Main\EventManager::getInstance()->addEventHandler('main', 'OnPageStart',
array('example', 'setBaxtep')
);

class example {
static function setBaxtep() {
global $my_Baxteps;
if (Bitrix\Main\Loader::includeModule('softmajor.baxtep')) {
// инициализация вахтера с id = цифробуквенный код вахтера в административной части, name - это сессионная переменная, в которой будет храниться значение "вахтера"
$my_Baxteps['baxtep1'] = new \SOFTMAJOR\BAXTEP\Img(array('name'=>trim('baxtep1'),'id'=>trim('f0cd01088a73de74e868c0711e74d8c9')));
if (count($_POST) == 0) {
// генерируется значение вахтера, который сохраняется в $_SESSION['baxtep1']
$my_Baxteps['baxtep1']->generateCode();
}
}
}
}


в шаблоне с формой, для которой устанавливается защита, картинка со значением "вахтера" вставляется следующим образом:
<img src="<?=$my_Baxteps['baxtep1']->getUrl();?>" alt="введите код защиты от роботов">
<input type="text" name="baxtep1" size="30" maxlength="10" value="">

после отправки кода необходимо сравнить значение $_SESSION['baxtep1'] и переменной baxtep1 из формы:
if (
(mb_strlen($_SESSION[$this->arParams["USE_BAXTEP_NAME"]]) > 0)
&&
(trim(mb_strtolower($_POST[$this->arParams["USE_BAXTEP_NAME"]])) == mb_strtolower($_SESSION[$this->arParams["USE_BAXTEP_NAME"]]))
)
{
// отправляем форму
} else {
// ошибка
}

В папке «/example/»
пример использования модуля на сайте:

1) Инициализация «Вахтеров» в init.php

2) Тестовый компонент и шаблон тестового компонента