Solution to the problem that php cannot obtain form data: 1. Find the php.ini configuration file and remove the semicolon before "enable_post_data_reading"; 2. Create the project in the working directory of the Apache server; 3. Open the browser debugger from within PhpStorm.
The operating environment of this article: Windows 7 system, phpstorm 2020 version, Dell G3 computer
php cannot obtain the form data what to do? The solution to the problem of not getting the post data when submitting the php form
The blogger runs the php environment: windows phpstorm xampp
Beginner to learn php, use echo $_POST["variable"] and var_dump ($_POST) cannot obtain 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 statement with a semicolon is a comment statement):
2. Observe the address of your browser running php, you will find that when you open the browser in PhpStorm, The service port number is 63342 (URL is in the form of localhost:63342/)
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 open the browser from PhpStorm Debugging the program 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 /xampp/apache/ conf/httpd.conf file
2. Find the
3. Add the following code to the child of
# /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 and visit: http://localhost/ phpworkspace/ is fine
(2) Then in PhpStorm, find File->Settings->Build, Execution, Deployment->Deployment. It is initially empty, click the green one. Add the 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 already set the server Configure it as the Apache server under port 80, that is, http://localhost
. Change it to the working directory you map to the local project:
The Local path under the Mappings tag is set to the directory of your local project:
At this time, click the browser from PhpStorm and visit The URL no longer has the field 63342 port, but uses the local Apache server, and the corresponding form data can also be received normally
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of What should I do if php cannot obtain form data?. For more information, please follow other related articles on the PHP Chinese website!