【发布时间】:2019-03-03 17:35:31
【问题描述】:
我们有一个使用 reCaptcha v2 的 contact.html 表单,它的后端处理在一个 php 文件中。
我已经采取了足够的措施来了解当我们将验证发送到谷歌的 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 是同步的,所以我不认为这只是等待响应时出现的菜鸟错误。
任何帮助将不胜感激,这是我第一次使用 PHP。这并不难,但我可能遗漏了一些重要的东西。
【问题讨论】:
-
您在哪里找到了这种recaptcha 验证方法? developers.google.com/recaptcha/old/docs/php
-
这是以前的编码员放在那里的。我使用了他的一些代码来搜索它的教程,所以我认为这就是它的来源。请记住,这是 reCaptcha v2。您的链接是旧文档。
-
新文档的链接也在那里。为什么不通过参考官方文档来做正确的事情呢?
-
codeforgeek.com/2014/12/google-recaptcha-tutorial 是我尝试使用的推荐方法的链接之一。
-
这种态度真的没必要。我寻求帮助。如果我是具有 PHP 工作知识、站点目的、页面以及每段代码的工作原理的原始程序员,我可能会正确地从头开始。然而我们在这里。请尝试对寻求帮助的人表现出一点优雅。