четверг, 23 мая 2013 г.

капча для битрикс

генерация
 
if ($arParams["USE_CAPTCHA"] == "Y"){
 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());
}
вывод на странице
 
   <img id="capcha_block" align="left" alt="Введите эти символы в поле ввода" src="/bitrix/tools/captcha.php?captcha_code=<?=$arResult["CAPTCHA_CODE"]?>" /> <input id="captcha_word" type="text" name="captcha_word" /><br />
   <input id="capcha_block_hidden" type="hidden" name="captcha_code" value="Сменить картинку</button>
   <script type="text/javascript">
     $(function(){
      $(function(){
        $("#capcha_block_reload").bind("click",function(){
       $.ajax({
         type: "GET",
         url: "?activ=new_code_get",
         <?if ("new_code_get"==$_GET["activ"]){$GLOBALS['APPLICATION']->RestartBuffer(); echo md5(rand(0, 10000)); die();}?>
         dataType: "text",
         success: function(new_code){
            $('#capcha_block').attr("src","/bitrix/tools/captcha.php?captcha_code="+new_code);
            $('#capcha_block_hidden').val(new_code);
         }
       });
          return false;
          });
      });
     });
   </script>
и проверка
  include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/captcha.php");
  $cpt = new CCaptcha();
  if (strlen($_POST["captcha_code"]) > 0)
  {
   $captchaPass = COption::GetOptionString("main", "captcha_password", "");
   if (!$cpt->CheckCodeCrypt($_POST["captcha_word"], $_POST["captcha_code"], $captchaPass)){
    $arResult["ERROR"]["CAPTCHA"]="Неправильно введена капча";
    $arResult["ERROR"]["CRITICAL_ERROR"]=true;
   }
  }
 }

Комментариев нет:

Отправить комментарий

PHP: The Right Way блог програмышки
Яндекс.Метрика