我如何使用mysqli_real_escape_string,htmlspecialchars,strip_tags处理过JSON_decode数组?

时间:2017-02-03 01:32:01

标签: javascript php json mysqli

很抱歉这个长标题。

我有点偏执,所以我通过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);

}

这很好用

0 个答案:

没有答案