"a POST request also has $_GET parameters" 是什么意思
What is the meaning of "a POST request also has $_GET parameters"
您好,我正在研究 $_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/
还有一个例子
For example, let's say you have a form for editing an article. The
article-id may be in the query string (and, so, available through
$_GET['id']), but let's say that you want to change the article-id.
The new id may then be present in the request body ($_POST['id']).
那么怎么才能同时使用$_GET['id'] and $_POST['id']
呢,迷惑。
请用一个简单的例子来解释这一点。所以包括我在内,不懂这个的大家可以好好理解。
提前谢谢你:)
也许理解这一点的最简单方法是 $_GET
的命名很糟糕。它实际上代表的是从 ?
之后的 URL 部分解析出来的 "query string" 参数的值。由于每个请求都有一个 URL,无论它是什么类型,任何请求都可以填充 $_GET
.
另一方面,$_POST
仅针对 POST 请求填充,即便如此,也仅针对那些请求正文采用特定格式的请求填充。
当您在 HTML 中使用 method=get
时,浏览器只是根据表单数据创建一个 URL,并通过 GET 请求请求 URL就像你在地址栏中输入它一样。对于 method=post
,表单数据与 URL 分开发送,但 URL 可能仍包含 ?
和查询字符串。
我举个例子给大家解释一下:
<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']
(提交按钮,也通过表单)
这样想。你有两个完全不同的数组:
$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
会保存哪个值,希望有人知道,因为我很好奇。
您好,我正在研究 $_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/
还有一个例子
For example, let's say you have a form for editing an article. The article-id may be in the query string (and, so, available through $_GET['id']), but let's say that you want to change the article-id. The new id may then be present in the request body ($_POST['id']).
那么怎么才能同时使用$_GET['id'] and $_POST['id']
呢,迷惑。
请用一个简单的例子来解释这一点。所以包括我在内,不懂这个的大家可以好好理解。
提前谢谢你:)
也许理解这一点的最简单方法是 $_GET
的命名很糟糕。它实际上代表的是从 ?
之后的 URL 部分解析出来的 "query string" 参数的值。由于每个请求都有一个 URL,无论它是什么类型,任何请求都可以填充 $_GET
.
$_POST
仅针对 POST 请求填充,即便如此,也仅针对那些请求正文采用特定格式的请求填充。
当您在 HTML 中使用 method=get
时,浏览器只是根据表单数据创建一个 URL,并通过 GET 请求请求 URL就像你在地址栏中输入它一样。对于 method=post
,表单数据与 URL 分开发送,但 URL 可能仍包含 ?
和查询字符串。
我举个例子给大家解释一下:
<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']
(提交按钮,也通过表单)
这样想。你有两个完全不同的数组:
$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
会保存哪个值,希望有人知道,因为我很好奇。