如何在共享主机上关闭魔术引号?我想关掉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 关注
- 427 浏览
添加回答
举报
0/150
提交
取消
