我有一个表格,需要勾选谷歌reCAPTCH。它完全适用于Local,但是当我把它放在开发服务器上时它不起作用。我已将注册密钥替换为Google指定给我的密钥。
它不断输出错误信息。
我的表单中的方法是post。
我不明白为什么它不起作用。有人可以帮帮我吗?
这是我的代码:
$secretKey = "#######";
$captcha = $_POST['g-recaptcha-response'];
$ip = $_SERVER['REMOTE_ADDR'];
$response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip);
$responseKeys = json_decode($response,true);
if(intval($responseKeys["success"]) !== 1) {
$throwErrorMessage = "You are a robot! ";
$throwError = 1;
$isvalid = False;
};
答案 0 :(得分:0)
您使用的是什么版本的ReCAPTCHA? Google网站here上的文档与您的代码完全不同。特别是,您在文档使用recaptcha_check_answer
时使用函数 <?php
require_once('recaptchalib.php');
$privatekey = "your_private_key";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
// What happens when the CAPTCHA was entered incorrectly
die ("The reCAPTCHA wasn't entered correctly. Go back and try it again."."(reCAPTCHA said: " . $resp->error . ")");
} else {
// Your code here to handle a successful verification
}
?>
,如下例所示:
inspect.getcallargs
您可以发布错误消息吗?