“POST 请求也有 $_GET 参数”是什么意思


What is the meaning of "a POST request also has $_GET parameters"

嗨,我

正在研究$_GET方法和$_POST方法之间的差异,我遇到了一些文章说

  • POST 请求还具有 $_GET 参数

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

我什么时候应该使用 GET 或 POST 方法?它们之间有什么区别?

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

还有一个例子

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

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

提前谢谢你:)

我将用一个例子向你解释:

<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>

当您按提交时,您将被重定向到编辑文章.php?article_id=3

在这里,您将设置以下变量: $_GET['article_id'](从网址(,$_POST['article_name'](从表单(和$_POST['edit'](提交按钮,也通过表单(

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

另一方面,$_POST仅针对 POST 请求填充,即使如此,也只填充那些请求正文采用特定格式的请求。

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

可以

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

$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中,我希望其他人知道答案,因为我对此非常好奇。