资讯专栏INFORMATION COLUMN

PHP 表单提交的数据丢失问题

wwq0327 / 1158人阅读

摘要:但由于用户导入的数据比较多,表单渲染后有超过个,并且提交时是直接采用的表单提交,导致后台只能读取前面一小部分数据。跟踪查看表单提交请求完整性通过跟踪提交时的请求,发现所有数据都正常提交。适当的修改了中的值后,问题解决。

今天在处理用户 excel 导入时,遇到个小问题

需求是这样的:用户导入 excel 后,用 PHPExcel 读取导入数据,渲染一个表单,用户通过查看表单,确认导入的数据完整性,最后在确认入库。

但由于用户 excel 导入的数据比较多,表单渲染后有超过 6000input, 并且提交时(POST)是直接采用的表单提交,导致后台只能读取前面一小部分数据。

跟踪

1.查看表单提交请求完整性

通过跟踪提交时的 http 请求,发现所有数据都正常提交。

2.查看请求数据是否超过 phpnginx 限制

通过查看 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.inimax_input_var 数量

# 默认的 php.ini 配置
# How many GET/POST/COOKIE input variables may be accepted
# max_input_vars = 10000

默认的配置只允许请求(GET/POST/COOKIE)的最大 input 数为 1000 个。

适当的修改了 php.inimax_input_var 的值后,问题解决。

当然,最后是通过 ajax 提交 json 格式数据解决的,毕竟修改 php.ini 的配置还是不太理想!

结束

由于没有留意到 php 还有这个限制,导致在这儿翻车了,特别感谢 @freyo 的指点。你是我们的大神

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26059.html

相关文章

  • 2018 PHP面试真题(包括详细解析)

    摘要:以下题目和解析分别来源于我的新书程序员面试笔试宝典程序员面试笔试真题解析。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。真题获得实例化对象所属类名字的函数是。 以下题目和解析分别来源于我的新书《PHP程序员面试笔试宝典》、《PHP程序员面试笔试真题解析》。 1、PHP常考基础 1、PHP与ASP、JSP有什么区别?ASP全名Active Server Page...

    pubdreamcc 评论0 收藏0
  • HTML 简单归纳 -- 前端知识

    摘要:前端是一个全球性的计算机互联网络,中文名称因特网国际互联网网际网等等提供的服务等等基本实现技术分组交换原理信息在上被分成许多的小数据包分组进行传输,到达目的地后将数据包组装成信息协议簇和的关系是运行在上最流行的应用之一,为提供了网络环境web前端 Internet:是一个全球性的计算机互联网络,中文名称因特网、国际互联网、网际网等等; Internet提供的服务:http、ftp、Telne...

    tuomao 评论0 收藏0
  • Laravel 5系列教程六:表单 Forms

    摘要:不难发现,的还默认为我们生成一个的表单,这个是默认对表单提交的一点安全支持。在表单提交的时候,会自动检查这个是否与保存在中的一致,如果不一致,那就直接跳转回远页面,不允许我们提交数据。 原文来自:https://jellybool.com/post/programming-with-laravel-5-laravel-forms-input 免费视频教程地址 https://larav...

    fancyLuo 评论0 收藏0
  • WEB安全Permeate漏洞靶场挖掘实践

    摘要:简介最近在逛码云时候发现靶场系统感觉界面和业务场景设计的还不错所以过来分享一下同时也是分享一下我平时挖掘漏洞的一些思路吧这篇文章里虽然只简单介绍其中三种漏洞类型,但也是想是一个抛转引玉吧给安全新手提供一些挖掘思路下载地址地址国内地址这篇文章 简介 最近在逛码云时候发现permeat靶场系统,感觉界面和业务场景设计的还不错.所以过来分享一下. 同时也是分享一下我平时挖掘漏洞的一些思路吧,...

    罗志环 评论0 收藏0

发表评论

0条评论

wwq0327

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<