我有一个带有recaptcha的页面,它已经运行了两个月没有任何问题。但现在,几天以来,它一直表现得很奇怪。我曾多次尝试过,但验证码根本就不起作用,验证部分。
这是代码
$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;
}
答案 0 :(得分:1)
问题已经解决, 显然这是reCAPTCHA结束时的一个问题。上面提供的代码现在运行得很完美,所有慢速性能问题也已得到解决。
谢谢大家。
PS。如果需要,其他人可以使用此代码。
答案 1 :(得分:0)
我想使用recaptcha库,可在以下位置找到:
https://github.com/google/recaptcha
首先,下载文件,最重要的是recaptchalib.php(你可以点击右边的download zip
按钮下载所有文件)。
然后将其解压缩到您的文件夹并像解压缩的示例一样使用它(example-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>