Установить функцию для каждого массива - PullRequest
0 голосов
/ 29 ноября 2010

Теперь я использую:

<?php
$_POST = array_map(mysql_real_escape_string, $_POST);
$_GET = array_map(mysql_real_escape_string, $_GET);
$_COOKIE = array_map(mysql_real_escape_string, $_COOKIE);
$_REQUEST = array_map(mysql_real_escape_string, $_REQUEST); 

, но если $ _POST имеет несколько массивов ($ _POST ['s'] [1]), то это не работает.Как я могу установить функцию для каждого массива?

Ответы [ 2 ]

1 голос
/ 29 ноября 2010
<?php

function escape_recursive($item) {
    return is_array($item) ?
        array_map("escape_recursive", $item) :
        mysql_real_escape_string($item);
}

$_POST = array_map("escape_recursive", $_POST);
// etc...

?>

Но посмотрите комментарий DampeS8N - если вы делаете это, вы ошибаетесь в безопасности ...

0 голосов
/ 29 ноября 2010

Вы хотите использовать рекурсивную функцию для преодоления вашей проблемы, например так:

function recursive_array_map($input){
   if(is_array($input)){
        return array_map('recursive_array_map',$input);
   }

   return array_map(mysql_real_escape_string, $input);
} 

$_POST = recursive_array_map(mysql_real_escape_string, $_POST);

Я только что написал это здесь, так что не уверен, работает ли она на самом деле;) Подумайте об этом!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...