CaptchaGetCode
CMain::CaptchaGetCode( )
Метод создает объект типа CCaptcha, и возвращает сгенерированный код. Нестатический метод.
Параметры
Без параметров
Примеры использования
$code=$APPLICATION->CaptchaGetCode();
Код затем передается в HTML для создания картинки. Картинка создается с помощью скрипта /bitrix/tools/captcha.php
.
<input type="hidden" name="captcha_sid" value="<?=$code;?>" /> <img src="/bitrix/tools/captcha.php?captcha_sid=<?=$code;?>" alt="CAPTCHA" />
При обращении к скрипту генерируется картинка, а также добавляется запись в базу данных. При обработке формы вызывается метод CaptchaCheckCode:
if (!$APPLICATION->CaptchaCheckCode($_POST["captcha_word"], $_POST["captcha_sid"])) { echo 'wrong captcha code'; }
Чтобы изменить CAPTCHA под ваш сайт можно обращаться к классу CCaptcha напрямую при генерации кода, и картинки. Для этого:
include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/captcha.php"); $cpt = new CCaptcha(); $cpt->SetCodeLength(6); //устанавливаем длину кода на картинке $cpt->SetCode(); $code=$cpt->GetSID();
Изменяем ссылку в HTML:
<input type="hidden" name="captcha_sid" value="<?=$code;?>" /> <img src="[b]/bitrix/tools/captcha2.php[/b]?captcha_sid=<?=$code;?>" alt="CAPTCHA" />
Создаем вышеуказанный captcha2.php и копируем в него содержимое captcha.php.
Изменяем отображение картинки:
$cpt = new CCaptcha(); $cpt->SetImageSize(90,30); //размер картинки на выходе //отключил фон из кружочков, и линии поверх изображения $cpt->SetEllipsesNumber(0); $cpt->SetLinesNumber(0); //установил волну $cpt->SetWaveTransformation(true); //переопределил вывод текста //углы разворота оставил по умолчанию, начальную позицию, дистанции и размер шрифта поменял $cpt->SetTextWriting($cpt->angleFrom, $cpt->angleTo, 5, 10, 16, 18);
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.