既然 $_POST 会自动在引号前添加斜杠,为什么还要麻烦使用 mysql_real_escape_string() 呢?
在 PHP 中,$_POST 自动在引号前添加斜杠,那么为什么还要应用 mysql_real_escape_string() 呢?例如,当我在输入字段中输入 'rrr
时,当我回显它时,我会得到 \'rrr
。
In PHP, $_POST add slashes before a quotation mark automatically, so why bother applying mysql_real_escape_string()? For example, when I input 'rrr
in an input field, and I get \'rrr
when I echo it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
因为只有在 php 配置中启用 MacigQuotes 时才会发生这种情况,据我所知,这种情况现在相当不常见。此外,mysql_real_escape_string 还转义其他 MySQL 相关字符。
查看 http://php.net/manual/en/security.magicquotes.php< /a> 有关魔术引号的更多信息。
正如您所看到的,该指令已经有一个弃用警告,因此您应该检查您的服务器配置^^
编辑:要禁用魔术引号,请在您的 xampp 文件夹中搜索 php.ini,然后添加或更改(如果存在) ,以下指令:
Because that only happens if MacigQuotes is enabled in your php configuration, which, as far as I know, is fairly uncommon nowadays. Also, mysql_real_escape_string also escapes other MySQL related characters.
Check out http://php.net/manual/en/security.magicquotes.php for more information on magic quotes.
As you can see, there already is a deprecation warning for this directive, so you should check your server configuration anyway^^
Edit: To disable magic quotes, search in your xampp folder for the php.ini, and add, or change if present, the following directives:
魔术引号 自 PHP 5.3.0 起已弃用,并已过时PHP 6.0 的。
编辑:所以不能依赖自动斜杠,因为它们已被大多数 PHP 安装弃用,并且很快将根本不起作用。
Magic quotes was deprecated as of PHP 5.3.0 and is obsolete as of PHP 6.0.
Edit: So the auto slashes can't be relied on because they are deprecated by most PHP installations, and soon will not work at all.