PHP风暴中帖子的奇怪问题

时间:2016-05-08 08:43:15

标签: php html forms post

我想从$_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

2 个答案:

答案 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">