PHP加载页面好像POST从未发送过

时间:2012-03-13 05:07:37

标签: php apache

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

我们曾经在旧的PHP4机器上运行,我已经将我们的服务器迁移到一个新的盒子,现在一切正常(不幸的是有一些遗留设置,如register_globals!),除了一个页面。

这个页面有时发送一个大的POST请求,当它发送一些超过x的东西时(我不确定确切的数字),PHP脚本的行为就像它从来没有收到任何$ _POST一样,并且给了我undefined错误。使用较小的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);”时,我得到了grid [] []的第一部分,但是缺少其他所有内容。 (达到元素[76] [13]左右)。所以它似乎达到了极限并被切断了。

我正在运行suhosin扩展程序。

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

获取

1 个答案:

答案 0 :(得分:1)

确保您的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