Подтвердить что ты не робот

Php Сообщение ограничено 1000 переменными

У меня есть большая форма, и я вижу из firebug, что все значения элементов отправляются правильно, но когда у меня print_r ($ _ POST), отображается только 1000 переменных. Мой max_post_size установлен в 25M, поэтому я знаю, что не проблема, и я искал через свой php.ini ключевые слова, такие как "post" и "max", и я ничего не нашел.

1000 - это только около 1/4 элементов, которые я передаю, так что это довольно большая проблема для меня, я очень ценю любую помощь, которую я могу получить.

4b9b3361

Ответ 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, чтобы проанализировать строку в переменных.