php post大量数据时发现数据丢失问题解决方法_php技巧

解决办法:

在php.ini中将max_input_vars调大改为5000就可以了

原因追查:

from的enctype="multipart/form-data"

php版本5.6.6

问题:部分POST数据接收不到

追源代码发现是php中max_input_vars配置造成的;

相关函数为rfc1867_post_handler,如果超过长度,则不会调用safe_php_register_variable来进行变量注册

相关堆栈如下

复制代码 代码如下:

#0  rfc1867_post_handler (
    content_type_dup=0x7ff85307a5f8 "multipart/form-data; boundary=", '-' <repeats 27 times>, "306141311912057",
    arg=0x7ff85307ccc0) at /tmp/php-5.6.2/main/rfc1867.c:681
#1  0x00000000007a4bb0 in sapi_handle_post (arg=<value optimized out>) at /tmp/php-5.6.2/main/SAPI.c:185
#2  0x00000000007ab72f in php_default_treat_data (arg=0, str=0x0, destArray=0x7ff85307ccc0)
    at /tmp/php-5.6.2/main/php_variables.c:399
#3  0x0000000000615c91 in mbstr_treat_data (arg=0, str=0x0, destArray=0x0) at /tmp/php-5.6.2/ext/mbstring/mb_gpc.c:69
#4  0x00000000007aa9fb in php_auto_globals_create_post (name=0x7ff852f474f0 "_POST", name_len=5)
    at /tmp/php-5.6.2/main/php_variables.c:741
#5  0x00000000007d63bb in zend_auto_global_init (auto_global=0x196c950) at /tmp/php-5.6.2/Zend/zend_compile.c:6832
#6  0x0000000000808a43 in zend_hash_apply (ht=0x1955cb0, apply_func=0x7d63a0 <zend_auto_global_init>)
    at /tmp/php-5.6.2/Zend/zend_hash.c:641
#7  0x00000000007aaa4e in php_hash_environment () at /tmp/php-5.6.2/main/php_variables.c:702
#8  0x000000000079bb25 in php_request_startup () at /tmp/php-5.6.2/main/main.c:1671
#9  0x00000000008a756d in main (argc=<value optimized out>, argv=<value optimized out>)
    at /tmp/php-5.6.2/sapi/fpm/fpm/fpm_main.c:1887

其中rfc1867_post_handler为php_session_rfc1867_callback

完~

时间: 2024-08-08 02:00:04

php post大量数据时发现数据丢失问题解决方法_php技巧的相关文章

php post大量数据时发现数据丢失问题解决方法

  这篇文章主要介绍了php post大量数据时发现数据丢失问题解决方法,原因是默认配置里的数据量配置太小造成的这个问题,修改一下配置即可,需要的朋友可以参考下 解决办法: 在php.ini中将max_input_vars调大改为5000就可以了 原因追查: from的enctype="multipart/form-data" php版本5.6.6 问题:部分POST数据接收不到 追源代码发现是php中max_input_vars配置造成的; 相关函数为rfc1867_post_han

PHP递归返回值时出现的问题解决办法_php技巧

我们在使用PHP递归时,会遇到各种各样的问题,其中比较令人苦恼的是有关PHP递归返回值时出现的问题.其实细细想想这是一个很简单的问题.可就是这个简单的问题困扰了半个下午.问题出在递归函数的返回值上. 这是开始写的: 复制代码 代码如下: <?php   function test($i)   {   $i -= 4;   if($i < 3)   {   return $i;   }   else    {   test($i);   }   }   echo test(30);   ?>

PHP中使用file_get_contents抓取网页中文乱码问题解决方法_php技巧

本文实例讲述了PHP中使用file_get_contents抓取网页中文乱码问题解决方法.分享给大家供大家参考.具体方法如下: file_get_contents函数本来就是一个非常优秀的php自带本地与远程文件操作函数,它可以让我们不花吹挥之力把远程数据直接下载,但我在使用它读取网页时会碰到有些页面是乱码了,这里就来给各位总结具体的解决办法. 根据网上有朋友介绍说原因可能是服务器开了GZIP压缩,下面是用firebug查看我的网站的头信息,Gzip是开了的,请求头信息原始头信息,代码如下: 复

PHP将Excel导入数据库及数据库数据导出至Excel的方法_php技巧

本文实例讲述了PHP将Excel导入数据库及数据库数据导出至Excel的方法.分享给大家供大家参考.具体实现方法如下: 一.导入 导入需要使用能读取Excel的组件,网上也有比较好的组件,这里分享我使用的:下载  提取码:vxyn.(注意两个文件有引用关系) <?php //传入要导入的Excel的文件名 function import_to_DB($filename) { require_once'reader.php'; $data = new Spreadsheet_Excel_Reade

php通过正则表达式记取数据来读取xml的方法_php技巧

本文实例讲述了php通过正则表达式记取数据来读取xml的方法.分享给大家供大家参考.具体分析如下: xml源文件如下: <?xml version="1.0 encoding="UTF-8"?> <humans> <zhangying> <name>张映</name> <sex>男</sex> <old>28</old> </zhangying> <t

跨浏览器PHP下载文件名中的中文乱码问题解决方法_php技巧

本文实例讲述了跨浏览器PHP下载文件名中的中文乱码问题解决方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: <?php $ua = $_SERVER["HTTP_USER_AGENT"]; $filename = "中文 文件名.txt"; $encoded_filename = urlencode($filename); $encoded_filename = str_replace("+", "%20",

php5.3提示Function ereg() is deprecated Error问题解决方法_php技巧

本文实例讲述了php5.3提示Function ereg() is deprecated Error问题解决方法.分享给大家供大家参考.具体实现方法如下: 一.问题: PHP 5.3 ereg() 无法正常使用,提示"Function ereg() is deprecated Error"是因为它长ereg 函数进行了升级处理,需要像preg_match使用/ /来规则了,当然也是php5.3把ereg给废掉的节奏了. PHP 5.3 ereg() 无法正常使用,提示"Fun

php实现修改新闻时删除图片的方法_php技巧

本文实例讲述了php实现修改新闻时删除图片的方法.分享给大家供大家参考.具体实现方法如下: //old_contents:待修改的公告内容; //$content:修改后的公告内容 $oldPic=array(); $nowPic=array(); preg_match_all("/\<IMG(.*?)src=\"(.*?)\">/",$old_contents,$match); if(!empty($match[2])){ foreach($match

PHP使用PDO操作数据库的乱码问题解决方法_php技巧

本文实例讲述了PHP使用PDO操作数据库的乱码问题解决方法.分享给大家供大家参考,具体如下: 当使用 PDO 连接操作数据库的时候,有时会出现:保存在数据库中的汉字为乱码.以文件为 UTF-8 格式,其解决方法如下: (1)实例化的对象直接执行 query() 方法或者 exec() 方法: <?php class DB { static public function getDB() { try { $_opts_values = array(PDO::ATTR_PERSISTENT=>tr