gpt4 book ai didi

php - 一步步存储textarea mysql php

转载 作者:可可西里 更新时间:2023-11-01 08:20:10 25 4
gpt4 key购买 nike

所以我对所有关于使用正确的换行符存储和显示文本区域并且不允许任何 HTML 标记的主题感到困惑。

现在我正在转义输入,然后将其存储为文本,然后尝试使用 echo nl2br($text) 显示它;但它仍然行不通。

那么应该如何处理才能确保输入安全,不允许显示任何 HTML,如何正确显示等等?

这是我运行当前代码时发生的情况。
第 1 步:
文本区域输入:
第 1 行

第 3 行
第 4 行

第 6 行

转义变量:
$text = $mysqli->real_escape_string($_POST['textarea']);

第 2 步:
要插入数据库的 SQL 查询。在数据库中存储为:
第 1 行\r\n\r\n第 3 行\r\n第 4 行\r\n\r\n第 6 行

第 3 步:
用 SQL 获取它,用 echo nl2br($text) 显示;结果为
ROW 1\r\n\r\nROW 3\r\nROW 4\r\n\r\nROW 6

我猜它的存储方式禁止使用 nl2br,因为实际上没有存储任何换行符,只有\r 等,我有点迷路了,而且已经很晚了,所以...

任何指导将不胜感激。

最佳答案

在你的情况下——因为你想从输入中去除任何标记....

$text = strip_tags($_POST['textarea']);
$text = $mysqli->real_escape_string($text);
mysqli->query("INSERT INTO yourtable (content) VALUES ('$text')");

...但是当您想再次将它输出到浏览器时 - 您仍然需要适本地转义它...

if ($result = $mysqli->use_result()) {
while ($row = $result->fetch_assoc()) {
print "<div>" . nl2br(htmlentities($row['content'])) . "</div>";
}
}

唯一一次对 PHP 中的数据应用任何清理是在它离开 PHP 的时候(进入数据库,进入浏览器,进入日志文件......)和方法 用于转换数据取决于数据去向

关于php - 一步步存储textarea mysql php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16107668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com