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, капча
Добавить в закладки:

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

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

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

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

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

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

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

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

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

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

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