如何防止html代码被写入“数据库”?

时间:2017-07-13 23:25:06

标签: php json database smile

我的代码的工作原理如下:如果在输入行中有这样的表情符号(“:)”,“:(”)那么你需要用图片替换它们。我是这样做的:

$smile = array(":)", ":(");
$grafic = array("<img src = './image/Smile.png' alt='Smile' align='middle'>",
    "<img src = './image/Sad.png' alt='Smile' align='middle'>");    
$new_message = str_replace($smile, $grafic, $message);

$file = "../data/messages.json";
$json_content = json_decode(file_get_contents($file), true);

if (!empty($new_message)) {
    $json_content[] = array("time" => $time, "user" => $user, "message"  => $new_message);
    file_put_contents($file, json_encode($json_content, JSON_PRETTY_PRINT));
}

但是,我必须写下我在“数据库”(json文件)中写的已更改的字符串,我们可以看到以下内容:

[
    {
        "time": "1499985376",
        "user": "Max",
        "message": "Hello <img src = '.\/image\/Smile.png' alt='Smile' align='middle'>"
    }
]

如何写一个单词“smile”或“sad”而不是HTML标签?

1 个答案:

答案 0 :(得分:0)

  1. 只需创建一个新变量并在创建之前保存该消息 更改,例如:$rawMessage = $message;
  2. 然后使用$rawMessage将消息保存到数据库中。