
搜检头信息content-type是否是为“content-type:application/x-www-form-urlencoded" 这类传输是以表单的体式格局提交数据php运用$_POST体式格局吸收。 (引荐进修:PHP视频教程)
假如头信息content-type是否是为“content-type:application/json"这类传输是以json体式格局提交数据,php须要运用file_get_contents("php://input")猎取输入流的体式格局吸收
初学php,用echo $_POST["variable"]和var_dump($_POST) 都猎取不到post数据。
解决要领以下:
1.找到php.ini 设置文件,查找enable_post_data_reading变量,确保其翻开状况,而且该语句前面的分号要去掉(有分号的语句是解释语句):
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:
建立完成后,右边Connection标签下默许的设置已将效劳器设置为80端口下的Apache效劳器,即http://localhost
将其改成你映照到当地项目的事情目次,Mappings标签下的Local path设置成你当地项目的目次。
此时从PhpStorm中点击浏览器,接见的URL已没有了63342端口这个字段,而是运用了当地Apache效劳器,响应的表单数据也能够一般吸收了
以上就是php吸收不到post数据缘由的细致内容,更多请关注ki4网别的相干文章!