在 HTML 联系表中设置 reCAPTCHA
Setting up reCAPTCHA in HTML Contact Form
我的网站上有一个联系表,其中包含一个 reCAPTCHA。客户端正在工作;但是,服务器端有问题。 Google reCAPTCHA 网站的服务器端集成页面提供了一个 table 密钥、响应和 remoteip。我已将它们包含在我的代码中,但我不知道要包含什么作为响应,因为 table 说:
response: Required. The user response token provided by the reCAPTCHA
client-side integration on your site.
这是我的 PHP 代码:
$secretKey="";
$responseKey=$_POST['g-recaptcha-response'];
$UserIP = $_SERVER['REMOTE_ADDR'];
$url="...siteverify?secret=$secretKey$response=$responseKey&remoteip=$UserIP";
$response = file_get_contents($url);
$response = json_decode($response);
if($response->success){
do something
}
else{
Display error message
}
目前,这不起作用,代码正在执行 if 的 else 部分,即使用户已验证。我不确定 $response 的价值,所以我猜这就是问题所在。我该如何解决这个问题?
是因为 $response 吗?如果是这样,我应该在这里给 $response 什么价值:
$responseKey=$_POST['g-recaptcha'];
我想你只是打错了字。您的 URL 字符串中的响应前有一个“$”,因此它被解释为目前未定义的 PHP 变量。那应该是一个符号 (&)。
这可能不是唯一的问题,但这是我首先看到的问题。
我的网站上有一个联系表,其中包含一个 reCAPTCHA。客户端正在工作;但是,服务器端有问题。 Google reCAPTCHA 网站的服务器端集成页面提供了一个 table 密钥、响应和 remoteip。我已将它们包含在我的代码中,但我不知道要包含什么作为响应,因为 table 说:
response: Required. The user response token provided by the reCAPTCHA client-side integration on your site.
这是我的 PHP 代码:
$secretKey="";
$responseKey=$_POST['g-recaptcha-response'];
$UserIP = $_SERVER['REMOTE_ADDR'];
$url="...siteverify?secret=$secretKey$response=$responseKey&remoteip=$UserIP";
$response = file_get_contents($url);
$response = json_decode($response);
if($response->success){
do something
}
else{
Display error message
}
目前,这不起作用,代码正在执行 if 的 else 部分,即使用户已验证。我不确定 $response 的价值,所以我猜这就是问题所在。我该如何解决这个问题? 是因为 $response 吗?如果是这样,我应该在这里给 $response 什么价值:
$responseKey=$_POST['g-recaptcha'];
我想你只是打错了字。您的 URL 字符串中的响应前有一个“$”,因此它被解释为目前未定义的 PHP 变量。那应该是一个符号 (&)。
这可能不是唯一的问题,但这是我首先看到的问题。