Around 100 rows of data are posted using $.post (JQuery) as JSON array. But for some reason not all rows are received.
The data looks more or less like this (contents are basically numbers and small strings):
rows = [["U", "0", "81949", 32 more...], ["U", "0", "81950", 32 more...] ..... ]
The way I'm sending the data is:
$.post(url+"callback=?", { data : rows }, function(){}, "json");
If I echo the number of rows (count($_POST)) received in my local version it shows "100", but at the production server it displays "25" (every time is the same amount).
Checking the request details in firebug, it shows correctly that all 100 has been sent.
I though it could be the PHP "post_max_size" value, but I had it set to "100M", which I think is by far enough.
I'm pretty sure it has to be with the server settings, but I'm out of ideas... Thanks in advance.
UPDATE:
Is your production server using suhosin? Suhosin is often a culprit for limiting the request sizes, both GET and POST. They have separate limits for POST and GET sizes (and in fact one affects the other from what I remember, thus both have to be increased).
Take a look at your phpinfo() and see if there's anything about suhosin there.
Suhosin values that may affect you:
(+ their equivalents for value and var length)
Also, if you're uploading files, then this too is limited by suhosin:
There is a maximum size for query data - see here. The problem could be one of 2. Either part of the data is being received, or PHP is removing data after a certain amount. See here for this setting in PHP.
There is already an accepted answer, but for those not using suhosin, the problem may be a low "max_input_vars" php setting. Mine was set to 1000 by default, which was not enough.