Форма не будет возвращать массив при использовании этой функции для преодоления магических кавычек? - PullRequest
1 голос
/ 16 февраля 2011

Чтобы противодействовать магическим кавычкам, эта функция установлена ​​вверху каждой страницы.Однако это, кажется, влияет, когда у меня есть массив в форме <input type="checkbox" name="check[]" />.

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.

Как мне изменить вышеуказанную функцию или устранить эту проблему?

Спасибо

Ответы [ 2 ]

0 голосов
/ 16 февраля 2011

Вы можете использовать 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);
});
0 голосов
/ 16 февраля 2011

На сайте php есть отличная страница о , как отключить магические кавычки , как в файле .ini, так и во время выполнения.Я настоятельно рекомендую использовать их код вместо чего-то домашнего.

...