我目前正在运行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/
获取答案 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