Добавляем recaptcha v2 на сайт, php

13.07.2018

Идем сюда, получаем код и то, что нужно добавить в хэдер шаблона и на место вывода капчи.

 
    /**
    * Проверка валидности капчи
    * 
    * @return boolean
    */
    function recaptchaCheck()
    {
      $bRet = FALSE;
      
      $sCaptchaResponse = isset($_REQUEST['g-recaptcha-response'])?$_REQUEST['g-recaptcha-response']:'';
      if($sCaptchaResponse)
      {
         $aParams = [
          'secret' => 'WWWWWWWWWWWW', // секретный_код_google
          'response' => $sCaptchaResponse,
          'remoteip' => $_SERVER['REMOTE_ADDR']
        ];

        $ch = curl_init('https://www.google.com/recaptcha/api/siteverify');
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $aParams);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        
        $response = curl_exec($ch);
        if($response)
        {
          $oResponse = json_decode($response);
          $bRet = $oResponse->success;
        }
      }

      return $bRet;
    }

Вывод капчи на фронтэнде:

 
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<div class="g-recaptcha" data-sitekey="your_site_key"></div>


Категории: PHP, Сторонние сервисы
Яндекс.Метрика