Recaptcha v3出现问题。 recaptcha返回null

时间:2019-04-08 09:54:54

标签: recaptcha

我获取的验证码为NULL。 $ _POST ['recaptcha_response']给出一个大的字母数字。我已经遵循了在线教程,但无法使用。我正在使用php5,如果那很重要,但我认为它不应该。

   // if post is set then check database
   if ( $_SERVER["REQUEST_METHOD"] == "POST" &&      isset($_POST['recaptcha_response']) )  {

   // Build POST request:
   $recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
   $recaptcha_secret = 'my_secret_key';
   $recaptcha_response = $_POST['recaptcha_response'];
   //die($recaptcha_response);

   // Make and decode POST request:
   $recaptcha = file_get_contents($recaptcha_url . '?secret=' .         $recaptcha_secret . '&response=' . $recaptcha_response);
   $recaptcha = json_decode($recaptcha);
   //die(var_dump($recaptcha));

   // Take action based on the score returned:
   if ($recaptcha->score >= 0.5) {
       // Verified - send email
   } else {
       // Not verified - show form error
       die('reCAPTCHA error score is '. $recaptcha->score);
   }````


    <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
<script src="https://www.google.com/recaptcha/api.js?render=my_site_key"></script>
<script>
    grecaptcha.ready(function () {
        grecaptcha.execute('my_site_key', { action: 'contact' }).then(function (token) {
            var recaptchaResponse = document.getElementById('recaptchaResponse');
            recaptchaResponse.value = token;
        });
    });
</script>

Help it's not a json_decode problem with php cause i'm on php 5.6 with json. json_last_error() gives me a 'no error'. 

0 个答案:

没有答案