2010-04-12 130 views
0

当我使用下面的变量添加注释时,撇号在它们前面用反斜杠打印。我怎样才能摆脱反斜杠?从撇号中删除前面的反斜杠

由于提前,

约翰

打印结果的例子:

我的室友\的弟弟\的前女友\'姑姑开丰田车。

$comment = mysql_real_escape_string($_POST['comment']); 

回答

3

mysql_real_escape_string()被添加反斜杠,这样你就可以安全地注入你的字符串转换成SQL查询- 这是作为对SQL Injections保护。

但是这个函数应该只在你想建立一个SQL查询时使用 - 不是当你想输出一些东西时。

如果要将字符串输出到HTML页面,通常会使用htmlspecialcharshtmlentities,以防止XSS


如果你已经有一些反斜杠调用mysql_real_escape_string()之前,这可能是因为Magic Quotes - 如果是这样,你可能想在你从用户获取输入第一个电话stripslashes(),不重复的反斜杠。

+0

感谢。我怎么能用htmlspecialchars()去除输出的反斜杠? – John 2010-04-12 19:39:45

+0

htmlspecialchars不会摆脱斜线,它将简单编码<如<和类似的东西。斜杠通过使用stripslashes :)删除 – oedo 2010-04-12 21:04:32

0

这不正是mysql_real_escape_string应该怎么做?如果在将数据插入数据库并取回数据库后仍然看到斜线,请确保magic_quotes_gpc服务器选项已关闭。