I tried to submit form data as an array (“newData”) arriving at my php application in the structure
$_POST['newData'] = array(
1 => array( p1 => 'a', p2 => 'ae', /*etc.*/ ),
2 => array( p1 => /*etc.*/ )
)
which told me the print_r()-command.
Because I usually call form data by filter_input(), I wrote into my program:
$newData = filter_input(INPUT_POST, 'newData',
FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);
But this does not contain any value. Did I use the filter command in a crong way or could there be some switch in the php.ini I do not know? Other program where I filter input arrays the same way run on another server, that's why I think this might be a problem.
The reason that
filter_input
doesn't see the data you added to the$_POST
superglobal, is thatfilter_input
seems to check the raw data, not the parsed data that is in$_POST
. The same thing goes for$_GET
I know you probably already solved the issue, but it took me quite some time to figure out and I'd like to help others out of their struggle.