PHP加载页面,好像从未发送POST一样


PHP loading page as if POST never got sent

我目前正在运行PHP 5.3.9、Apache 2.2.22和Mandriva 2010.2。

我们曾经在一台旧的PHP4机器上运行,后来我把服务器迁移到了一个新的盒子里,现在一切都在工作(不幸的是,除了一个页面之外,还有一些遗留设置,比如register_globals!)。

这个页面有时会发送一个大的POST请求,当它通过x发送一些东西时(我不确定确切的数字),PHP脚本的行为就好像它根本没有收到任何$_POST一样,并给我未定义的错误。对于较小的POST,它的行为与正常(yay)类似。

POST示例(使用Opera Dragonfly抓取):

grid[153][1]    256663
grid[153][2]    629969
grid[153][3]    Some Name
grid[153][4]    PSSERVICE
grid[153][5]    PS Service (PSSERVICE)
grid[153][6]    
grid[153][7]    
grid[153][8]    
grid[153][10]   
grid[153][12]   
grid[153][13]   1
grid[153][14]   PAYMENT PENDING
grid[154][0]    2012-03-04
grid[154][1]    256343
grid[154][2]    630133
grid[154][3]    Some Other
grid[154][4]    PSSERVICE
grid[154][5]    PS Service (PSSERVICE)
grid[154][6]    0
grid[154][7]    0
grid[154][8]    0
grid[154][10]   0
grid[154][12]   0
grid[154][13]   0
grid[154][14]   JOB
.... etc,etc,etc.....
total_tech_val  2481.1118181818
total_parts 414.99
total_traveltime    152.44
total_adjustment    0
total_net_val   2481.1118181818

我尝试过在php.ini文件中增加限制,这里有几个例子:

post_max_size = 32M
max_execution_time = 60
max_input_time = 60
max_input_vars = 5000
memory_limit = 128M

是什么导致了这种奇怪的行为?

注意:输出中(除了未定义的错误外,E_ALL处于打开状态)或错误日志中没有给出任何错误。

编辑:在执行"var_dump($_REQUEST);"时,我得到了网格的第一部分[][],但缺少了其他所有内容。(进入元素[76][13]左右)。因此,它看起来好像达到了极限并被切断了

我在管理suhosin分机。

phpinfo可在http://jsfiddle.net/QVEK3/

确保php.ini配置文件没有限制发送的数据。

关注这些变量:

post_max_size = 32M
max_execution_time = 60
max_input_time = 60
max_input_vars = 5000
memory_limit = 128M
suhosin.post.max_vars = 3000
suhosin.post.max_array_index_length = 400
suhosin.post.max_array_depth = 200
suhosin.request.max_array_depth = 200
suhosin.request.max_array_index_length = 400
suhosin.request.max_vars = 3000