PHP报错:Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars

一、场景

  • POST 方式传参数到接口
  • 报错:Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0
  • 翻译:警告:未知:输入变量超过1000。要增加限制,请更改php.ini中的max_input_vars。在第0行的未知位置

二、原因

  • 意思就是输入(提交)的变量超过默认 1000 个了,如下:
  • 报错:POST 的参数超过1000(>1000) 1个page + 1个limit + 999个order_no = 1001
page:1
limit:10
order_no:["orderNo1", 'orderNo2', "...", "orderNo999"]
  • 不报错:POST的参数格式不超过1000(<=1000) 1个page + 1个limit + 998个order_no = 1000
page:1
limit:10
order_no:["orderNo1", 'orderNo2', "...", "orderNo998"]

三、解决

1、修改 php.ini 中的 max_input_vars(不建议)

  • 修改 php.ini 中的 max_input_vars,增加到 尽量大的值,比如 9000
  • 重启 php

2、JSON.stringify方法把数组参数改为 Json的形式传到后台(建议)

  • JSON.stringify方法把传的数组改为json字符串,后台再把 json字符串转为数组即可。
  • 【修改前】
<script>
let field = {};
field.page = 1;
field.limit = 10;
field.order_nos = ['order123', 'order456', '...', 'order5999'];

$.ajax({
    url: '/index/index/test',
    data: field,
    type: 'POST',
    success: function(res) {
        //TODO something
    },
    error: function(res) {
        alert('数据异常');
    }
});
</script>
  • 【修改后】
<script>
let field = {};
field.page = 1;
field.limit = 10;
field.order_nos = JSON.stringify(['order123', 'order456', '...', 'order5999']);

$.ajax({
    url: '/index/index/test',
    data: field,
    type: 'POST',
    success: function(res) {
        //TODO something
    },
    error: function(res) {
        alert('数据异常');
    }
});
</script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值