title: Recaptcha V3 not always returning Score and Result
body: <p>I tried implementing Recaptcha V3 on one of our websites forms recently, but ran in to an error where it wouldn't let some users submit the form as it coming back with the error message "You have been detected as a bot..." in the code below.</p>
  
  <p>I printed all the form submissions to a log file and every time it failed, the $recaptcha->success, $recaptcha->action and $recaptcha->score are always empty.</p>
  
  <p>I found that quite often it would work for a user and send the message.</p>
  
  <p>I tested the form myself and most of the time it worked ok, but I noticed if I kept trying the submit the form several times, it would occassionally fail and return the error.  When it fails the $recaptcha->success, $recaptcha->action and $recaptcha->score are always empty.</p>
  
  <p>I also noticed $_POST['recaptcha_response'] seems to be empty in these instances even though it passes the first isset if statement.</p>
  
  <pre><code>//verify google captcha v3
  if(isset($_POST['recaptcha_response'])){
      //build request
      $recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
      $recaptcha_secret = 'MY_SECRET_KEY';
      $recaptcha_response = $_POST['recaptcha_response'];
  
      //get verify response data
      $ch = curl_init();
  
      curl_setopt_array($ch, [
          CURLOPT_URL =&gt; 'https://www.google.com/recaptcha/api/siteverify',
          CURLOPT_POST =&gt; true,
          CURLOPT_POSTFIELDS =&gt; [
              'secret' =&gt; $recaptcha_secret,
              'response' =&gt; $recaptcha_response
          ],
      CURLOPT_RETURNTRANSFER =&gt; true
      ]);
  
      $output = curl_exec($ch);
      curl_close($ch);
  
      $recaptcha = json_decode($output);
  
  
      // Take action based on the score returned:
      if ($recaptcha-&gt;success &amp;&amp; $recaptcha-&gt;action == 'reportadvert' &amp;&amp; $recaptcha-&gt;score &gt; 0.1){            
          // Verified - success
          $save['captcha'] = "1";
      } else {
          // Not verified - show form error
          $errors['captcha'] = "You have been detected as a bot and blocked from sending this report for security reasons, please try again shortly or Contact us if you are still having issues.";
      }
  } else {
       $errors['captcha'] = "You have been detected as a bot and blocked from sending this report for security reasons, please try again shortly or Contact us if you are still having issues.";
  }  
  </code></pre>
  
  <p>Here is My Form (with some of my other fields removed).  Please note that my form/page is contained in one php script, and I post the form to the same php script :</p>
  
  <pre><code>&lt;form method="post"&gt;
    &lt;input type="hidden" name="recaptcha_response" id="recaptchaResponse"&gt;
  
    &lt;button type="submit" name="SendEm"&gt;Report Advert&lt;/button&gt;
    &lt;input type="hidden" name="submitted" value="TRUE" /&gt;
  &lt;/form&gt;
  </code></pre>
  
  <p>I include the javascrit on the top of the page, I have removed my site key when posting this :</p>
  
  <pre><code>&lt;script src="https://www.google.com/recaptcha/api.js?render=MY_SITE_RECAPTCHA_KEY"&gt;&lt;/script&gt;
  
  grecaptcha.ready(function() {
      grecaptcha.execute('MY_SITE_RECAPTCHA_KEY', {action: 'reportadvert'}).then(function(token) {
      var recaptchaResponse = document.getElementById('recaptchaResponse');
      recaptchaResponse.value = token;
     });
  });
  </code></pre>