• -------------------------------------------------------------
  • ====================================

php表单提交时获取不到post数据的解决方法

建站指南 dewbay 2年前 (2022-01-12) 1034次浏览 已收录 0个评论 扫描二维码

博主运行 php 环境:windows+phpstorm+xampp

初学 php,用 echo $_POST[“variable”]和 var_dump($_POST) 都获取不到post 数据

解决方法如下:

1.找到 php.ini 配置文件,查找 enable_post_data_reading 变量,确保其打开状态,并且该语句前面的分号要去掉(有分号的语句是注释语句):

php表单提交时获取不到post数据的解决方法

2.观察你的运行 php 的浏览器地址,会发现在 PhpStorm 中打开浏览器使用的服务端口号是 63342(URL 是 localhost:63342/这样的形式)

因此问题的原因在于:PhpStorm 默认使用的是自带的内部服务器,却不使用 xampp 里面的 apache 服务器。phpStorm 这个内置服务器使用 63342 端口,而且服务器内部有问题,导致 POST 方法异常;而如果把项目放在 Apache 服务器的工作目录下,在地址栏输入 localhost,此时使用的是 Apache 服务器,默认端口号为 80,Apache 服务器可以正常运行程序。

 

既然 PhpStorm 内部服务器有问题,那解决方法就是想办法不使用内部服务器。有两种方法:
1.将项目创建在 Apache 服务器的工作目录下,每次运行时在浏览器地址栏直接输入 localhost 地址

2.如果仍希望通过从 PhpStorm 中打开浏览器调试程序,可以通过更改配置实现:

(1)首先将 apache 服务器目录映射到本地目录

做法如下:

1. 找到 /xampp/apache/conf/httpd.conf 文件

2. 找到 <IfModule alias_module> </ifModule> 代码块

3. 在<IfModule alias_module>的子级加上如下代码:

# /phpworkspace/ : 其它磁盘上目录的别名, 就是你想映射过来的目录的别名
# “E:/phpworkspace/” : 这个是目录的绝对路径
Alias /phpworkspace/ “E:/phpworkspace/”
# 现在就可以通过 //localhost/phpworkspace/ 访问到 E 盘下 phpworkspace 文件夹里的项目了

4.
在与 <ifModule alias_module> 同级的地方加上一段代码, 如下:

<Directory “E:/phpworkspace/”>
AllowOverride All
Options Indexes FollowSymLinks Includes ExecCGI
Require all granted
</Directory>

完工. 现在重启 Apache, 访问 : http://localhost/phpworkspace/ 就可以了

(2)然后在 PhpStorm 中,依次找到 File->Settings->Build, Execution, Deployment->Deployment,初始是空的,点击绿色的加号添加本地服务器,名字 localhost 就好了,Type 选择 In place:

php表单提交时获取不到post数据的解决方法
创建完成后,右侧 Connection 标签下默认的设置已经将服务器配置为 80 端口下的 Apache 服务器,即 http://localhost

将其改成你映射到本地项目的工作目录:

php表单提交时获取不到post数据的解决方法

Mappings 标签下的 Local path 设置成你本地项目的目录:

php表单提交时获取不到post数据的解决方法

此时从 PhpStorm 中点击浏览器,访问的 URL 已经没有了 63342 端口这个字段,而是使用了本地 Apache 服务器,相应的表单数据也可以正常接收了


露水湾 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php表单提交时获取不到post数据的解决方法
喜欢 (0)
[]
分享 (0)
关于作者:
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址