【问题标题】:PHP and Google's reCaptcha v2 - empty response every timePHP 和 Google 的 reCaptcha v2 - 每次都是空响应
【发布时间】: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 工作知识、站点目的、页面以及每段代码的工作原理的原始程序员,我可能会正确地从头开始。然而我们在这里。请尝试对寻求帮助的人表现出一点优雅。

标签: php recaptcha


【解决方案1】:

对不起大家,我不明白为什么,但问题是用于访问站点验证的方法。

使用 curl 语法,我终于搞定了。

【讨论】:

  • 我很高兴你明白了。
  • 那么,你能在这里分享脚本吗?这将对其他人有益。
  • 什么是 curl 语法?请我在同样的问题上苦苦挣扎
  • Curl 在这里描述:stackoverflow.com/a/3062356/2121596
猜你喜欢
  • 1970-01-01
  • 2017-06-22
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-14
  • 2019-02-22
相关资源
最近更新 更多