Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!
Подключение 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());?>">
В скрипте, на который сабмитится форма, просто добавляем проверку:
Для начала генерим саму 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 ?>