I\'ve got a large form and I can see from firebug that all of the elements\' values are being sent properly, but when I print_r($_POST) there are only 1000 variables display
I had a similar situation; I could only POST the first 1000 elements of an array.
My solution was to implode()
the array into one long string and explode()
it on the server side.
json_encode()
could probably work as well.
Ok. I've figured out a solution using jquery
I did it like this
$("#single-form").submit(function(event) {
event.preventDefault();
var table_data = $(this).serialize();
console.log(table_data);
// ajax call to handle the data
}
serialize function will give the URL encoded strings of all form data and in PHP file just use the function parse_str to parse the string into variables.
I see what you did here.
max_input_vars, 1000
Introduced in order to prevent hash collision attack: http://www.phpclasses.org/blog/post/171-PHP-Vulnerability-May-Halt-Millions-of-Servers.html But failed in 5.3.9: http://www.phpclasses.org/blog/post/175-Another-Serious-Security-Bug-on-PHP-539.html So you should update to 5.3.10+ if that is problem.
I had that exact same problem of the 1000 variable limit using PHP v5.4.20. Even though the php.ini file did not contain any such 'max_input_vars' line, I simply found a convenient place to slot it in under the top [PHP] section, added the line 'max_input_vars = 10000', restarted Apache and everything was solved.