我有两个网站 他们两个都有来自谷歌的reCAPTCHA 2.0 我在两个域上都实现了完全相同的代码(键除外)
要进行故障排除,我已经要求服务器向我显示php-version和扩展名:
Working reCaptcha
Failing reCaptcha
我不知道为什么它在一个域上失败而在另一个域失败。
这两个reCaptchas刚刚创建并且都是2.0版本
两者的基本代码是:
客户端:
<!DOCTYPE html>
<html lang="da-DK">
<head>
<meta charset="UTF-8">
<title>Recaptcha test</title>
<script src='https://www.google.com/recaptcha/api.js?hl=da'></script>
</head>
<body>
<h1>reCAPTCHA</h1>
<form action="responce.php" method="post">
<p>Name: <input type="text" name="name"></p>
<p>Mail: <input type="text" name="email"></p>
<div class="g-recaptcha" data-sitekey="--My-Site-Key--"></div>
<input type="submit" value="test">
</form>
</body>
</html>
服务器端:
$sender_name=stripslashes($_POST["name"]);
$sender_email=stripslashes($_POST["email"]);
$secret="--My-Server-Key--";
$response=$_POST["g-recaptcha-response"];
$verify=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret={$secret}&response={$response}");
$captcha_success=json_decode($verify);
if ($captcha_success->success==false) {
$success="isFalse";
}
else if ($captcha_success->success==true) {
$success="isTrue";
}
echo $success . "<br>";
echo 'php version => '. phpversion() . '<br>';
foreach (get_loaded_extensions() as $i => $ext) {
echo $ext .' => '. phpversion($ext). '<br/>';
}
?>