【问题标题】:What is the meaning of "a POST request also has $_GET parameters"“一个 POST 请求也有 $_GET 参数”是什么意思
【发布时间】:2015-04-23 07:52:42
【问题描述】:

您好,我正在查看 $_GET$_POST 方法之间的区别,我看到一些文章说

  • POST 请求也有 $_GET 参数

  • 所以 POST 请求是 GET 请求的超集;您可以在 POST 请求中使用 $_GET ,甚至可能有意义 $_POST 和 $_GET 中具有相同名称的参数表示不同 东西。

When should I use GET or POST method? What's the difference between them?

http://www.sitepoint.com/on-get-and-post/

还有一个例子

例如,假设您有一个用于编辑文章的表单。这 article-id 可能在查询字符串中(因此,可以通过 $_GET['id']),但假设您要更改文章 ID。 然后新的 id 可能会出现在请求正文中 ($_POST['id'])。

那么我们怎么能同时使用$_GET['id'] and $_POST['id'],令人困惑。 请用一个简单的例子来解释这一点。所以大家包括我在内,不懂这个的人都可以很好的理解。

提前谢谢你:)

【问题讨论】:

  • 查看$_REQUEST

标签: php post get


【解决方案1】:

我用一个例子给你解释一下:

<form method='post' action='edit-article.php?article_id=3'>
    <label for='article_name'>Article name:</label>
    <input type='text' name='article_name' value='' />
    <input type='submit' name='edit' value='Change article name' />
</form>

当您按下提交时,您将被重定向到 edit-article.php?article_id=3

在这里,您将设置以下变量: $_GET['article_id'](来自 url)、$_POST['article_name'](来自表单)和$_POST['edit'](提交按钮,也可以通过表单)

【讨论】:

    【解决方案2】:

    也许理解这一点的最简单方法是 $_GET 的名字很糟糕。它实际代表的只是从? 之后的 URL 部分解析的“查询字符串”参数的值。由于每个请求都有一个 URL,无论它是什么类型,任何请求都可以填充 $_GET

    另一方面,$_POST 仅用于 POST 请求,即使这样也仅用于请求正文为特定格式的请求。

    当您在 HTML 中使用 method=get 时,浏览器只是根据表单数据创建一个 URL,并通过 GET 请求请求该 URL,就像您在地址栏中键入它一样。使用method=post,表单数据与 URL 分开发送,但 URL 可能仍包含 ? 和查询字符串。

    【讨论】:

      【解决方案3】:

      这样想。你有两个完全不同的数组:

      $A = array();
      $B = array();
      

      现在你可以编写这段代码了:

      $A['id'] = 8;
      $B['id'] = 5;
      

      以上代码完全有效。这些是不同的数组,只是碰巧有相同的键,但分配了不同的值。

      $_GET$_POST 是不同的变量。您写入 url 查询的所有内容都将显示在 $_GET 变量中,您通过 POST 发送的所有内容都将在 $_POST 中结束。因此,您可以在 URL 查询和 POST 数据中设置相同的键。

      但是,$_REQUEST 保存了$_GET$_POST$_COOKIE 的数据。如果您在$_POST$_GET 中有相同的键,我们可以假设$_REQUEST 将只保存其中一个值。我其实不知道,$_REQUEST 中会保存哪个值,希望其他人知道答案,因为我对此非常好奇。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-27
        • 2014-03-28
        • 1970-01-01
        相关资源
        最近更新 更多