我正在通过htmlspecialchars()运行CKEditor TextArea WYSIWYG字段并将其转储到数据库中。

然后,我获取数据库中的字段,并将HTML输出到屏幕。它输出HTML而不实际使用HTML进行标记的任何原因是什么?

数据转储的代码:

if (isset($_POST['submit'])) {

    $ticketBody = htmlspecialchars($_POST['ticketBody']);

    $sql = "INSERT INTO tickets (ticket_text) VALUES(:ticketBody)";
    $stmt = $conn->prepare($sql);
    $stmt->bindParam(':ticketBody', $ticketBody, PDO::PARAM_STR);
    $stmt->execute();

}


遍历数据

foreach ($rows as $row) {
    <?php echo $row['ticket_text']; ?>
}


输出的截屏视频:http://screencast.com/t/wbUUS3OrW

注意:将htmlspecialchars_decode添加到我的echo语句中可以,但是却使我的文本变成白色!我也不知道为什么-http://screencast.com/t/JgJMaoCdyuTM

strip_tags()功能也不起作用。

最佳答案

使用mysqli_real_scape_string而不是html_special_chars,这将维护您的html代码和特殊字符,同时数据库保持安全,在下一个链接中,您可以找到文档。

For you security don't click here, never!!

09-25 17:03
查看更多