2012-06-14 79 views
3

我大约运行PHP 5.3.5版。我想启用SOAP,并使用webtatic回购升级到PHP版本5.3.13。一切都很好!除...POST的大小限制

我POST一些使用Ajax的数组。完整的数组由客户端发布,但似乎服务器只接收数组的前1000个元素。

我看着php.ini,并且看不到任何限制。

请指教。

+1

很可能你在PHP中遇到了一个限制,请参阅http://stackoverflow.com/questions/9673895/php-warning-unknown-input-variables-exceeded-1000(如果是这样,那么日志中应该有一个warnign ) –

+0

感觉很傻。找不到错误日志。目前,我不在生产,只是显示它们。 – user1032531

+0

使用Apache时,请检查主要的error_log - 您可能需要在Linux上进行root访问。除此之外,尝试从链接的答案中增加配置设置。 –

回答

4

我把这个标记为PHP Warning: Unknown: Input variables exceeded 1000的副本,但是OP有不同的问题。因此,这里的解决方案来自评论:

当PHP 5.3.9+正好返回1000个变量和/或数组元素时,您会遇到安全限制,请参阅php.ini:max-input-vars。在此之前的PHP版本可能遇到由suhosin施加类似限制引起的相同问题,请参阅its config

增加限制或更改传输数据的方式。

+0

谢谢。那个让我难倒了! – user1032531

+0

今天我有同样的问题,我不想增加max-input-vars的值。所以,我使用jquery来处理.serialize()表单,并只发送一个包含这个大字符串的输入到php。之后,我尝试了json_decode/parse_str和其他JSON库,都没有成功。然后,我试着mb_parse_str(),它工作。原始形式有3960个表格数据输入(大部分隐藏)。 – StackUnder

1

在php.ini中有以下配置指令:

; Maximum size of POST data that PHP will accept. 
; http://php.net/post-max-size 
post_max_size = 8M 
+0

它已经被设置在8M。改变它为10M只是踢和重新启动Apache,但没有改变。 – user1032531