Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
逐步存储textarea mysql php_Php_Mysql_Textarea_Nl2br - Fatal编程技术网

逐步存储textarea mysql php

逐步存储textarea mysql php,php,mysql,textarea,nl2br,Php,Mysql,Textarea,Nl2br,所以我对所有关于使用正确的换行符存储和显示文本区域以及不允许任何HTML标记的主题感到困惑 现在我正在转义输入,然后将其存储为文本,然后尝试使用echo nl2br($text)显示它;不过还是不行 那么,应该如何处理它,以便输入是安全的,它不允许显示任何HTML,如何正确地显示它等等 这就是我运行当前代码时发生的情况 第一步: 文本区域输入: 第1行 第3行 第4排 第6行 转义变量:$text=$mysqli->real_escape_字符串($_POST['textarea']) 第二步:

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

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

那么,应该如何处理它,以便输入是安全的,它不允许显示任何HTML,如何正确地显示它等等

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

第3行
第4排

第6行

转义变量:
$text=$mysqli->real_escape_字符串($_POST['textarea'])

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

第三步:
用SQL获取,用echo nl2br($text)显示;结果是第1行\r\n\r\n行3\r\n行4\r\n\r\n行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>";
        }
}
if($result=$mysqli->use_result()){
而($row=$result->fetch_assoc()){
打印“.nl2br(htmlentities($row['content']))”;
}
}

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

Aha,我明白了。谢谢你的快速回复,也谢谢你帮我解决问题!我将继续使用这个例子,希望事情会像我希望的那样发展。