这个$ _SERVER ['REQUEST_METHOD'] ==='POST'怎么办?

时间:2018-06-05 17:33:01

标签: php mysql sql

对php有点新,并阅读了一些人的代码并看到了这一点:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        if (isset($_POST['...'])) {

        } else {
            echo "...";
        }
    }

我得到了isset(...)正在做什么,但不明白第一个if语句是什么。特别是因为if语句在我的请求方法是GET时工作,但是当我的请求方法是POST时

3 个答案:

答案 0 :(得分:3)

假设您的页面名为yourpage.php - 该代码的含义是,如果您通过发布表单访问yourPage.php页面,则只能运行IF语句中的代码部分。因此,如果您只是正常加载该页面,请在地址栏中键入yourpage.php。该代码将无法运行。

但如果你有一些< form action ='yourPage.php'>。当您提交该表单时,您来到yourpage.php该代码将仅在该实例中运行。当页面通过发布时。

它基本上是一种确保某些代码只会在发布表单后发生的方法,想一下像“谢谢你填写我们的调查!”这样的消息。仅在您提交表单后弹出,但仍在同一页面上。

答案 1 :(得分:2)

$_SERVER['REQUEST_METHOD']PHP server variables之一。

决定:

  

使用哪种请求方法来访问页面;即'GET','HEAD',   'POST','PUT'。

它通常默认为GET,因此不要依赖它来确定是否已发布表单(例如,如果不是POST则必须GET等)。

你说:

  

当我的请求方法是GET但是没有时,if语句正在工作   当我的请求方法是POST

我不明白为什么会这样,你必须有其他不同的东西,或者可能的缓存/浏览器历史正在发挥作用。

答案 2 :(得分:0)

我怀疑您在刷新页面查看数据时无意中重新提交了数据。

因此,帖子数据再次出现。

尝试将光标放在浏览器中 URL 的末尾,然后按“回车”