【发布时间】:2012-04-16 04:14:03
【问题描述】:
我有一个大约 1500 个输入字段*(文本或隐藏)的 html 表单。 form.action 是 POST 并且每个输入字段都有一个唯一的名称(没有 name=foo[])。
每当我在提交表单后尝试在 PHP 中打印 $_REQUEST 的每个变量时,只会打印前几个条目。实际上,$_REQUEST 变量只包含 1001 个项目(因此大约缺少 500 个字段)。
知道为什么会这样吗?
由于数据是通过 post not get 发送的,所以 url-limit 不是问题。所以我认为它与网络服务器的配置有关,并且请求太大了。但是将 LimitRequestBody 设置为 0 并不会改变结果中的任何内容。
就这个 PHP 数组使用的内存而言,我只看到大小仅受整体内存的限制,应该绰绰有余。 (key每个约20chars,value每个约6chars)
我错过了什么吗?
*如果您想知道:导航包含大约 750 个条目,每个条目有 2 个字段(一个位置用于排序,一个位置用于嵌套如果父级)
【问题讨论】:
-
你需要 1500 个输入字段来做什么?
-
您使用什么版本的 PHP 和 Web 服务器?
-
如何将表格分成几部分......无论如何,1500 太多了,无法一次更改。它对用户和服务器都更好。
-
尝试增加 php.ini 中的 post_max_size (php.net/manual/en/ini.core.php#ini.sect.data-handling)
-
也许你可以做一些客户端优化。您只能发布编辑/更改的输入字段,而不是发布所有内容。