当我使用下面的变量添加注释时,撇号在它们前面用反斜杠打印。我怎样才能摆脱反斜杠?从撇号中删除前面的反斜杠
由于提前,
约翰
打印结果的例子:
我的室友\的弟弟\的前女友\'姑姑开丰田车。
$comment = mysql_real_escape_string($_POST['comment']);
当我使用下面的变量添加注释时,撇号在它们前面用反斜杠打印。我怎样才能摆脱反斜杠?从撇号中删除前面的反斜杠
由于提前,
约翰
打印结果的例子:
我的室友\的弟弟\的前女友\'姑姑开丰田车。
$comment = mysql_real_escape_string($_POST['comment']);
从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.
mysql_real_escape_string()
被添加反斜杠,这样你就可以安全地注入你的字符串转换成SQL查询- 这是作为对SQL Injections保护。
但是这个函数应该只在你想建立一个SQL查询时使用 - 不是当你想输出一些东西时。
如果要将字符串输出到HTML页面,通常会使用htmlspecialchars
或htmlentities
,以防止XSS。
如果你已经有一些反斜杠调用mysql_real_escape_string()
之前,这可能是因为Magic Quotes - 如果是这样,你可能想在你从用户获取输入第一个电话stripslashes()
,不重复的反斜杠。
这不正是mysql_real_escape_string
应该怎么做?如果在将数据插入数据库并取回数据库后仍然看到斜线,请确保magic_quotes_gpc
服务器选项已关闭。
感谢。我怎么能用htmlspecialchars()去除输出的反斜杠? – John 2010-04-12 19:39:45
htmlspecialchars不会摆脱斜线,它将简单编码<如<和类似的东西。斜杠通过使用stripslashes :)删除 – oedo 2010-04-12 21:04:32