记一次php后台post数据接收不全错误【max_input_vars】

今天有个接口,参数很多,发现接收到的数据不全。

用$_POST打印未打印出id参数,第一反映是数据被截断,post数据走的是http的body部分,怀疑是nginx服务器部分作的限制,发现nginx body参数

client_max_body_size 50m;

给的限制是50M,不可能超。

后经查证原因得知,是max_input_vars配置问题
官方文档解释如下:

  • max_input_vars

接受多少 输入的变量(限制分别应用于 $_GET$_POST$_COOKIE超全局变量) 指令的使用减轻了以哈希碰撞来进行拒绝服务攻击的可能性。 如有超过指令指定数量的输入变量,将会导致 E_WARNING 的产生, 更多的输入变量将会从请求中截断。

php默认接收参数数量小于1000个,如果要改变需通过配置 php.ini文件来修改,代码中 ini_set()方式执行无效。

你可能感兴趣的:(php)