2013-11-04 42 views
0

我在共享服务器magic_quotes_gpc处于打开状态。我曾尝试将以下代码添加到我的.htaccess文件中。魔术引号创建问题

php_flag magic_quotes_gpc Off 

当我在.htaccess中使用上述行时,它会引发500个内部服务器错误。

即使我也试过使用ini_set了。

问题出在CKEEditor上。它增加了双引号。编辑并不适当。我也经历了几个答案,但没有得到正确的答案。

请指导我。

PHP版本:5.3.24

+0

你有没有试过在'php.ini'中关闭此代码 – meda

+1

没有。作为其共享服务器 –

+1

获取新的虚拟主机 – jszobody

回答

1

根据the docsmagic_quotes_gpc指令是PHP_INI_PERDIR所以你应该能够改变它。

每当在您的活动服务器中看到“500内部服务器错误”状态代码时,您应该前往日志文件并找出确切原因(而不是猜测)。无论如何,我怀疑Apache是​​抱怨php_flag指令是未知的。如果是这样的话,你的PHP解释器是而不是作为Apache模块运行,因此你不能使用Apache文件来改变它。

由于您的托管帐户似乎很旧,您可能会在您的FTP帐户的某个地方有一个自定义的php.ini文件。

+0

随着自定义php.ini的变化,解决了我的问题。感谢大家 –

2

如果无法通过任何手段禁用魔术引号,使用来自PHP手册中的示例代码作为一种解决方法剥除多余的斜线:http://php.net/manual/en/security.magicquotes.disabling.php

if (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); 
}
+0

这段代码(和这个问题一起)已经[复制/粘贴到足够的答案](https://www.google.com/#q=site%3Astackoverflow.com+%22%24process+%3D+array(% 26%24_GET%2C +%26%24_POST%2C +%26%24_COOKIE%2C +%26%24_REQUEST)%3B%22)..我们不需要继续复制它。 –