Php json“解码返回”;空";用于WordPress中的POST数据
我尝试将Php json“解码返回”;空";用于WordPress中的POST数据,php,ajax,wordpress,Php,Ajax,Wordpress,我尝试将JSON.stringify数组绑定到服务器,如下所示: JavaScript: jQuery.ajax({ type: 'post', url: ajax_url, data: { 'settings' : JSON.stringify([...]), 'action' : [...] }, traditional: true, success:function(data) { al
JSON.stringify
数组绑定到服务器,如下所示:
JavaScript:
jQuery.ajax({
type: 'post',
url: ajax_url,
data: {
'settings' : JSON.stringify([...]),
'action' : [...]
},
traditional: true,
success:function(data) {
alert("SUCCESS");
},
error: function(errorThrown){
console.log(errorThrown);
}
});
但是当我在PHP中尝试json\u encode
时,它返回NULL
PHP
$param = json_decode($test, true);
var_dump($param); //it retuns NULL
而JSON.stringify
数组显示如下:
{\"uid\":{\"@cdata\":\"6\"},\"board_name\":{\"@cdata\":\"test\"},\"skin\":{\"@cdata\":\"default\"},\"use_comment\":{\"@cdata\":\"\"},\"use_editor\":{\"@cdata\":\"\"},\"created\":{\"@cdata\":\"20160307182421\"}}
我做错了什么?有一次,PHP决定在GET和POST参数中避开引号,以保护不知情的开发人员免受SQL注入漏洞的侵害。他们称之为巫术 当PHP在他们的方式中看到错误时,他们决定删除此功能,但WordPress除外 WordPress接受了早期版本的神奇引用,并依赖于它提供的半纵火安全性。直到今天,他们还在继续添加引号,因此您必须明确地删除它们 TL;博士: 在WordPress中,使用:
爱你的措辞,哈哈!一个小时的困惑和对任何我能想到的事情的胡思乱想,最终我得到了这个答案,结束了我的悲伤非常感谢。
$test = stripslashes($_POST['settings']);
json_decode($test, true);