reCAPTCHA — текстовая область g-recaptcha-ответ не работает

#javascript #php #recaptcha

#javascript #php #recaptcha

Вопрос:

У меня следующая проблема со страницей, которая работала с reCAPTCHA v2 и больше не работает

По какой-то причине $ _POST [‘g-recaptcha-response’] приходит пустым в файл, который проверяет данные после отправки в форме

В пользовательской панели www.google.com/recaptcha / веб-страница добавлена правильно, и ключи проверены на правильность. Дело в том, что когда вы проверяете проверку «Я не робот», текстовая область g-recaptcha-response должна обновляться кодом, который поступает из Google, но этот код остается пустым.

     <textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" 
style="width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px; 
resize: none; display: none;"></textarea>
 

И я думаю, это причина, по которой он приходит пустым

код моей формы

             <form action="votaciones.php" method="post"  class="form" role="form" id="login">
                  <div class="form-group">
                      <label for="user" class="form-label"><?= _("Usuario") ?> : </label>

                          <input type="text" id="user"   name="user" class="form-control" placeholder="<?= _("Usuario") ?> " required autofocus/>

                  </div>
                  <div class="form-group">
                      <label for="user" class="form-label"><?= _("Password") ?> : </label>

                          <input type="password" id="pass"  name="pass" class="form-control" placeholder="<?= _("Password") ?> " required />

                  </div>

               
                      <div class="form-group">
                              <div class="g-recaptcha" data-sitekey="<?php echo "$reCAPTCHA_site_key"; ?>"></div>
                      </div>

                  

                  <div class="form-group">
                      <div class="text-center">

                          <button class="btn btn-start-order" type="submit"><?= _("Acceder") ?> </button>
                      </div>
                  </div>

              </form>   

<script src='https://www.google.com/recaptcha/api.js'  ></script>

 

и один из PHP, на который поступают данные,

 if (isset($_POST['g-recaptcha-response']) amp;amp; !empty($_POST['g-recaptcha-response'])) {


    // Google reCAPTCHA API secret key
    $secretKey = $reCAPTCHA_secret_key;

    // Verify the reCAPTCHA response
    $verifyResponse = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."amp;response=".$_POST['g-recaptcha-response']."amp;remoteip=".$_SERVER['REMOTE_ADDR']);

    // Decode json data
    $responseKeys = json_decode($verifyResponse, true);

    // should return JSON with success as true
    if ($responseKeys["success"]) {

        //Captcha correcto
        $validoCaptcha = true;
    } else {
        // eres un robot, asi que terminamos
        $validoCaptcha = false;
         Header("Location: $url_vot/index.php?error_login=10");
         exit;
    }
  }else{
    echo "no llego" .$_POST['g-recaptcha-response'];
    
  }
} 

 

Очевидно, что он выводит «no llego» и не отображает сообщение, потому что оно пустое

Я рассмотрел другие подобные вопросы и попробовал решения, но они не решают проблему для меня

Для макета я использую bootstrap, хотя я не думаю, что это влияет

Кто-нибудь может мне помочь? пожалуйста, я застрял на несколько дней, и я не понимаю, почему он не обновляет эту текстовую область

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

1. Вы превысили бесплатную квоту recapcha в месяц? Просто хочу дважды подтвердить

2. Плата за месяц в reCAPTCHA не взимается