【发布时间】:2012-05-20 08:52:28
【问题描述】:
我知道从表单中获取数据并将其放入 MySQL 数据库时,应使用 mysql_real_escape_string() 对数据进行转义以防止 SQL 注入。我的问题有点不同。
我正在从 MySQL 数据库中提取数据,然后将其显示在页面上,但我遇到了问题。假设我的数据如下所示:
This is some test data, and here's a quote. For good measure, here are "some more" quotes.
现在,我的 php 代码是这样的:
echo '<input type="text" value="' . $data . '">';
这会导致 HTML 页面损坏,因为数据在其中包含引号,并且它显示在包含带引号的数据的输入标记内。
看到问题了吗?
什么是最好的解决方案?
【问题讨论】:
-
使用参数代替 :D 以免重新发明轮子:参见这篇最优秀的以前的 SO 文章 stackoverflow.com/questions/60174/…
-
@xQbert -- 你能详细说明一下吗?
-
查看添加到第一条评论的链接;但可能 Marc B(准备好了)用这个具体的例子一针见血。