Подключение CAPTCHA

После настройки основных параметров необходимо подключить CAPTCHA. Существует несколько вариантов подключения:
- Подключение CAPTCHA в настройках модуля
- Подключение CAPTCHA в параметрах компонента
- Настройка показа CAPTCHA в формах
- Подключение CAPTCHA в своих скриптах, модулях или компонентах
Подключение CAPTCHA в настройках модуля |
В ряде модулей (Главный, Блоги, Wiki и других) CAPTCHA подключается прямо в настройках модуля. Например, опция Использовать CAPTCHA при регистрации в настройках Главного модуля позволяет включить использование CAPTCHA при регистрации новых пользователей:
Подключение CAPTCHA в параметрах компонента |
CAPTCHA возможно подключить и для отдельных компонентов Обычно настройки CAPTCHA в параметрах компонента используются для неавторизированных пользователей. , например, Добавление элементов инфоблока (комплексный компонент), Каталог (комплексный компонент) и других. Рассмотрим пример использования CAPTCHA в компоненте Форма обратной связи, где опция Использовать защиту от автоматических сообщений (CAPTCHA) для неавторизованных пользователей позволяет включить CAPTCHA только для данного компонента:
Настройка показа CAPTCHA в формах |
Использование CAPTCHA в формах создания/редактирования ограничивается в политике безопасности группы пользователей. Опция Количество попыток ввода пароля до показа CAPTCHA позволяет задать количество неправильных попыток ввода пароля, после которых будет в форме авторизации выводиться CAPTCHA для пользователя из соответствующей группы:
Это происходит потому, что при последовательном неправильном наборе пары логин/пароль и при малом значении в поле Количество попыток ввода пароля до показа CAPTCHA) система ждёт ввода верного кода CAPTCHA. А пользователь этого не делает, так как шаблон не предусматривает вывод CAPTCHA.
Подключение CAPTCHA в своих скриптах, модулях или компонентах |
Для начала создайте саму CAPTCHA :
01 <?include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/captcha.php"); 02 $cpt = new CCaptcha(); 03 $captchaPass = COption::GetOptionString("main", "captcha_password", ""); 04 if(strlen($captchaPass) <= 0) 05 { 06 $captchaPass = randString(10); 07 COption::SetOptionString("main", "captcha_password", $captchaPass); 08 } 09 $cpt->SetCodeCrypt($captchaPass); 10 ?>
После этого выводите в нужном месте формы три элемента: скрытое поле со сгенерированным кодом, поле для ввода капчи пользователем и саму картинку.
<input name="captcha_code" value="<?=htmlspecialchars($cpt->GetCodeCrypt());?>" type="hidden"> <input id="captcha_word" name="captcha_word" type="text"> <img src="/bitrix/tools/captcha.php?captcha_code=<?=htmlspecialchars($cpt->GetCodeCrypt());?>">
В скрипте, на который сабмитится форма, добавьте проверку:
01 <? 02 if(!$APPLICATION->CaptchaCheckCode($_POST["captcha_word"], $_POST["captcha_code"])) 03 { 04 // Неправильное значение 05 } 06 else 07 { 08 // Правильное значение 09 } 10 ?>
Документация по теме: |
и Ваше мнение важно для нас