PHP和(太)许多输入字段

时间:2012-04-02 13:36:11

标签: php arrays input

我有一个html表单,大约有1500个输入字段*(文本或隐藏)。 form.action是POST,每个输入字段都有一个唯一的名称(没有name = foo [])。

每当我在提交表单后尝试在PHP中打印$ _REQUEST的每个变量时,只打印前几个条目。实际上,$ _REQUEST变量只包含1001个项目(因此缺少大约500个字段)。

知道为什么会这样吗?

由于数据是通过post而不是get发送的,因此url-limit不是问题。所以我认为它与网络服务器的配置有关,而且请求太大了。但是将LimitRequestBody设置为0并不会改变结果中的任何内容。

就这个PHP数组使用的内存而言,我只读到大小仅受总体内存的限制,这应该足够了。 (每个密钥约为20个,每个值大约为6个)

我错过了什么吗?

*如果您想知道:导航包含大约750个条目,每个条目2个字段(一个位置用于排序,一个用于父级,如果嵌套)

4 个答案:

答案 0 :(得分:6)

自PHP 5.3.9起,有一个名为“max_input_vars”的新配置设置,它限制了输入变量的数量。默认设置为1000.同时检查是否安装了Suhosin,因为还有similar setting

虽然,我建议尽可能减少字段数。

答案 1 :(得分:2)

尝试覆盖php_flag max_input_vars。

添加到.htaccess文件或更改php.ini

php_flag max_input_vars 1500

还有一个嵌套标志

php_flag max_input_nesting_level 64

答案 2 :(得分:1)

也许你超过POST的大小?哟可以使用mime multipart,就像人们发布文件一样。

答案 3 :(得分:0)

检查你的php.ini配置中的post_max_size值 - 也许你已经超过了它?