В этой заметке я расскажу о том, как можно использовать стандартную битриксовую капчу в своих скриптах, модулях или компонентах.
На самом деле, ничего сложного тут нету. Для начала генерим саму капчу:
<?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
{
// Правильное значение
}
?>
Вот и всё.



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