发布网友 发布时间:2022-04-06 04:10
共9个回答
懂视网 时间:2022-04-06 08:31
php无法接收post参数的解决办法:1、检查头信息“content-type”;2、使用【file_get_contents("php://input")】方法获取输入流。
推荐:《PHP视频教程》
php接口post数据接收不到参数原因
1.检查头信息content-type是不是为“content-type:application/x-www-form-urlencoded" 这种传输是以表单的方式提交数据php使用$_POST方式接受。
2.如果头信息content-type是不是为“content-type:application/json"这种传输是以json方式提交数据,php需要使用file_get_contents("php://input")获取输入流的方式接受
3、初学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服务器,相应的表单数据也可以正常接收了
热心网友 时间:2022-04-06 05:39
第一个页面
第二个 可以接受post 没错啊 你具体什么问题 我运行是可以接收的
热心网友 时间:2022-04-06 06:57
好吧,可能是你的这个文件不是welcome.php
就改一下你的代码
----------------------------------------
好吧我就再改一下代码吧;
index.htm
<form name = "name1" action="test.php" method="post">test.php
热心网友 时间:2022-04-06 08:32
你的代码无问题,从login.php跳转到welcome.php
login.php / login.html
<html>
<form action="welcome.php" method="post">
Enter your name: <input type="text" name="name" />
Enter your age: <input type="text" name="age" />
<input type="submit" />
</form>
</html>
welcome.php [只有下面两条语句,不要多写]
Welcome <?php echo $_POST["name"]; ?>.<br />
You are <?php echo $_POST["age"]; ?> years old!
运行即正确的值。
welcome.php最好改为:【规范】
<?php
echo "Welcome ".$_POST["name"]."<br/>";
echo "You are ".$_POST["age"]." years old!";
?>追问还是显示的和截图一下差不过的结果:
";
echo "You are ".$_POST["age"]." years old!";
?>
我觉得可能不是代码的问题。 我觉得高手换换思路看看能不能解决问题?
追答
我运行没有错,现在把文件传给你,你试一下我的代码。
welcome.php
<?php
echo "Welcome ".$_POST["name"]."<br/>";
echo "You are ".$_POST["age"]." years old!";
?>
热心网友 时间:2022-04-06 10:23
你不贴代码谁知道,你如果是from表单提交。就好好看看文档,你要是ajax 提交一样好看看
热心网友 时间:2022-04-06 12:31
从代码上看不出有什么问题
热心网友 时间:2022-04-06 14:56
咋一看没问题
printf($_POST)看看
热心网友 时间:2022-04-06 17:37
写的没错,是不是环境有问题?
热心网友 时间:2022-04-06 20:35
你在welcome.php页面接收不到值?追问对的 显示的结果是
Welcome .
You are years old!
没有HTML 输入的值