新手,最近在学习PHP,WAMP环境下碰到了同样的问题,装完PhpStorm后写了个表单页面和一个后台打印$_POST的测试程序,POST方法接收不到数据,GET和REQUEST可以,另外如果把项目直接放在Apache服务器的工作目录下,然后在地址栏输入localhost是可以正常运行的。前面有答主说到了端口问题,经过查找资料和同学讨论,发现确实是端口问题,我就再总结一下这个问题,最后补充个修改方法。
- 环境说明
- 问题分析
如果注意观察此时的URL,会发现在PhpStorm中打开浏览器使用的服务端口号是63342(URL是localhost:63342/这样的形式)
因此问题的原因在于:PhpStorm默认使用的是自带的内部服务器,这个服务器使用63342端口,而且服务器内部有问题,导致POST方法异常;而如果把项目放在Apache服务器的工作目录下,在地址栏输入localhost,此时使用的是Apache服务器,默认端口号为80,Apache服务器可以正常运行程序。
- 解决方法
1.将项目创建在Apache服务器的工作目录下,每次运行时在浏览器地址栏直接输入localhost地址
2.如果仍希望通过从PhpStorm中打开浏览器调试程序,可以通过更改配置实现:
(1)首先将项目转移到Apache服务器工作目录下(我这里是D:\www)
(2)然后在PhpStorm中,依次找到File->Settings->Build, Execution, Deployment->Deployment,初始是空的,点击绿色的加号添加本地服务器,名字localhost就好了,Type选择In place:
<img src="https://pic1.zhimg.com/639b1def5d369cade4d28fc6e0668fd8_b.png" data-rawwidth="1032" data-rawheight="538" class="origin_image zh-lightbox-thumb" width="1032" data-original="https://pic1.zhimg.com/639b1def5d369cade4d28fc6e0668fd8_r.png">![](https://pic1.zhimg.com/639b1def5d369cade4d28fc6e0668fd8_b.png)
创建完成后,右侧Connection标签下默认的设置已经将服务器配置为80端口下的Apache服务器:
<img src="https://pic3.zhimg.com/2ef13f71f17ce2ec7f2dd584305a217a_b.png" data-rawwidth="1017" data-rawheight="364" class="origin_image zh-lightbox-thumb" width="1017" data-original="https://pic3.zhimg.com/2ef13f71f17ce2ec7f2dd584305a217a_r.png">![](https://pic3.zhimg.com/2ef13f71f17ce2ec7f2dd584305a217a_b.png)
Mappings标签下的Local path设置成Apache服务器的工作根目录:
<img src="https://pic2.zhimg.com/393359510983f1ba8b8d71d93594ad21_b.png" data-rawwidth="1027" data-rawheight="370" class="origin_image zh-lightbox-thumb" width="1027" data-original="https://pic2.zhimg.com/393359510983f1ba8b8d71d93594ad21_r.png">![](https://pic2.zhimg.com/393359510983f1ba8b8d71d93594ad21_b.png)
此时从PhpStorm中点击浏览器,访问的URL已经没有了63342端口这个字段,而是使用了本地Apache服务器,相应的表单数据也可以正常接收了