3

我有一张桌子,里面有 113 行。每行有 9 个单元格,其中有一个输入,就像在这个 shema 上一样:

row_1[td_1],row_1[td_2],[...],
row_2[td_1],row_2[td_2],[...],
row_3[td_1],row_3[td_2],[...]
[...]
row_113[td_1],row_113[td_2],[...]

问题:当我通过 POST 发送这些数据时,我只能将数据发送到 row_112 的第一个字段:

[...]  
["row_111"]=>
  array(9) {
    ["tytul"]=>
    string(15) "example element"
    ["pkwiu"]=>
    string(0) ""
    ["jm"]=>
    string(1) "2"
    ["ilosc"]=>
    string(1) "1"
    ["cena_brutto"]=>
    string(5) "74.00"
    ["vat"]=>
    string(3) "23%"
    ["vat_oryginalny"]=>
    string(2) "23"
    ["cena_netto"]=>
    string(5) "60.16"
    ["wartosc_brutto"]=>
    string(5) "74.00"
  }
  ["row_112"]=>
  array(1) {
    ["tytul"]=>
    string(15) "example element" <------
  }

为什么我没有收到完整的表单数据?

该示例可在此处获得:http: //pastebin.com/ahVqUetJ

在脚本之上,我只是简单地说:

<?php
    if(isset($_POST) && count($_POST) > 0) {
        var_dump($_POST);
        exit;
    }
?>
4

1 回答 1

5

那是因为他们为max_input_varsPHP 5.3.9添加了一个限制,这个限制是 1000。

从包含 111 行的表单中,您可以获得111*9=999 + 1 (1 from row_112) 结果1000变量。

变化php.ini

max_input_vars = 3000
suhosin.post.max_vars = 3000
suhosin.request.max_vars = 3000
suhosin.get.max_vars = 3000

或来自 php:

ini_set('max_input_vars', 3000);

或您想要的任何限制。

于 2013-05-14T07:03:35.990 回答