我在保留用户如何输入短段落的确切外观方面遇到了很多麻烦。
我的问题是出现随机斜杠和 html。当人们在输入消息时按回车键时,“\r\n\”会在稍后回显时出现。我尝试修复该问题,但现在当用户在撰写消息时键入撇号时,它会使用 3 个反斜杠插入到数据库中,因此稍后会用带有撇号的 3 个反斜杠进行回显。令人沮丧!我想重新开始!
我是这样做的。
- 用户在输入字段中键入消息并点击提交。
- 该消息通过 php 插入到类型为 varchar(280) 的数据库中。
- 该消息通过 php 得到回应。
我尝试过很多不同的东西,比如 nlbr
和 strip_tags
和 stripslashes
和 mysql_real_escape_string
等等。我可能会以某种组合使用这些,这会把事情搞砸。
所以我的问题是什么是最好的方法来准确地保留某人如何撰写文本段落以便稍后通过 php 回显以看起来就像他们输入的一样?
最佳答案
- 确保 Magic Quotes 已关闭,或者,如果您无法禁用它们,请清除字符串中的它们。阅读手册了解详情:http://www.php.net/manual/en/security.magicquotes.php
- 将文本插入数据库时,针对 SQL 语法一次对其进行适当转义,或者更好的做法是使用准备好的语句。参见 How can I prevent SQL injection in PHP?和 The Great Escapism (Or: What You Need To Know To Work With Text Within Text) .
- 输出为 HTML 时,使用
htmlspecialchars
避免 HTML 注入(inject)或纯语法问题,然后使用nl2br
专门为 HTML 格式化换行符。
基本上就是这样。
关于php - 准确保存和显示文本的输入和提交方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21045667/