Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Captcha в форуме

00 голосов
3
Можно ли както использовать captcha в форуме даже для зарегистрированных пользователей?
спросил 30 Апр, 13 от Vladik (160 баллов)

3 Ответы

00 голосов
Зачем?
CAPTCHA (от англ. «Completely Automated Public Turing test to tell Computers and Humans Apart» — полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей) [ссылка]. Если пользователь авторизован, то он уже не нуждается в проверке каптчей.
ответил 30 Апр, 13 от Alarma (580 баллов)
00 голосов
Это все мне знакомо, но на свой вопрос я так и не услышал ответ.
ответил 01 Май, 13 от Vladik (160 баллов)
00 голосов
Цитата
Костя Пойда пишет:
Можно ли както использовать captcha в форуме даже для зарегистрированных пользователей?

Конечно, можно.
1. Кастомизируются компоненты форума;
2. В шаблон компонента forum.post_form добавляется файл result_modifier.php с содержимым:
Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
if ($arParams["FORUM"]["USE_CAPTCHA"]=="Y" && $USER->IsAuthorized())
{
   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);
   $arResult["CAPTCHA_CODE"] = htmlspecialchars($cpt->GetCodeCrypt());
}
?>

3. Создается дубликат ф-ции ForumAddMessage, например ForumAddMessage1, где строка
Код
if (!$USER->IsAuthorized() && $arForum["USE_CAPTCHA"]=="Y")

заменена на:
Код
if ($arForum["USE_CAPTCHA"]=="Y")

4. Создается дубликат ф-ции ForumActions, где ForumAddMessage заменено на ForumAddMessage1;
5. Все упоминания ForumAddMessage, ForumActions заменяются на имена созданных ф-ций.
ответил 01 Июль, 13 от Alarma (580 баллов)

Похожие вопросы

+1 голос
1 ответ
0 голосов
5 ответов
0 голосов
5 ответов
0 голосов
0 ответов
0 голосов
1 ответ