PHP $_POST 限制
Posted
技术标签:
【中文标题】PHP $_POST 限制【英文标题】:PHP $_POST limit 【发布时间】:2013-10-07 03:35:42 【问题描述】:我通过 jQuery $.post()
从 jscript 向 php 发送 JSON array
。它是一个 3-4 位数字的表格,大小为 174 x 15(行 x 列)。检查 XHR 帖子时。我可以看到所有值,例如
pdata[0][] dates
pdata[0][] Fund B1
pdata[0][] Fund B2
pdata[0][] Fund B3
pdata[0][] Fund B4
pdata[0][] Fund B5
pdata[0][] Fund B6
pdata[0][] Fund B7
pdata[0][] Fund B8
pdata[0][] Fund B9
pdata[0][] Fund B10
pdata[0][] Fund B11
pdata[0][] Fund b12
pdata[0][] Fund B13
pdata[100][] 4/30/2005
pdata[100][] -3.16%
pdata[100][] -3.54%
pdata[100][] -0.52%
请注意,第一个索引是按字母顺序排序的,而不是按数字排序的。然后我在 PHP 中将该数组处理为
$pdata = $_POST['pdata'];
print_r($pdata);
问题是大约一半的数据丢失了,$pdata
只有大约 72 个元素(数组)而不是 174 个。我以为它与 PHP post_max_size
相关,并将其增加到 30Mb
,但它没有帮助。
还有什么可以截断数组?
谢谢。
【问题讨论】:
谢谢大家。将 max_input_vars 增加到 15000 可以解决问题。通过 POST 传递数千个变量是个好主意吗?在服务器上传递一个巨大的 JSON 字符串并在 PHP 中解码会更好吗? 【参考方案1】:max_input_vars
是您要查找的指令。
默认为 1000,这与您的观察结果相匹配(“大约 72 个元素”=> 类似于 71x14 + 6
)。
【讨论】:
【参考方案2】:我遇到了同样的问题,为了解决这个问题,我将此行添加到我的 htaccess 文件中。
php_value max_input_vars 15000
您可以将 15000 值更改为适合您需要的任何值。
【讨论】:
【参考方案3】:增加
suhosin.post.max_vars = 2048
suhosin.request.max_vars = 2048
在 php.ini 上并重启服务器
您也可以将其添加到您的 .htaccess 文件中(在这种情况下无需重新启动服务器) 但为此你必须 检查是
suhosin.perdir = "p"
在 php.ini 上设置
您可以使用检查 php.ini 配置默认变量
phpinfo();
【讨论】:
【参考方案4】:我建议你增加php.ini
中的关注值
post_max_size = 200M
upload_max_filesize = 200M
您可以设置适合您需要的值。
注意:更改php.ini
中的设置后需要重启服务器。
【讨论】:
以上是关于PHP $_POST 限制的主要内容,如果未能解决你的问题,请参考以下文章