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

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37674858/article/details/78843291

观察你的运行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>的子级加上如下代码:

[plain] view plain copy
  1. # /phpworkspace/ : 其它磁盘上目录的别名, 就是你想映射过来的目录的别名  
  2. # "E:/phpworkspace/" : 这个是目录的绝对路径  
  3. Alias /phpworkspace/ "E:/phpworkspace/"  
  4. # 现在就可以通过 //localhost/phpworkspace/ 访问到 E盘下phpworkspace文件夹里的项目了  

4. 

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

[plain] view plain copy
  1. <Directory "E:/phpworkspace/">  
  2.     AllowOverride All  
  3.     Options Indexes FollowSymLinks Includes ExecCGI  
  4.     Require all granted  
  5. </Directory>  

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


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


创建完成后,右侧Connection标签下默认的设置已经将服务器配置为80端口下的Apache服务器,即http://localhost

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



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



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


展开阅读全文

php 无法获取post数据

10-25

前台代码:rn[code=html] rn Choose Search Type: rn rn Authorrn titlern ISBNrn rn rn Enter Search Trem: rn rn rn rn [/code]rn后台代码:rn[code=php]$searchtype = $_POST['searchtype'];rn$searchterm = trim($_POST['searchterm']);[/code]rn 如题,当form表单以post方式提交时,后台获取不到传递的数据。但如果把post换成get,后台就可以正常获取数据。不知什么原因?rnF12审查元素,点submit后的的信息如下:rnRequest URL:http://localhost:63342/PHP/results.phprn[color=#FF0000][b]Request Method:POST[/b][/color]rnStatus Code:200 OKrnRemote Address:127.0.0.1:63342rnResponse Headersrnview sourcernaccess-control-allow-credentials:truernaccess-control-allow-headers:acceptrnaccess-control-allow-headers:content-typernaccess-control-allow-headers:originrnaccess-control-allow-headers:authorizationrnaccess-control-allow-origin:http://localhost:63342rncontent-length:2106rnContent-type:text/html; charset=UTF-8rnserver:PhpStorm 2016.2.1rnvary:originrnX-Powered-By:PHP/7.0.12rnRequest Headersrnview sourcernAccept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8rnAccept-Encoding:gzip, deflate, brrnAccept-Language:zh-CN,zh;q=0.8rnCache-Control:max-age=0rnConnection:keep-alivernContent-Length:44rnContent-Type:application/x-www-form-urlencodedrnCookie:Phpstorm-e596b797=07c19a4d-d2ed-4587-97d7-d472f4a91180rnHost:localhost:63342rnOrigin:http://localhost:63342rnReferer:http://localhost:63342/PHP/04220957test.php?_ijt=a553en28un9o83crao16obik2urnUpgrade-Insecure-Requests:1rnUser-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36rnForm Datarnview sourcernview URL encodedrn[b][color=#FF0000]searchtype:authorrnsearchterm:Trnsubmit:Search[/color][/b]rn看样子是正常post数据成功了,但为啥后台获取不到呢 论坛

没有更多推荐了,返回首页