在 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 变量。那应该是一个符号 (&)。

这可能不是唯一的问题,但这是我首先看到的问题。