我使用的是无法控制的共享主机服务器。
使用--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代码非常小。
答案 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>