最近在学习php使用phpstorm的时候,利用post方法提交form表单内容时,发现在响应的php页面获取不了表单输入框内容,然后找问题,先是改变提交方法利用get提交可行,确认不是代码问题,再想到前后端响应的问题,然后就找到phpstorm这款软件本身的问题上。百度了下找到了相关问题,各有借鉴,除去mac系统不说,主要是借鉴知乎答主木子林夕的方法,这里自己再写下用以交流学习。
我的HTML代码如下:
<form name="message" action="new.php" method="post" >
message:<input type="text" name="message" value="">
<input type="submit" value="submit">
</form>
我的php代码如下:
$message = $_POST["message"];
echo $message;
然后下面是我的是php7+apache2.4环境,我的Apache服务器工作目录更改为G:\computer\web\www(默认的根目录是htdocs)。在代码敲完之后发现上述问题。观察到谷歌地址栏的URL为http://localhost:63342/new.php,因PhpStorm默认使用的是自带服务器使用63342端口,而且服务器内部有问题,导致POST方法异常,它的配置可在菜单栏file-setting找到,如下图。
但是如果把项目放在Apache服务器的工作目录下,在地址栏输入localhost,此时使用的是Apache服务器,默认端口号为80,Apache服务器可以正常运行程序,页面获取内容正常。
这时问题就找出了,如果想继续利用phpstorm调试程序又想跑apache服务器的话就需要如下设置。
在PhpStorm菜单栏中,依次点击File-Settings-Build, Execution,Deployment-Deployment,再见下图。
上述完成后就解决问题了,注意看它的地址栏也发生变化了哦。