我创建了一个CMS,并在博客文章中编写了以下代码以显示代码。
<pre>
<code>
<input type="color" name="favcolor" />
</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保留在编辑页面上?
答案 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>