【发布时间】:2015-07-21 19:07:53
【问题描述】:
我正在通过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
注意:在我的echo 语句中添加htmlspecialchars_decode 有效,但会使我的文本变白!我也不知道为什么——http://screencast.com/t/JgJMaoCdyuTM
strip_tags() 函数也不起作用。
【问题讨论】:
-
你能发布生成的 html 代码吗?解码后
-
我认为 HTML 标签会以某种方式自动插入。如果是这样,您可以阻止它并在之后使用 PHP/CSS 对其进行格式化。我不知道 CKEditor,所以如果 CKE 是这里的罪魁祸首,我无法确定它为什么会这样做。