2013-12-16 1 views
0

Я попытался представить данные формы в виде массива («NewData»), прибывающих в моем PHP приложения в структуре

$_POST['newData'] = array(
    1 => array(p1 => 'a', p2 => 'ae', /*etc.*/), 
    2 => array(p1 => /*etc.*/) 
) 

, который сказал мне print_r () -command.

Потому что я обычно называю данные формы по filter_input(), я писал в моей программе:

$newData = filter_input(INPUT_POST, 'newData', 
    FILTER_DEFAULT, FILTER_REQUIRE_ARRAY); 

Но это не содержит никакого значения. Использовал ли я команду фильтра в виде кролика или мог ли быть какой-то переключатель в php.ini, я не знаю? Другая программа, где я фильтрую входные массивы так же, как и на другом сервере, поэтому я думаю, что это может быть проблемой.

ответ

1

Причина, по которой filter_input не видит данные, которые вы добавили к $_POST суперглобальной, что filter_input кажется, проверьте исходные данные, а не проанализированные данные, которые в $_POST. То же самое относится и к $_GET

print(filter_input(INPUT_GET, 'foo')); // Prints "bar" 

$_GET['foo'] = 'foo'; // Sets the $_GET superglobal, but does not change the raw request data 

print(filter_input(INPUT_GET, 'foo')); // Still returns bar 

Я знаю, что вы, вероятно, уже решил эту проблему, но мне потребовалось некоторое время, чтобы понять, и я хотел бы, чтобы помочь другим из их борьбы.