Captcha

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

На самом деле, ничего сложного тут нету. Для начала генерим саму капчу:

<?include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/captcha.php"); 
$cpt = new CCaptcha(); 
$captchaPass = COption::GetOptionString("main", "captcha_password", ""); 
if(strlen($captchaPass) <= 0) 
{ 
	$captchaPass = randString(10); 
	COption::SetOptionString("main", "captcha_password", $captchaPass); 
} 
$cpt->SetCodeCrypt($captchaPass);
?>

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




В скрипте, на который сабмитится форма, просто добавляем проверку

<?
if(!$APPLICATION->CaptchaCheckCode($_POST["captcha_word"], $_POST["captcha_code"]))
{
	// Неправильное значение
}
else
{
	// Правильное значение
}
?>

Вот и всё.

Дата: 29 ноября 2009
Теги: captcha, капча
Добавить в закладки:

Комментарии (8)

Алексей Валеев, 1 Ноября 2010

Спасибо, понадобилось - благодаря статье интегрировал максимально быстро
Спасибо, понадобилось - благодаря статье интегрировал максимально быстро

Николай, 10 Апреля 2011

Спасибо за заметку!
Спасибо за заметку!

Рудольф, 9 Февраля 2012

Спасибо, большое! То что надо!)
Спасибо, большое! То что надо!)

Дмитрий, 20 Февраля 2012

Огромное спасибо!
Для своей формы оч быстро вклеил.
=)
Огромное спасибо! Для своей формы оч быстро вклеил. =)

Владимир, 3 Апреля 2012

Спасибо большое!!! Мне очень помогла инструкция.
Надеюсь, что всем здесь понятно, что вместо %3C?=htmlspecialchars%28$cpt-%3EGetCodeCrypt%28%29%29;?%3E должно быть
<?=htmlspecialchars($cpt->GetCodeCrypt());?>
а то фиг она заработает как надо!!!
Спасибо большое!!! Мне очень помогла инструкция. Надеюсь, что всем здесь понятно, что вместо %3C?=htmlspecialchars%28$cpt-%3EGetCodeCrypt%28%29%29;?%3E должно быть <?=htmlspecialchars($cpt->GetCodeCrypt());?> а то фиг она заработает как надо!!!

Александр, 29 Мая 2012

Спасибо Владимиру!!!! А в официальной документации та же ошибка!!!!!
Спасибо Владимиру!!!! А в официальной документации та же ошибка!!!!!

Антон, 25 Июля 2013

В чем может быть проблема -
в админке при настройке Капча показывается,
а в публичке нет?
в том месте, где должны быть два инпута и и картинка - вообще, ничего нет.
Если вставить свой код CodeCrypt - капча не будет меняться(
В чем может быть проблема - в админке при настройке Капча показывается, а в публичке нет? в том месте, где должны быть два инпута и и картинка - вообще, ничего нет. Если вставить свой код CodeCrypt - капча не будет меняться(

Виктор, 24 Сентября 2013

Реально помогло, спасибо!
Реально помогло, спасибо!


Администратор запретил оставлять комментарии