zoukankan      html  css  js  c++  java
  • php 表单post提交大量数据发生数据丢失或减少的解决方法

    最近在项目中,出现一个奇怪的现象,有一个大form里面有上千个input,提交的时候,老是发现post过来的数据不完整,一开始还怀疑是html 表单名称有冲突,排除掉了。
    然后,网上找了一堆,php.ini 的post_max_size和upload_max_filesize都设置了很大的值,没用,nginx的client_max_body_size 500m;加到了那么大的值,也没用。
    最后终于google到办法:原来PHP从5.3.9开始增加一个变量 max_input_vars 用来限制提交的表单数量

     该值默认情况下是1000 , 不能满足有1000个以上输入项的需求,所以得在php.ini 里面加上更大的值如:
    max_input_vars = 5000,重启服务器。

    如何避免这样的问题

    1. 自然是想办法增加 max_input_vars 的大小,但这样有个难以逃避的问题,就是前端传过来数据的个数你是没办法知道应该是多少的
    2. 减少 post 的字段,先 js json_encode 一下,再用一个大字段传过来
    3. 使用 post 的 body 将数据传过来;在 php 端使用 file_get_contents('php://input') 来获取之后在 json_decode;我觉得这中方法比较可取,因为 restful 设计里面就采用的这种方法。
  • 相关阅读:
    两小时入门Docker
    Django之Model操作
    Django-channels 实现WebSocket实例
    Python项目中的单元测试
    將Python打包成 exe可执行文件
    CORS 跨域
    购物车模块
    登陆模块
    Git 基本用法
    Django ORM性能优化 和 图片验证码
  • 原文地址:https://www.cnblogs.com/-mrl/p/14273146.html
Copyright © 2011-2022 走看看