HTTP POST для IIS & PHP - ограничение пары ключ / значение?
Я пытаюсь отладить проблему в веб-приложении, которое отправляет данные в IIS (7.5), который передает их в приложение PHP (5.3.5) (через FastCGI).
Страница имеет динамическую форму, которая позволяет пользователю добавлять новые поля, поэтому количество пар ключ-значение, публикуемых страницей, варьируется (6 новых пар ключ-значение для каждой строки таблицы). Некоторые пользователи полностью сошли с ума и добавили МНОГО данных, что означает, что в некоторых случаях в теле POST содержится более 1000 пар ключ-значение.
Похоже, что IIS, FastCGI или PHP ограничивают количество пар ключ-значение в теле POST. Fiddler говорит мне, что браузер правильно отправляет все более 1000 пар, но если я использую PHP для немедленного отображения каждого ключа в $_POST, список уменьшится. Все опубликованные значения содержат данные, но я уверен, что ключи не должны быть удалены.
Поиск в этом вопросе не помогает, так что, надеюсь, у кого-то здесь будет опыт. Чтобы уточнить:
- Редизайн приложения может быть на столе, но только в крайнем случае
- объем POSTed данных по-прежнему невелик - весь запрос составляет около 50 КБ
- магическое число, кажется, составляет около 1000 (может быть, 1005, но тестирование немного свинья, поэтому я не могу сказать с полной уверенностью)
Любые мысли по этому поводу будут очень цениться!
2 ответа
В конце концов ответ пришел из этой темы
РНР max_input_vars
была проблема
IIS имеет лимиты запросов, найденные из другого поста:
Есть ли предел для POST через HTTPS для IIS 7?
Похоже, вы делаете динамическую форму. Я предлагаю вам взглянуть на "Форму" в Документах Google и рассмотреть возможность обновления содержимого всей формы по частям на стороне сервера через AJAX. Это потребует большей пропускной способности и стабильности соединения, но это решит ваши 1000 или 1005 лимитов.
Другой подход - контролировать ожидания пользователя и устанавливать верхнюю границу.