当表单包含大量输入时,表单数据被截断/丢失了吗?

Don*_*nut 3 html php forms codeigniter nginx

背景信息
我正在使用在Nginx上运行的CodeIgniter 2.1.4和PHP 5.3。我有一个HTML表单,表示本质上是同类数据的行。每个“行”都有几个<input />字段,每个字段具有相同的名称。这是一个简化的示例:

<input type="text" name="firstname[]" />
<input type="text" name="lastname[]" />
Run Code Online (Sandbox Code Playgroud)

因此,我有很多firstname[]输入,lastname[]输入等。提交表单后(操作是POST),我在像这样的控制器方法中检索数据(请注意,我正在使用CodeIgniter):

$firstnames = $this->input->post('firstnames');
$lastnames = $this->input->post('lastnames');
Run Code Online (Sandbox Code Playgroud)

这些变量是包含表单中相应行中的值的数组,从这里我对这些数据进行一些处理。

问题
当表单中的行数很大(几百)时,生成的PHP数组的大小与表单中的输入数不匹配 -例如,表单可能有200个firstname输入,但$firstname仅数组有167。此外,$lastname变量的大小也不同-166。

当表单中的元素数量较少时,一切正常。

我的理论是,我超出了堆栈中某处的某种最大大小设置或缓冲区,导致表单数据被截断。是否存在我不知道的“最大表单大小”的PHP或CodeIgniter或nginx设置?

对于它的价值,当同时使用两者application/x-www-form-urlencodedmultipart/form-data作为表单的内容类型时,我都看到了相同的行为。

我想念什么?

fic*_*scr 5

假设没有suhosin ...然后参见:max_input_varsmax_input_nesting_level

当人们想到PHP中的POST限制时,这些都是较新的且经常被忽略。

但是,如果它像您说的那样被截断,那么也许只是您的post_max_size

另外,这只是一个骗人的问题...

PHP max_input_vars 增加最大帖子大小 等。