如何在共享主机上关闭魔术引号?我想关掉PHP的魔术引号。我无法访问php.ini。当我尝试添加php_flag magic_quotes_gpc off到我的.htaccess文件时,我收到500内部服务器错误。这是我的.htaccess文件的样子:AddType x-mapp-php5 .php
php_flag magic_quotes_gpc off然后我尝试使用ini_set('magic_quotes_gpc', 'O'),但这没有效果。如何关闭魔术报价?
3 回答
MMTTMM
TA贡献1869条经验 获得超4个赞
虽然我不能说为什么php_flag会给你500 Internal Server Error
,但我会指出PHP手册有一个例子,用于检测魔术引号是否打开并在运行时从超级全局中删除它。与其他发布的不同,这个是递归的,将正确地从数组中删除引号:
更新:我今天注意到PHP手册中有以下代码的新版本,它使用了对超全局变量的引用。
旧版:
<?phpif (get_magic_quotes_gpc()) { function stripslashes_deep($value) { $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value); return $value; } $_POST = array_map('stripslashes_deep', $_POST); $_GET = array_map('stripslashes_deep', $_GET); $_COOKIE = array_map('stripslashes_deep', $_COOKIE); $_REQUEST = array_map('stripslashes_deep', $_REQUEST);}?>
新版本:
<?phpif (get_magic_quotes_gpc()) { $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); while (list($key, $val) = each($process)) { foreach ($val as $k => $v) { unset($process[$key][$k]); if (is_array($v)) { $process[$key][stripslashes($k)] = $v; $process[] = &$process[$key][stripslashes($k)]; } else { $process[$key][stripslashes($k)] = stripslashes($v); } } } unset($process);}?>
- 3 回答
- 0 关注
- 407 浏览
添加回答
举报
0/150
提交
取消