Home PHP Framework ThinkPHP What should I do if thinkphp5 post cannot get the value?

What should I do if thinkphp5 post cannot get the value?

Dec 06, 2022 am 09:29 AM
thinkphp5

thinkphp5 post cannot get the value because TP5 uses the strpos function to find the app/json string in the content-type value of the Header. The solution is to set the content-type value of the Header to app/json. That’s it.

What should I do if thinkphp5 post cannot get the value?

The operating environment of this tutorial: Windows 7 system, ThinkPHP version 5, Dell G3 computer.

thinkphp5 What should I do if the post cannot get the value?

Solution to the problem that ThinkPHP5 cannot receive the Json parameters passed by the client Post

I have been learning API development during this period, and I have taken a course from the Internet and am following it. Just yesterday, I once again encountered the situation where the lecturer kept me debugging for half a day. The problem I encountered was that when I used Postman to test a certain Post interface of the API, no matter how I sent the request, it always prompted me that the parameter verification failed. During my debugging process, One time, I used the method of passing parameters through the Body table, and the API magically worked. So I judged that there was a problem with the Json transmission before, so I searched all over the Internet, but there was no solution [but Get two knowledge points and put them in End of article].

Regarding the problem of TP5, if Du Niang couldn’t do it, she could only check the source code, so I followed the error bit by bit and finally discovered the problem~

It turns out that TP5 uses the strpos function to find the app/json string in the content-type value of the Header, which means that you must set the content-type value of the Header to app/json, otherwise TP5 will not think you have passed it in. is a Json parameter and set the value to Request::post to be empty.

The above solves the problem that TP5 cannot receive the Json parameters passed by the client Post.

Two knowledge points:

  • Data php whose content-type is "application/json" cannot be directly recognized, so the $_POST array is empty. Solution: We only need to use $GLOBALS['HTTP_RAW_POST_DATA'] to take out the original data, and then json_decode it [Using this method, you need to set the always_populate_raw_post_data value in php.ini to On][$HTTP_RAW_POST_DATA, which contains the original data of POST data. But this is not a superglobal variable, to use it in a function it must be declared global , or use $GLOBALS['HTTP_RAW_POST_DATA'] instead. ];

  • You can use file_get_contents('php://input') instead of the above method to directly obtain the incoming Json parameters [When I read the TP5 source code, I found that they also use This method to obtain the initial value].

Recommended learning: "thinkPHP Video Tutorial"

The above is the detailed content of What should I do if thinkphp5 post cannot get the value?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What should I do if I get an error when deploying thinkphp5 in Pagoda? What should I do if I get an error when deploying thinkphp5 in Pagoda? Dec 19, 2022 am 11:04 AM

Solution to the error reported when deploying thinkphp5 in Pagoda: 1. Open the Pagoda server, install the php pathinfo extension and enable it; 2. Configure the ".access" file with the content "RewriteRule ^(.*)$ index.php?s=/$1 [QSA ,PT,L]”; 3. In website management, just enable thinkphp’s pseudo-static.

What should I do if thinkphp5 post cannot get the value? What should I do if thinkphp5 post cannot get the value? Dec 06, 2022 am 09:29 AM

thinkphp5 post cannot get a value because TP5 uses the strpos function to find the app/json string in the content-type value of the Header. The solution is to set the content-type value of the Header to app/json.

How to get the requested URL in thinkphp5 How to get the requested URL in thinkphp5 Dec 20, 2022 am 09:48 AM

Methods for thinkphp5 to obtain the requested URL: 1. Use the "$request = Request::instance();" method of the "\think\Request" class to obtain the current URL information; 2. Use the built-in helper function "$request-> url()" to obtain the complete URL address including the domain name.

What should I do if thinkphp5 url rewriting fails? What should I do if thinkphp5 url rewriting fails? Dec 12, 2022 am 09:31 AM

Solution to thinkphp5 url rewriting not working: 1. Check whether the mod_rewrite.so module is loaded in the httpd.conf configuration file; 2. Change None in AllowOverride None to All; 3. Modify the Apache configuration file .htaccess to "RewriteRule ^ (.*)$ index.php [L,E=PATH_INFO:$1]" and save it.

How to remove thinkphp5 title bar icon How to remove thinkphp5 title bar icon Dec 20, 2022 am 09:24 AM

How to remove the thinkphp5 title bar icon: 1. Find the favicon.ico file under the thinkphp5 framework public; 2. Delete the file or choose another picture to rename it to favicon.ico and replace the original favicon.ico file.

What should I do if thinkphp5 prompts that the controller does not exist? What should I do if thinkphp5 prompts that the controller does not exist? Dec 06, 2022 am 10:43 AM

Solution to thinkphp5 prompting that the controller does not exist: 1. Check whether the namespace in the corresponding controller is written correctly and change it to the correct namespace; 2. Open the corresponding tp file and modify the class name.

How to query yesterday's data in ThinkPHP5 How to query yesterday's data in ThinkPHP5 Dec 05, 2022 am 09:20 AM

How to query yesterday's data in ThinkPHP5: 1. Open ThinkPHP5 related files; 2. Query yesterday's data through the expression "db('table')->whereTime('c_time', 'yesterday')->select();" Can.

How to set error prompts in thinkphp5 How to set error prompts in thinkphp5 Dec 07, 2022 am 10:31 AM

How to set error prompts in thinkphp5: 1. Enter the public folder in the project root directory and open the index.php entry file; 2. View the comments on the debug mode switch; 3. Adjust the value of the "APP_DEBUG" constant to true to display Error message prompt.

See all articles