Php Сообщение ограничено 1000 переменными
У меня есть большая форма, и я вижу из firebug, что все значения элементов отправляются правильно, но когда у меня print_r ($ _ POST), отображается только 1000 переменных. Мой max_post_size установлен в 25M, поэтому я знаю, что не проблема, и я искал через свой php.ini ключевые слова, такие как "post" и "max", и я ничего не нашел.
1000 - это только около 1/4 элементов, которые я передаю, так что это довольно большая проблема для меня, я очень ценю любую помощь, которую я могу получить.
Ответы
Ответ 1
Я вижу, что вы здесь сделали.
max_input_vars, 1000
Представлено для предотвращения атаки на столкновение хэшей:
http://www.phpclasses.org/blog/post/171-PHP-Vulnerability-May-Halt-Millions-of-Servers.html
Но не удалось в 5.3.9:
http://www.phpclasses.org/blog/post/175-Another-Serious-Security-Bug-on-PHP-539.html
Поэтому вы должны обновить до 5.3.10+, если это проблема.
Ответ 2
У меня была такая же проблема ограничения переменной 1000 с помощью PHP v5.4.20. Несмотря на то, что в файле php.ini не было такой строки "max_input_vars", я просто нашел удобное место, чтобы сложить его в верхнем разделе [PHP], добавив строку "max_input_vars = 10000", перезапустил Apache и все было решено.
Ответ 3
У меня была аналогичная ситуация; Я мог только POST первых 1000 элементов массива.
Мое решение состояло в implode()
массиве в одну длинную строку и explode()
на стороне сервера.
json_encode()
, возможно, тоже работает.
Ответ 4
Ok. Я вычислил решение с помощью jquery
Я сделал это так:
$("#single-form").submit(function(event) {
event.preventDefault();
var table_data = $(this).serialize();
console.log(table_data);
// ajax call to handle the data
}
serialize функция выдаст строки с кодировкой URL всех данных формы, а в файле PHP просто используйте функцию parse_str, чтобы проанализировать строку в переменных.