如何在博客编辑页面上显示转义的html?

时间:2019-01-06 19:18:25

标签: php html mysql

我创建了一个CMS,并在博客文章中编写了以下代码以显示代码。

<pre>
  <code>
     &lt;input type=&quot;color&quot; name=&quot;favcolor&quot; /&gt;
  </code>
</pre>

它显示

<input type="color" name="favcolor" />

在我的博客文章页面上。但是回到我的编辑页面,保存并刷新后,代码变为:

<pre>
  <code>
    <input type="color" name="favcolor" />
  </code>
</pre>

如何显示我编写的代码? 据我所知,代码按原样保存在mySQL数据库中。所以我想我在提取内容时做错了。

这是我用来在编辑页面上显示内容的功能。

function get_post($post_id){
    include('includes/database.php');

    $sql = 'SELECT post_id, post_content FROM blog_posts WHERE post_id = ?';

    try {
        $post_stmt = $pdo->prepare($sql);
        $post_stmt->bindValue(1,$post_id,PDO::PARAM_INT);
        $post_stmt->execute();
        return $post_stmt->fetch();

    } catch (Exception $e) {
        echo 'Error:'.$e->getMessage().'</ br>';        
        return array();
    }

}

在edit-post.php上

$row = get_post($post_id);

<textarea name='post_content' id="post_content">
  <?php echo $row['post_content'];?>
</textarea>

总而言之, 问题:转义的HTML保存在编辑页面上后变为未转义。 问题:如何将转义的HTML保留在编辑页面上?

1 个答案:

答案 0 :(得分:1)

喜欢...

$row = get_post($post_id);

<textarea name='post_content' id="post_content">
  <?php echo htmlentities ( $row['post_content'], ENT_QUOTES, 'UTF-8' );?>
</textarea>