SimBioT19
@SimBioT19
{{ user.about }}

Почему приходят не все данные?

Привет!
Отправляются post запросы с клиента на сервер и они достаточно большие (в плане много данных, но не размер).

С помощью Ajax отправляю только параметры id, и data, но последний это массив большой вложенности, содержащий другие массивы.
В целом больше 1000 элементов и вот тут и начинается проблема — почему-то на сервер перестал приходить id.
Смотрю в консоли — отправляется, на сервере — $_POST['id'] равен null.

И всё это как выяснилось из-за длины массива, т.к. если его уменьшить, то параметр id приходит.

Массив выглядит примерно так:
data[0][id]=1
data[0][name]=Название
data[0][deleted]=false
data[0][collapsed]=true
data[0][messages][0][replies][0][body]=Сообщение
data[0][messages][0][replies][0][title]=false
...


И проблема ещё большая это то, что точно так же как и параметр id перестали приходить все элементы массива, кроме 0 индекса.

То есть var_dump($_POST['data'][0]); // возвращает данные
А с индексом 1 уже
var_dump($_POST['data'][1]); // null

Как может такое происходить?

Размер POST запросов (таких мелких) же по сути ничем не ограничивается. Может ли быть это связано с настройками Nginx?
  • Вопрос задан
  • 1023 просмотра
Пригласить эксперта
Ответы на вопрос 3
@KTF
Попробуйте в php.ini увеличить значение настройки max_input_vars до 10000 или более.
Ответ написан
HeavenlyWaltz
@HeavenlyWaltz
не определился в жизни.
Попробуйте отправлять свои данные частично, разбейте массив на 2-4 части, и пакетами отправляйте. как уже сказали выше возможно есть ограничения, и я думаю они там не просто так.
Ответ написан
Комментировать
@mistergonza
PHP6 evangelist
В php.ini параметр max_input_nesting_level. Он как раз за глубину вложенности и отвечает.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы