当我使用下面的变量添加注释时,撇号会在它们前面打印出反斜杠。我怎样才能摆脱反斜杠?
提前致谢,
约翰
打印结果示例:
我的室友的前女友姨妈开了一辆丰田汽车。
$comment = mysql_real_escape_string($_POST['comment']);
答案 0 :(得分:3)
mysql_real_escape_string()
正在添加反斜杠,因此您可以将字符串安全地注入SQL查询 - 这可以起到SQL Injections 的保护作用。
但此功能只应在您想要构建SQL查询时使用 - 而不是在您想输出内容时使用。
如果要将字符串输出到HTML页面,通常会使用htmlspecialchars
或htmlentities
来阻止XSS。
如果您在调用mysql_real_escape_string()
之前已经有一些反斜杠,那可能是因为Magic Quotes - 如果是这样,您可能需要首先在用户输入的stripslashes()
上调用{不要复制反斜杠。
答案 1 :(得分:1)
来自http://php.net/manual/en/function.mysql-real-escape-string.php
Note: If magic_quotes_gpc is enabled, first apply stripslashes() to the data. Using this function on data which has already been escaped will escape the data twice.
答案 2 :(得分:0)
这不正是mysql_real_escape_string
应该做的吗?如果在将数据插入数据库并将其取回后仍然看到斜杠,请确保已关闭magic_quotes_gpc
服务器选项。