您好我正在查看$_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']
,令人困惑。
请用一个简单的例子解释一下。所以包括我在内的每个人都能理解这一点。
提前谢谢你:)
答案 0 :(得分:4)
我将通过一个例子向您解释:
<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']
(来自网址),$_POST['article_name']
(来自表单)和$_POST['edit']
(提交按钮,也可以通过表单)
答案 1 :(得分:2)
理解这一点的最简单方法可能就是$_GET
命名错误。实际上它代表的是?
之后从URL部分解析的“查询字符串”参数的值。由于每个请求都有一个URL,无论它是什么类型,任何请求都可以填充$_GET
。
$_POST
仅填充POST请求,即使只有那些请求体具有特定格式的请求。
当您在HTML中使用method=get
时,浏览器只会根据表单数据创建一个URL,并使用GET请求请求该URL与您在地址栏中键入的URL相同。使用method=post
时,表单数据会与URL分开发送,但该URL可能仍包含?
和查询字符串。
答案 2 :(得分:1)
这样想。你有两个完全不同的数组:
$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
中,我希望其他人知道答案,因为我对此非常好奇。