Отправка сообщения






Добро пожаловать!

Использование капчи в Bitrix

В некоторых случаях, как правило, при использовании html-форм на сайте требуется сделать капчу, делается это для защиты от циклической отправки формы, от спам-ботов, и не только. Вообще сделать капчу несложно, но так как в стандартном функционале битрикса есть встроенный механизм капчи, то это дело упрощается вдвойне. Нам же остается воспользоваться этим функционалом, давайте посмотрим, как можно прикрутить капчу к форме.
Перед тем как размещать поля капчи на форме, нам необходимо инициализировать генерацию кода для проверки.
Генерируем код капчи:

// подключаем файл модуля капчи
include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/captcha.php");

// создаем объект капчи
$cpt = new CCaptcha();

// достаем значение параметра captcha_password из главного модуля
$captchaPass = COption::GetOptionString("main", "captcha_password", "");

// если строка пуста, генерируем случайное значение
If (strlen($captchaPass) <= 0){
	$captchaPass = randString(10);
	COption::SetOptionString("main", "captcha_password", $captchaPass);
}

$cpt->SetCodeCrypt($captchaPass);

Обратите внимание на первую строчку в коде, где подключается файл модуля капчи – captcha.php. Если ранее уже подключался пролог, то подключать данный файл не нужно.
 
Размещаем поля на форме. Поля должны находиться строго после кода указанного выше, т.к. используется переменная с объектом класса CCaptcha, инициализированная ранее.

<input name="captcha_code" value="<?=htmlspecialchars($cpt->GetCodeCrypt());?>" type="hidden">
<img src="/bitrix/tools/captcha.php?captcha_code=<?=htmlspecialchars($cpt->GetCodeCrypt());?>">
<input id="captcha_word" name="captcha_word" type="text">

 
Проверяем капчу. В обработчике формы для проверки правильности ввода значения капчи можно использовать код:

if($APPLICATION->CaptchaCheckCode($_POST["captcha_word"], $_POST["captcha_code"])){
	echo 'Всё верно!';
} else {
	echo 'Неправильно введен код с картинки!';
}

На этом вроде всё. Капча может быть использована в любой части сайта, важным условием является предварительное включение файла модуля. В системе битрикс модули подгружаются автоматически при подключении пролога в исполняемом скрипте. Существует возможность использования модулей битрикса без подключения пролога, практикуется зачастую для обработки ajax-запросов, и не только, где нет необходимости в подгрузке шаблона сайта, и его составляющих.

Добавил: htmaker, 09.11.2014 г.
 
плохослабосойдетхорошоотлично (Еще не оценили)
Загрузка...

Комментарии

  1. Максим пишет:

    В форме не отображается картинка с капчей

  2. Мария пишет:

    Спасибо большое, редко встречается полностью рабочее решение задачи так детально прописанное.
    Установка капчи заняла 30 секунд.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Комментарии

  • Загрузка...

Наверх