首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NoCaptcha返回错误无效-json

NoCaptcha返回错误无效-json
EN

Stack Overflow用户
提问于 2015-05-08 00:23:02
回答 6查看 8.6K关注 0票数 23

我将Googles funky ReCaptcha NoCaptcha集成到一个简单的html5表单中。在本地主机上,它是工作的,但在线测试总是返回错误'invalid-json‘。下面是我的代码的一部分:

代码语言:javascript
复制
$secret = 'TEHSEHCRET';
$recaptcha = new \ReCaptcha\ReCaptcha($secret);
$resp = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']);
if ($resp->isSuccess()) {
// do some
}
else {
print_r($errors = $resp->getErrorCodes());
}

返回Array ( [0] => invalid-json )

我用谷歌搜索了一些帮助,但没有找到真正有帮助的东西。

由于上线和下线的代码是一样的,我真的不知道问题是从哪里来的。https://developers.google.com/recaptcha/docs/verify对错误代码没有任何说明。我猜这个解决方案太简单了。

EN

回答 6

Stack Overflow用户

发布于 2015-06-15 22:47:00

我也有同样的问题,通过使用cURL作为请求方法而不是POST来修复它。

代码语言:javascript
复制
$recaptcha = new \ReCaptcha\ReCaptcha($secret, new \ReCaptcha\RequestMethod\CurlPost());
票数 56
EN

Stack Overflow用户

发布于 2016-02-08 21:22:29

这为我解决了这个问题:

代码语言:javascript
复制
//$recaptcha = new \ReCaptcha\ReCaptcha($secret);

// If file_get_contents() is locked down on your PHP installation to disallow
// its use with URLs, then you can use the alternative request method instead.
// This makes use of fsockopen() instead.
$recaptcha = new \ReCaptcha\ReCaptcha($secret, new \ReCaptcha\RequestMethod\SocketPost());
票数 3
EN

Stack Overflow用户

发布于 2020-04-01 02:17:12

如果您正在使用带有SocketPost请求方法的Google PHP客户端库< 1.2.4,那么您需要更新到reCAPTCHA 1.2.4,或者您应该切换到CurlPost,因为≥服务器响应已经更改:https://github.com/google/recaptcha/issues/359

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30106668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档