HTTP POST для IIS & PHP - ограничение пары ключ / значение?

Я пытаюсь отладить проблему в веб-приложении, которое отправляет данные в IIS (7.5), который передает их в приложение PHP (5.3.5) (через FastCGI).

Страница имеет динамическую форму, которая позволяет пользователю добавлять новые поля, поэтому количество пар ключ-значение, публикуемых страницей, варьируется (6 новых пар ключ-значение для каждой строки таблицы). Некоторые пользователи полностью сошли с ума и добавили МНОГО данных, что означает, что в некоторых случаях в теле POST содержится более 1000 пар ключ-значение.

Похоже, что IIS, FastCGI или PHP ограничивают количество пар ключ-значение в теле POST. Fiddler говорит мне, что браузер правильно отправляет все более 1000 пар, но если я использую PHP для немедленного отображения каждого ключа в $_POST, список уменьшится. Все опубликованные значения содержат данные, но я уверен, что ключи не должны быть удалены.

Поиск в этом вопросе не помогает, так что, надеюсь, у кого-то здесь будет опыт. Чтобы уточнить:

  1. Редизайн приложения может быть на столе, но только в крайнем случае
  2. объем POSTed данных по-прежнему невелик - весь запрос составляет около 50 КБ
  3. магическое число, кажется, составляет около 1000 (может быть, 1005, но тестирование немного свинья, поэтому я не могу сказать с полной уверенностью)

Любые мысли по этому поводу будут очень цениться!

2 ответа

Решение

В конце концов ответ пришел из этой темы

РНР max_input_vars была проблема

IIS имеет лимиты запросов, найденные из другого поста:

Есть ли предел для POST через HTTPS для IIS 7?

Похоже, вы делаете динамическую форму. Я предлагаю вам взглянуть на "Форму" в Документах Google и рассмотреть возможность обновления содержимого всей формы по частям на стороне сервера через AJAX. Это потребует большей пропускной способности и стабильности соединения, но это решит ваши 1000 или 1005 лимитов.

Другой подход - контролировать ожидания пользователя и устанавливать верхнюю границу.

Другие вопросы по тегам