我想从$_POST
打印出来的数据,但出于某种原因,当我POST时,PHP方面没有收到数据。
这是名为test.php
<?php
echo "<b>GET </b>";
print_r($_GET);
echo "<br><b>POST </b>";
print_r($_POST);
?>
<html>
<body>
<form action="test.php" method="post">
<input type="text" name="name"><br>
<input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
当我访问http://localhost:63342/pastr/test.php
并填写姓名和电子邮件并点击提交时,信息会发布。我检查了Chrome的网络标签,发现数据的发布时间为name=this+should+get+posted+as+name&email=this+should+get+posted+as+email
。
以下是完整标题的屏幕截图,以防问题隐藏在那里:http://i.imgur.com/pRJe58B.png
除了网页显示以下内容外,其他所有内容似乎都有效:
GET Array ( )
POST Array ( )
POST数组有点空吗?我做错了什么?
注意,如果我将方法更改为GET,当我更改为get时,这样可以正常工作:
GET Array ( [name] => this should be name [email] => this should be email )
POST Array ( )
我的问题是:在尝试打印POST数据时我在做错了什么?如何修复它以便我可以打印出收到的姓名和电子邮件?
注意:尝试echo $_POST['name']
和echo $_POST['email']
都会导致非常类似的错误:Notice: Undefined index: name in C:\Users\Admin\Desktop\2\g\pastr\test.php on line 8
Notice: Undefined index: email in C:\Users\Admin\Desktop\2\g\pastr\test.php on line 9
答案 0 :(得分:2)
使用WAMP(或任何其他适当的Web服务器)中的Apache来处理您的Web请求。目前您正在使用PhpStorm自带的内置简单Web服务器,ATM在处理POST请求方面存在问题。
希望有所帮助
答案 1 :(得分:1)
脚本是正确的,如果Web服务器实际处理相同的test.php
,它应该可以工作。尝试使用$_SERVER['PHP_SELF']
代替硬编码的test.php
:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">