在一个正式项目中操作人员提交239个产品信息进行保存,但是系统却提示没有提交239个产品,于是开启错误信息,显示如下:
Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini
打印下收到的数组,实际上只拿到了112个数据。但是php.ini默认可以接收的表单变量max_input_vars 的值是1000,我连239个都提交不上去,其实原因是每个数据本身还是对象,php认为提交的对象本身一个字段也是一个表单变量。
以下为测试demo:
html:
var prddata = new Array();
for(var i = 0; i < 239; i++) {
var data = {
pid: 0,
offer: 1,
bcode: 1804071680696,
thrsn: '--',
pname: '',
salestat: 10,
issup: 0,
bid: '',
mid: '',
}
prddata.push(data)
}
$.post("test.php",{sid:3816,prddata:prddata}, function(data, status) {
});php:
<?php $prddata=$_POST['prddata']; var_dump($prddata);
解决方法其实非常简单,只需要将prddata的值转换为json发送到后端,这样提交只算1个表单变量,或者你可以设置max_input_vars 的最大值,但是并不推荐,max_input_vars 值太大危害就是影响内存
逛公众号文章看到文章"php实现事件监听与触发的方法,你用过吗?",我就好奇了,php又不是asp.net的webform,哪里来的服务端事件监听。于是学习了一波。先看下监听类:class Event { /** &nbs...
上篇文章已经讲解arrayacces的原理,现在来讲解下arrayaccess的实际应用。一个大型的互联网项目中必然会存在各种配置信息,例如多种数据库信息:mysql,tidb,mongodb,redis,某个业务模块单独的配置信息如比例,额度等等,那么该如何治理配置信息?PHP项目中大部分的框架都...
经常我们下载国外资源容易被墙,可以通过php脚本获取远程文件流然后输出给我们的浏览器来下载。<?php //设置下载文件的url $url = 'https://mirrors.huaweicloud.com/ubuntukylin/ubuntukylin-19....
第一次听说端口复用是在mixphp最新版本中发现的,mixphp启动监听9501端口,现在作者说可以多开几个进程来执行mixphp,我心里想了下再启动不是会端口冲突嘛,但是却没有问题,于是下载mixphp的源码解读,原来是启动http服务器使用new Co\Http\Server('0.0....
elasticsearch的操作都是基于http协议的,已经有现成的php类库,composer安装即可。{ "require": { &...
php生成器的方法getReturn获取生成器迭代完成后的返回值,当生成器迭代完成会将生成器的返回值返回,因此如果迭代器未进行迭代是获取不到值的,如果你没有return值则返回null,参考代码:<?php function G1() { &nbs...