Check whether the content-type of the header information is "content-type:application/x-www-form-urlencoded" This transmission is to submit data in the form of php Use $_POST method to accept. (Recommended learning: PHP video tutorial)
If the header information content-type is not "content-type:application/json", the transmission is in json method to submit data, PHP needs to use file_get_contents("php://input") to obtain the input stream. Accept
Beginners to PHP, use echo $_POST["variable"] and var_dump($_POST) Can't get post data.
The solution is as follows:
1. Find the php.ini configuration file, look for the enable_post_data_reading variable, make sure it is open, and remove the semicolon in front of the statement ( The statements with semicolons are comment statements):
2. Observe the address of your browser running php. You will find that the service port number used to open the browser in PhpStorm is 63342 (URL is localhost:63342/ Such form)
So the reason for the problem is: PhpStorm uses its own internal server by default, but does not use the apache server in xampp. The built-in server phpStorm uses port 63342, and there is a problem within the server, causing the POST method to be abnormal; and if you place the project in the working directory of the Apache server and enter localhost in the address bar, the Apache server is used at this time, and the default port number is 80, the Apache server can run the program normally.
Since there is a problem with PhpStorm’s internal server, the solution is to find a way not to use the internal server. There are two methods:
1. Create the project in the working directory of the Apache server, and directly enter the localhost address in the browser address bar each time it runs
2. If you still want to use Open the browser debugger in PhpStorm, which can be achieved by changing the configuration:
(1) First map the apache server directory to the local directory
The method is as follows:
1. Find the /xampp/apache/conf/httpd.conf file
2. Find the
3. In
# /phpworkspace/ : 其它磁盘上目录的别名, 就是你想映射过来的目录的别名 # "E:/phpworkspace/" : 这个是目录的绝对路径 Alias /phpworkspace/ "E:/phpworkspace/" # 现在就可以通过 //localhost/phpworkspace/ 访问到 E盘下phpworkspace文件夹里的项目了
4. Add a piece of code at the same level as
<Directory "E:/phpworkspace/"> AllowOverride All Options Indexes FollowSymLinks Includes ExecCGI Require all granted </Directory>
Complete. Now Restart Apache, visit: http://localhost/phpworkspace/ and that’s it
(2) Then in PhpStorm, find File->Settings->Build, Execution, Deployment->Deployment, It is initially empty. Click the green plus sign to add a local server. Just name it localhost. Select In place for Type:
After the creation is completed, the default settings under the Connection tab on the right have configured the server to port 80. Apache server under, that is, http://localhost
, change it to the working directory you mapped to the local project, and set the Local path under the Mappings tab to the directory of your local project.
At this time, click the browser from PhpStorm. The accessed URL no longer has the field 63342 port. Instead, the local Apache server is used, and the corresponding form data can be received normally.
The above is the detailed content of Reason why php cannot receive post data. For more information, please follow other related articles on the PHP Chinese website!