【发布时间】:2011-03-08 05:31:53
【问题描述】:
我有这样的东西:$foo = mysql_real_escape_string($_GET["t"])。假设 t = Stack's Overflow。
在这种情况下,我回显 $foo,它会返回类似 Stack\\\'s Overflow 的内容。我如何停止这种行为并让 $foo 与我没有逃脱它的情况相同?
即使使用strip_slashes(),我仍然会得到最后一个斜线。
我的字符串是这样的:
- 在搜索框中输入
- 发布到 mysql_real_escape_string() 所在的文件
- 重定向到搜索?term=string
- mysql_real_在 $_GET 操作的情况下再次转义
- 在数据库中搜索该字符串。它从创建时开始存储 mysql_real_escape_string()。所以它看起来像数据库中的
Stack\'s。
字符串一直以Stack\'s 的形式到达最后一页(应该是这样)。但是,查询不会返回类似的结果,即使它在数据库中看起来是这样的。
编辑:
此外,当它碰到 & 符号时,它会搞砸。就像如果我有 t = Stack & Overflow 那么它只会将 Stack 存储在变量 $foo 中。
【问题讨论】:
-
你为什么要反转
mysql_real_escape_string?只需将值的非转义版本存储在另一个变量中即可~ -
stripslashes(stripslashes($str))?