2012-10-25 103 views
2

可能重複:
How to turn off magic quotes on shared hosting?禁用魔術引號

我已經在我的智慧結束了一整天在我的WordPress主題禁用魔術引號...

我已經嘗試了.htaccess和php.ini(和php5.ini)文件方法,但.htaccess給了我一個500內部服務器錯誤(我的主機是GoDaddy),php.ini方法不起作用。我也嘗試了PHP方法有幾十種不同的代碼,我在網上找到的,他們的這是一個:

if (get_magic_quotes_gpc()) 
{ 
function remove_slash(&$value) 
{ 
$value = stripslashes($value); 
} 
array_walk_recursive($_GET, "remove_slash"); 
array_walk_recursive($_POST, "remove_slash"); 
array_walk_recursive($_COOKIE, "remove_slash"); 
array_walk_recursive($_REQUEST, "remove_slash"); 
} 

然而,並不是他們中的單獨一個擺脫了那些煩人的反斜槓!如果這裏有人設法爲我解決這個問題,我真的很感激。

+0

remove_slash函數在她的示例 – Davit

+0

中被定義在後面的PHP版本設置可能會進入'.user.ini'文件。在FCGI設置上,甚至可能有本地的php.inis。 – mario

+1

可能重複的[如何關閉共享主機上的魔術引號?](http://stackoverflow.com/questions/517008/how-to-turn-off-magic-quotes-on-shared-hosting)和easy到谷歌:http://stackoverflow.com/questions/4303840/php-go-daddy-and-magic-quotes-gpc – mario

回答

1

在我的項目,我用這個:

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); 
} 

我把它在運行時,它的工作原理。

我也知道如何通過.htaccess禁用它。

php_flag magic_quotes_gpc off 

我相信這兩個工作。