php - 从 recaptcha 响应中调试格式错误的 json 数据?
问题描述
我正在使用带有 ajax 的 recaptcha 并且发布的所有数据都工作正常。
将响应解码为 json 时出现问题。
当回显来自 Google 的 recaptcha 响应时,我得到错误代码 4,json_last_error()
这意味着 json 的语法不正确并且无法解码。
如何/在哪里获得 json 响应以便调试它?var_dump($responseKeys)
给我null,$response
给我1。
请注意,recaptcha 工作正常,只是在解码响应以用于验证时出现问题。
错误
无法解码 JSON!格式错误的 JSON`
验证码
$ch = curl_init();
$ip = $_SERVER['REMOTE_ADDR'];
//read post content
$json = file_get_contents('php://input');
//turns json string into php var $obj
$obj = json_decode($json,true);
//retrieve captcha response
$captcha = $obj["captchaResponse"];
//create captchaResponse instance
$captcha;
//KEYS
//prod
//$secretKey = 'xxx';
//localhost
$secretKey = "xxx";
curl_setopt_array($ch, [
//curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
//$timeout = 5;
CURLOPT_URL => "https://www.google.com/recaptcha/api/siteverify",
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => [
"secret" => $secretKey,
"response" => $captcha,
"remoteip" => $ip
],
CURLOPT_RETURNTRANSFER => true
]);
//get response from recaptcha
$response = curl_exec($ch);
curl_close($ch);
$responseKeys = json_decode($response,true);
if(intval($responseKeys['success']) !== 1) {
//debuggingRECAPTCHA RESPONSE
echo 'var_dump' , var_dump($responseKeys);
echo '$jsonError ' , $jsonError;
}`
当我回显时,$responseKeys
我什么也得不到,'print_r($responseKeys)' 给了我1
.
我想知道如何获得 (edit: json) 的输出$response
以获取一些错误的指示。
还有其他调试方法吗?
如果需要,准备添加更多信息。
谢谢。
编辑:添加了更多信息以根据评论进行澄清。
解决方案
几个小时后,我把头撞在墙上@MarioWerners 的评论证明代码运行良好,所以我开始查看我的环境。因为我在本地开发谷歌拒绝了这个请求,所以我不得不添加。
//仅开发
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOSTM => false
现在请求被接受了。
事后看来,我应该将环境添加到问题中。我很抱歉。
推荐阅读
- ssas - 与 2014 年相比,2017 年和 2016 年 SSAS 表格中的性能问题
- gradle - JetifyTransform Flutter 运行执行失败
- ruby-on-rails - 如何使用 Authentication Devise 调用 Sign_in 方法?
- powershell - Powershell exe到ico转换器损坏的图标
- java - 我想将测试输出文件夹从项目移动到其他目录我应该在哪里设置移动文件夹代码或拆除?
- android - 推送通知详细信息在 back4app 解析中显示 N/A
- javascript - 如何在用户重新加载页面或退出我的 vuejs 应用程序之前执行操作
- r - 比较两个 data.frames 列表中的 colnames?
- angular7 - 用逗号和分号分割网址
- php - 如何解决错误 500 并使用 Angular 8 和 PHP 发送电子邮件