ReCAPTCHA 总是不正确

ReCAPTCHA always incorrect

我有一个带有验证码的页面,运行两个月没有任何问题。但是现在,这几天以来,它的行为一直很奇怪。试了很多次,验证码根本就不行,验证部分。

这是代码

$captcharesponse = test_input($_POST["g-recaptcha-response"]);
$status = captcha($captcharesponse);
...
function captcha($t){
    $captcharesponse = $t;
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_URL, 'https://www.google.com/recaptcha/api/siteverify');
    curl_setopt($curl, CURLOPT_POSTFIELDS, 'secret=7...PRIVATE_KEY...S&response=' . $captcharesponse);

    $result = json_decode(curl_exec($curl), true);
    curl_close($curl);

    if($result['success'] == false){
        error_log(date("Y-M-d, D h:i:s A") . " : Result = " . $result['success'] . ", and error = " . $result['error-codes']);
    }
    return $result['success'];      
}

无论如何,即使我什至没有输入验证码,页面仍然花费太长时间,因此没有任何效果。请注意,如果验证码错误,其他内容会被简单地跳过,因此不可能是其他内容导致延迟。

提前致谢

PS。我没有使用任何类型或库或任何东西,它确实可以毫无问题地工作一段时间。

'test_input()'代码:

function test_input($data){
       $data = trim($data);
       $data = stripslashes($data);
       $data = htmlspecialchars($data);
       return $data;
}

我会说使用 recaptcha 库,可从以下网址获得:

https://github.com/google/recaptcha

首先,下载文件,最重要的是recaptchalib.php(您可以点击右边的download zip按钮下载所有文件)。

然后将其解压缩到您的文件夹并像解压缩的示例一样使用它(示例-recaptcha.php):

<?php
require_once "recaptchalib.php";

// Register API keys at https://www.google.com/recaptcha/admin
$siteKey = "YOURSITEKEY";
$secret = "YOURSECRET";
$lang = "en";
$resp = null; // The response from reCAPTCHA
$error = null; // The error code from reCAPTCHA, if any
$reCaptcha = new ReCaptcha($secret);

if ($_POST["g-recaptcha-response"]) { // Was there a reCAPTCHA response?
    $resp = $reCaptcha->verifyResponse(
        $_SERVER["REMOTE_ADDR"],
        $_POST["g-recaptcha-response"]
    );
}
?>
<html>
  <head><title>reCAPTCHA Example</title></head>
  <body>
<?php
if ($resp != null && $resp->success) {
    echo "You got it!";
}
?>
    <form action="" method="post">
      <div class="g-recaptcha" data-sitekey="<?php echo $siteKey;?>"></div>
      <script type="text/javascript"
          src="https://www.google.com/recaptcha/api.js?hl=<?php echo $lang;?>">
      </script>
      <br/>
      <input type="submit" value="test recaptcha" />
    </form>
  </body>
</html>

问题已解决, 显然这是 reCAPTCHA 端的问题。上面提供的代码现在可以完美运行,所有性能缓慢的问题也已解决。

谢谢大家

PS。其他人可以根据需要使用此代码。