Missing fields in $_POST
I recently updated to OS X 10.8 (Mountain Lion) which has PHP 5.3.13 installed by default.
When testing something today, I discovered that a very very large form wasn’t submitting all fields. It seemed that $_POST was being truncated. After a little bit of searching around I discovered the max_input_vars php.ini setting. This is new since PHP 5.3.9 and defaults to 1000.
As OS X also comes with suhosin installed, if you want to increase the number of fields for _POST you need to set the following in php.ini:
max_input_vars = 2000 suhosin.post.max_vars = 2000 suhosin.request.max_vars = 2000
Also, ensure that suhosin.post.max_value_length and suhosin.request.max_value_length are large enough.
Update: I was pointed to Supercolliding a PHP array which explains why this setting was introduced.
my boss ran into this issue when he was submitting a form with more than 1000 elements, I just asked him WHY, WHY, WHY lol.
We figured out he had to increase this to make his form work but after doing so everything worked.
Funny, I ran into the same issue yesterday on a Zend Server CE install. Found the answer buried in a stack overflow question:
http://stackoverflow.com/questions/5077969/php-some-post-values-missing-but-are-present-in-php-input