PHP:如何检测" magic_quotes"运行时参数?

时间:2015-06-09 15:24:39

标签: php wordpress

我使用的是无法控制的共享主机服务器。 使用--enable-magic-quotes参数初始化PHP,因此我必须使用stripslashes来检索未转义的$_GET参数。

问题是我无法在运行时检测到这种行为(PHP 5.4.41): 所有这些函数都返回" false":

ini_get(magic_quotes_sybase)
get_magic_quotes_gpc()
get_magic_quotes_runtime()

我是否可以在运行时检测到,无需更改服务器配置,是否需要使用stripslashes

编辑我使用WordPress平台,我自己的PHP代码非常小。

2 个答案:

答案 0 :(得分:3)

你去吧

get_magic_quotes_gpc()如果magic_quotes_gpc关闭则返回0,否则返回1。或者从PHP 5.4.0起始终返回FALSE,因为从PHP5.4.0开始它不再存在

if (get_magic_quotes_gpc()) {
    $lastname = stripslashes($_GET['lastname']);
} else {
    $lastname = $_GET['lastname'];
}
  

我必须承认这是php manual

的彻底剽窃

自PHP5.4.0起删除magic_quotes时,您可能希望这样做:

if (function_exists("get_magic_quotes_gpc") && get_magic_quotes_gpc()) {
    $lastname = stripslashes($_GET['lastname']);
} else {
    $lastname = $_GET['lastname'];
}

答案 1 :(得分:1)

如果你可以使用.htaccess试试

<IfModule mod_php5.c>
    php_flag magic_quotes_gpc off
</IfModule>