很抱歉这个长标题。
我有点偏执,所以我通过javascript使用
清理了使用JSON.stringify(order)处理的$ _POST$order = mysqli_real_escape_string($db_upload, htmlspecialchars( strip_tags($_POST['order'])));
在通过mysqli预编译语句插入mysql之前。
但是当我尝试通过
进行json_decode时foreach(json_decode($row['order'], true) as $id =>$value){
$sumArray[]= array("item" => $id, "value" => $value);
}
我得到“为foreach()提供的无效参数......”
我知道当插入值为
时,json_decode有效{"Hot water":"1"}
但是当插入值为
时不是{"Hot water":"1"}
在这种情况下,我怎么能json_decode? 感谢。
编辑:我很难解释我真正想要的东西。正如我之前提到的,我已经使用mysqli预编译语句来插入数据。我不太担心sql注入,而是进行高级xss攻击。
我真正想要的是如何使用json_decode
{"Hot water":"1"}
我决定采用更简单的方法:删除htmlspecialchars。 我做的是
$order = mysqli_real_escape_string($db_upload, strip_tags($_POST['order']));
然后,
foreach(json_decode(stripslashes($row['order']), true) as $id =>$value){
$sumArray[]= array("item" => $id, "value" => $value);
}
这很好用