我见过很多这样的 PHP 片段:
function DB_Quote($string)
{
if (get_magic_quotes_gpc() == true)
{
$string = stripslashes($string);
}
return mysql_real_escape_string($string);
}
如果我打电话会发生什么DB_Quote("the (\\) character is cool");
? (谢谢 jspcal!)
难道我们不应该只在以下情况下才去掉斜杠吗get_magic_quotes_gpc() == true
and该值源自$_GET
, $_POST
or $_COOKIE
超全局变量?
第一步是完全关闭魔术引号,并在其打开时发出大量不可忽略的警告。
如果这对您来说不是一个选择,那么在我看来,最好的方法就是始终删除所有魔术引号。
// in an include used on every page load:
if (get_magic_quotes_gpc()) {
foreach (array('_GET', '_POST', '_COOKIE', '_REQUEST') as $src) {
foreach ($$src as $key => $val) {
$$src[$key] = stripslashes($val);
}
}
}
虽然性能受到了一些影响,但从那时起,您在处理变量时会更加轻松。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)