Main menu

Нужно было мне поставить три раза гугловскую капчу на формы. Делается это через js, в инете есть мануалы

У меня сработал следующий код:

В конце каждой формы ставим блок

<div id="recaptcha1"></div>

<div id="recaptcha2"></div>

<div id="recaptcha3"></div>

И скрипт в конце. Важно, что подключаем именно внизу, когда подключал в head не работало

<script type="text/javascript">
  var onloadCallback = function() {
 };
</script>
<script src="https://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit" async defer></script>
    <script>
      var recaptcha1;
      var recaptcha2;
      var recaptcha3;
      var myCallBack = function() {
        //Render the recaptcha1 on the element with ID "capcha1"
        recaptcha1 = grecaptcha.render('recaptcha1', {
          'sitekey' : '6LftlyEUAAAAAC0qVI0docpBtx_Ly4WKsQEd6oFA', //Replace this with your Site key
          'theme' : 'light'
        });
        
        //Render the recaptcha2 on the element with ID "capcha2"
        recaptcha2 = grecaptcha.render('recaptcha2', {
          'sitekey' : '6LftlyEUAAAAAC0qVI0docpBtx_Ly4WKsQEd6oFA', //Replace this with your Site key
          'theme' : 'dark'
        });
                //Render the recaptcha2 on the element with ID "capcha3"
        recaptcha3 = grecaptcha.render('recaptcha3', {
          'sitekey' : '6LftlyEUAAAAAC0qVI0docpBtx_Ly4WKsQEd6oFA', //Replace this with your Site key
          'theme' : 'dark'
        });
      };
    </script>

Ну и само собой не забываем в php обработчике отправки проверять ответ капчи

<?

require_once 'recaptchalib.php'; //этот файл качаем с гитхаба

$secret = "6LftlyEUAAAAAJjTJUaIerd54FGN49jZsYfuq_Em";
// пустой ответ каптчи
$response = null;
// Проверка вашего секретного ключа
$reCaptcha = new ReCaptcha($secret);
if ($_POST["g-recaptcha-response"]) {
$response = $reCaptcha->verifyResponse(
        $_SERVER["REMOTE_ADDR"],
        $_POST["g-recaptcha-response"]
    );
}
 if ($response != null && $response->success) { //погнали отправлять форму

 } else {echo"fail. error capcha.";} ?>