tom*_*gun 18 php json recaptcha
我将Googles funky ReCaptcha NoCaptcha整合到一个简单的html5表单中.在localhost上它正在工作,但在线测试它总是返回错误'invalid-json'.这是我的代码的一部分:
$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());
}
Run Code Online (Sandbox Code Playgroud)
返回 Array ( [0] => invalid-json )
我用谷歌搜索了一些帮助,但没有发现真有帮助.
由于代码在线和离线是相同的,我真的无能为力.问题来自哪里.https://developers.google.com/recaptcha/docs/verify对错误代码一无所知.猜猜解决方案太简单了.
小智 47
我有同样的问题,并使用cURL作为请求方法而不是POST修复它.
$recaptcha = new \ReCaptcha\ReCaptcha($secret, new \ReCaptcha\RequestMethod\CurlPost());
Run Code Online (Sandbox Code Playgroud)
解决方案的关键是简单地打开php错误(我知道,这很令人尴尬).这导致了让我苦苦挣扎的错误,同时也提供了解决方案:
PHP在连接到谷歌的https验证页面时遇到问题.这只是因为php.ini中的一个选项:allow_url_fopen
php.net说明:
allow_url_fopen布尔值
此选项启用支持URL的fopen包装器,以便访问URL对象(如文件).提供了默认包装器,用于使用ftp或http协议访问远程文件,某些扩展(如zlib)可能会注册其他包装器.
将其值从0更改为1解决了我的问题.显示开发时打开php错误的重要性(我是php编程的超级菜鸟)
希望这能帮助某人一些时间!
归档时间: |
|
查看次数: |
5850 次 |
最近记录: |