2016-05-31 3 views
0

У меня есть много

<input type="checkbox" name="course_id[]" value="xxx"/> 

в моей форме. Однако $_POST['course_id'] имеет только часть представленных значений.

Например, я отправляю course_id[]=1&course_id[]=2&course_id[]=3&course_id[]=4 но $_POST['course_id'] является ["1","2","3"].

В реальной ситуации более 1000 course_ids размещены, но только около 990 course_ids находятся в $_POST['course_id'].

Я захватил HTTP-пакет tshark и нашел, что все значения course_id [] отправлены на PHP.

версия РНР 5.5.9

+0

Вам не нужен tshark для этого, используйте заголовки http для firefox –

+0

@PedroLobito Я захватил пакет HTTP на сервере, чтобы гарантировать, что все значения были получены сервером. – Firas

+0

@JeffPuckettII echo json_encode ($ _ POST ['course_id']) – Firas

ответ

0

Я подозреваю, что вопрос вы работаете в это max_input_vars устанавливается в значение по умолчанию, 1000. Я думаю, что вы отправляете 10 других параметров, а затем ваш 990 course_ids максимальный предел 1000. Допустим это ограничение, и вы можете отправить более 1000 параметров.

Подробнее вы можете прочитать на странице руководства, http://php.net/manual/en/info.configuration.php#ini.max-input-vars.

Из инструкции:

Name   Default Changeable  Changelog 
max_input_vars 1000 PHP_INI_PERDIR Available since PHP 5.3.9. 

Сколько входных переменных могут быть приняты (ограничение применяется к $ _GET, $ _POST и $ _COOKIE суперглобальном отдельно). Использование этой директивы смягчает возможность атак на отказ в обслуживании, которые используют хеш-коллизии. Если имеется больше входных переменных, чем указано в этой директиве, выдается E_WARNING, а дополнительные входные переменные усекаются из запроса.

Держите цель этой настройки в виду, хотя:

Использование этой директивы уменьшает возможность атаки отказа в обслуживании.

0

В конфигурации PHP, ПОСТ ограничен до определенного размера. По количеству конечно, возможно, вы достигли этого предела. Вы можете проверить это значение post_max_size

Ссылка: http://php.net/manual/en/ini.core.php#ini.post-max-size

+0

Я увеличил число " post_max_size "до 8 раз больше, чем оригинал, но ситуация остается прежней. – Firas

+0

хорошо, вы ожидаете, что неконтролируемое значение придет? потому что он не будет отправлен. будет отправлено только проверенное значение – sonique

+0

Проблема заключается в том, что PHP оставляет некоторые проверенные значения, которые могут быть записаны tshark – Firas

Смежные вопросы