php - 准确保存和显示文本的输入和提交方式

标签 php mysql string echo

我在保留用户如何输入短段落的确切外观方面遇到了很多麻烦。

我的问题是出现随机斜杠和 html。当人们在输入消息时按回车键时,“\r\n\”会在稍后回显时出现。我尝试修复该问题,但现在当用户在撰写消息时键入撇号时,它会使用 3 个反斜杠插入到数据库中,因此稍后会用带有撇号的 3 个反斜杠进行回显。令人沮丧!我想重新开始!

我是这样做的。

  1. 用户在输入字段中键入消息并点击提交。
  2. 该消息通过 php 插入到类型为 varchar(280) 的数据库中。
  3. 该消息通过 php 得到回应。

我尝试过很多不同的东西,比如 nlbrstrip_tagsstripslashesmysql_real_escape_string 等等。我可能会以某种组合使用这些,这会把事情搞砸。

所以我的问题是什么是最好的方法来准确地保留某人如何撰写文本段落以便稍后通过 php 回显以看起来就像他们输入的一样?

最佳答案

  1. 确保 Magic Quotes 已关闭,或者,如果您无法禁用它们,请清除字符串中的它们。阅读手册了解详情:http://www.php.net/manual/en/security.magicquotes.php
  2. 将文本插入数据库时​​,针对 SQL 语法一次对其进行适当转义,或者更好的做法是使用准备好的语句。参见 How can I prevent SQL injection in PHP?The Great Escapism (Or: What You Need To Know To Work With Text Within Text) .
  3. 输出为 HTML 时,使用 htmlspecialchars避免 HTML 注入(inject)或纯语法问题,然后使用 nl2br专门为 HTML 格式化换行符。

基本上就是这样。

关于php - 准确保存和显示文本的输入和提交方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21045667/

相关文章:

PHP不显示任何错误

php - 在页面 View 上更新表值?

php - 在选择组合框值时,必须在从数据库中选择查询后动态显示标签

sql - MySQL - 转换电话号码数据?

arrays - 将列表加入一个字符串

c++ - 为什么我的字符串失去了它的值(value)?

php - 如何在 PHP 的类中使用匿名函数?

php - MySQL 选择 "related"行

php - MySQL服务器出现大量休眠连接的可能原因?

java - 使用compareTo() 对电子邮件地址进行排序会返回意外结果