Home >Backend Development >PHP Tutorial >PHP solves the problem of loss when posting large amounts of data

PHP solves the problem of loss when posting large amounts of data

*文
*文Original
2017-12-27 10:53:113195browse

How does php solve the problem of loss when posting large amounts of data? This article mainly introduces the solution to the problem of data loss when PHP posts a large amount of data. The reason is that the data volume configuration in the default configuration is too small. Just modify the configuration. I hope to be helpful.

Solution:

Just increase max_input_vars in php.ini and change it to 5000

Cause investigation:

enctype="multipart/form-data"

php version 5.6.6

Problem: Some POST data cannot be received

Follow up The source code was found to be 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

    rfc1867_post_handler (
    content_type_dup=0x7ff85307a5f8 "multipart/form-data; boundary=", &#39;-&#39; <repeats 27 times>, "306141311912057", 
    arg=0x7ff85307ccc0) at /tmp/php-5.6.2/main/rfc1867.c:681
    0x00000000007a4bb0 in sapi_handle_post (arg=<value optimized out>) at /tmp/php-5.6.2/main/SAPI.c:185
    0x00000000007ab72f in php_default_treat_data (arg=0, str=0x0, destArray=0x7ff85307ccc0)
    at /tmp/php-5.6.2/main/php_variables.c:399
    0x0000000000615c91 in mbstr_treat_data (arg=0, str=0x0, destArray=0x0) at /tmp/php-5.6.2/ext/mbstring/mb_gpc.c:69
    0x00000000007aa9fb in php_auto_globals_create_post (name=0x7ff852f474f0 "_POST", name_len=5)
    at /tmp/php-5.6.2/main/php_variables.c:741
    0x00000000007d63bb in zend_auto_global_init (auto_global=0x196c950) at /tmp/php-5.6.2/Zend/zend_compile.c:6832
    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
    0x00000000007aaa4e in php_hash_environment () at /tmp/php-5.6.2/main/php_variables.c:702
    0x000000000079bb25 in php_request_startup () at /tmp/php-5.6.2/main/main.c:1671
    0x00000000008a756d in main (argc=<value optimized out>, argv=<value optimized out>)
    at /tmp/php-5.6.2/sapi/fpm/fpm/fpm_main.c:1887

where rfc1867_post_handler is php_session_rfc1867_callback

Related recommendations:

php post reception problem.

PHP post get

##php post traversal related issues

The above is the detailed content of PHP solves the problem of loss when posting large amounts of data. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn