php表单提交的数据丢失怎么办-PHP问题

资源魔 21 0

php数据失落的处理方法:起首查看表单提交申请完好性;而后查看申请数据能否超越php或nginx限度;接着间接经过“file_get_contents('php://input')”猎取原始申请数据;最初修正max_input_var数目。

PHP 表单提交的数据失落成绩

明天正在解决用户 excel 导入时,遇到个小成绩

需要是这样的:用户导入 excel 后,用 PHPExcel 读取导入数据,衬着一个表单,用户经过查看表单,确认导入的数据完好性,最初正在确认入库。

企业微信截图_1594435806701.png

但因为用户 excel 导入的数据比拟多,表单衬着后有超越 6000 个 input, 而且提交时(POST)是间接采纳的表单提交,招致后盾只能读取后面一小局部数据。

跟踪

1.查看表单提交申请完好性

经过跟踪提交时的 http 申请,发现一切数据都失常提交。

2.查看申请数据能否超越 php 或 nginx 限度

经过查看 Request Headers 下的 Content-Length 发现只有仅为 218558 B 也就是 20KB 阁下。这一定没达到限定值。

3.间接经过 file_get_contents('php://input') 猎取原始申请数据

因为间接用 $_POST 猎取的数据只有一少局部,故间接用 php://input 猎取原始输出数据,打印进去时发现这类发送猎取的数据是完好的。

4.经过函数 parse_str 解析原始申请参数

当我把原始输出数据用 parse_str 解析时

...
$origin = file_get_contents('php://input');
parse_str($origin, $result);
var_dump($result);

我失去了一个谬误

Warning: parse_str(): Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini

到这里,我应该明确成绩出正在那里了。

5.修正 php.ini 中 max_input_var 数目

# 默许的 php.ini 设置装备摆设
# How many GET/POST/COOKIE input variables may be accepted
# max_input_vars = 10000

默许的设置装备摆设只容许申请(GET/POST/COOKIE)的最年夜 input 数为 1000 个。

适当的修正了 php.ini 中 max_input_var 的值后,成绩处理。

当然,最初是经过 ajax 提交 json 格局数据处理的,究竟结果修正 php.ini 的设置装备摆设仍是没有太理想!

完结

因为不注意到 php 另有这个限度,招致正在这儿翻车了

更多相干常识,请拜访PHP中文网!

以上就是php表单提交的数据失落怎样办的具体内容,更多请存眷资源魔其它相干文章!

标签: php php教程 php故障解决 php使用问题 数据丢失

抱歉,评论功能暂时关闭!