我们有一个使用reCaptcha v2的contact.html表单,其后端处理在一个php文件中。
我已采取足够的步骤来理解,当我们将验证发送到Google的api时,响应返回为空。下面是给我这个证明的代码。
$url = 'https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST["g-recaptcha-response"].'&remoteip='.$_SERVER['REMOTE_ADDR'];
$verify = file_get_contents($url);
echo $url;
if (empty($verify)) echo 'Failed to fetch data';`
但是,当我在浏览器中手动输入url时,会返回一个表示成功的JSON响应。
那么,有什么区别?如果来自Chrome浏览器的简单get请求给我带来麻烦,为什么file_get_contents返回空?
我已经知道file_get_contents是同步的,所以我不希望这只是等待响应时出现的noob错误。
任何帮助将不胜感激,这是我第一次使用PHP。这并不难,但我可能缺少一些重要的东西。
答案 0 :(得分:0)
对不起,每个人都无法理解为什么,但是问题出在用于访问网站验证的方法中。
使用curl语法,我终于可以使用它了。