Home >Backend Development >PHP Tutorial >How to solve the data loss problem when posting a large amount of data in php_PHP tutorial
This article mainly introduces the solution to the problem of data loss when php post a large amount of data. The reason is that in the default configuration This problem is caused by too small data volume configuration. Just modify the configuration. Friends in need can refer to it
Solution:
Just increase max_input_vars in php.ini and change it to 5000
Reason investigation:
from enctype="multipart/form-data"
PHP version 5.6.6
Problem: Some POST data cannot be received
Traced the source code and found that it was caused by the max_input_vars configuration in php;
The relevant function is rfc1867_post_handler. If the length is exceeded, safe_php_register_variable will not be called to register the variable
The relevant stack is as follows
The code is as follows:
#0 rfc1867_post_handler (
content_type_dup=0x7ff85307a5f8 "multipart/form-data; boundary=", '-'
arg=0x7ff85307ccc0) at /tmp/php-5.6.2/main/rfc1867.c:681
#1 0x00000000007a4bb0 in sapi_handle_post (arg=
#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
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=
at /tmp/php-5.6.2/sapi/fpm/fpm/fpm_main.c:1887
Where rfc1867_post_handler is php_session_rfc1867_callback
End~