2011-02-16 23 views
1

爲了抵消魔術引號,我在每頁的頂部都設置了這個函數。 但是,它似乎影響我有一個<input type="checkbox" name="check[]" />形式的數組。當使用此函數克服魔術引號時,Form不會返回數組?

if (in_array(strtolower(ini_get('magic_quotes_gpc')), array('1', 'on'))) { 
    $_POST = array_map('stripslashes', $_POST); 
    $_GET = array_map('stripslashes', $_GET); 
    $_COOKIE = array_map('stripslashes', $_COOKIE); 
} 

我刪除了函數,它在打印數組時返回完整數組。 但是我需要魔術引號,也是。

隨着功能我剛剛得到Array返回。

如何更改上述功能或克服此問題?

感謝

回答

0

還有就是PHP網站上的優秀網頁約how to disable magic quotes,無論是在.ini文件並在運行時。我強烈建議使用他們的代碼而不是家中的東西。

+0

完美的感謝,他們的代碼完美的作品 - 這是顯而易見的是在他們自己的文檔! - 我無法調整.ini,但會在我的下一個託管環境中 – 2011-02-16 20:15:53

0

您可以使用array_walk_recursive

function gpc_stripslashes(&$value, $key) { 
    $value = stripslashes($value); 
} 
array_walk_recursive($_GET, 'gpc_stripslashes'); 

或PHP 5.3的方式(儘管magic_quotes_gpc被關在5.3默認):

array_walk_recursive($_GET, function (&$value, $key) { 
    $value = addslashes($value); 
});