我正在通过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()
功能也不起作用。
答案 0 :(得分:0)
使用 mysqli_real_scape_string 而不是 html_special_chars 这将在您的数据库保持安全的同时维护您的html代码和特殊字符,如果是这样,您可以在下一个链接中找到文档。