PHP为啥接收不到POST 的数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP为啥接收不到POST 的数据?相关的知识,希望对你有一定的参考价值。
<form name = "name1" 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>
Welcome <?php echo $_POST["name"]; ?>.<br />
You are <?php echo $_POST["age"]; ?> years old!
------------------------------------------
<html>
<body>
<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>
</body>
</html>
-------------------------
<html>
<body>
Welcome <?php echo $_POST["name"]; ?>.<br />
You are <?php echo $_POST["age"]; ?> years old!
</body>
</html>
第一个页面
第二个 可以接受post 没错啊 你具体什么问题 我运行是可以接收的
追问
Enter your name:
Enter your age:
在welcome.php 中写入
Welcome .
You are years old!
写进去就好了 是没跳转链接吗
Welcome .
You are years old!
这样吗 ? 因为我是自学的 不知道对不对
对的 不写body和html也没事的 试试可以不 你写好了welcome.php 之前的那个页面按提交就可以进入这个页面了 会显示信息了
追问提交之后过来就变成
去掉之后的结果就变成这样了
你用记事本那加上去 我们用编程软件自带了 你最好下个软件方便点 txt那只有老老实实来 不过新学的话建议还是老实多写写 养成好习惯
追问我就是用两个记事本写的 HTML 和PHP的代码都在上门了
输出不出来结果 很无语
加了 body和html 的结果是
Welcome .
You are years old!
没加的结果是
那只能说是不是环境问题了,这个完全没问题。
追问怎么检测环境?
追答你自己装的吗?是linux还是window 我是apache+php+mysql+phpadmin 你里面的配置文件对吗 有配置吗
追问WINDOW XAMPP
参考技术A好吧,可能是你的这个文件不是welcome.php
就改一下你的代码
----------------------------------------
好吧我就再改一下代码吧;
index.htm
<form name = "name1" action="test.php" method="post">Enter your name: <input type="text" name="name" />
Enter your age: <input type="text" name="age" />
<input type="submit" />
</form>
test.php
You are <?php echo $_POST["age"]; ?> years old!
一样的结果 还是不可以。 是不是环境问题 ?
追答你输出下面的页面
info.php
<?php phpinfo();?>看一下能不能输出你的PHP信息;
如果不能,说明环境是有问题的;
---------------------
还有一个问题就是打开方法的问题;
如果是本地的话;地址是
http://localhost/info.php
不是d:/php/inof.php这样子的;这种方法是不会运行PHP的;
结果:
和明确的就是环境问题, 求解决
还有一个问题就是打开方法的问题;
如果是本地的话;地址是
http://localhost/info.php
不是d:/php/inof.php这样子的;这种方法是不会运行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!";
?>
php中$_POST接收不到参数问题
问题描述:PHP可以接收_GET、_SERVER、_COOKIE等参数,php://input可以读取没有处理过的POST数据,独独_POST接收不到post参数。
php://input可以读取没有处理过的POST数据。相较于$HTTP_RAW_POST_DATA而言,它给内存带来的压力较小,并且不需要特殊的php.ini设置。php://input不能用于enctype=multipart/form-data”
不过我通过代码对比总结,得出结果如下:
1.Coentent-Type为application/x-www-data-urlencoded和multipart/form-data两种情况下,PHP会将请求数据传递给$_POST
2.PHP不能识别的Content-Type类型的时候,会将http请求包中相应的数据填入变量$HTTP_RAW_POST_DATA.
3, 只要Content-Type不为multipart/form-data的时候,PHP将不会把http请求body体数据填入php://input,否则其它情况都会。填入的长度,由Content-Length指定。
4,只有Content-Type为application/x-www-data-urlencoded时,php://input数据才跟$_POST数据相一致。
5,php://input与HTTPRAWPOSTDATA??.相同,但是php://input比??HTTP_RAW_POST_DATA更效率,并不需要配置php.ini
6.http请求的,GET形式下,body体为空。
修改php.ini
enable_post_data_reading = On
always_populate_raw_post_data = On
重启apache即可解决。
以上是关于PHP为啥接收不到POST 的数据?的主要内容,如果未能解决你的问题,请参考以下文章