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。其他人可以根据需要使用此代码。
我有一个带有验证码的页面,运行两个月没有任何问题。但是现在,这几天以来,它的行为一直很奇怪。试了很多次,验证码根本就不行,验证部分。
这是代码
$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。其他人可以根据需要使用此代码。