6

我是这个论坛的新手,我从今晚开始学习 PHP。

我想发送一个表格,但我不知道两者之间的区别:

<form action="page2.php" method="GET">

<form action="page2.php" method="POST">

任何人都可以帮助我吗?

谢谢。

4

4 回答 4

25

得到:

  • 参数保留在浏览器历史记录中,因为它们是 URL 的一部分
  • 可以做书签。
  • 发送密码或其他敏感信息时不应使用 GET 方法。
  • 7607 个字符的最大大小。
  • 网址示例:page2.php?category=sport

邮政:

  • 参数不保存在浏览器历史记录中。
  • 无法添加书签。
  • 发送密码或其他敏感信息时使用的 POST 方法。
  • POST 方法的最大大小为 8 Mb。
  • 网址示例:page2.php
于 2013-03-02T03:19:32.333 回答
1

按照惯例,HTTP GET 用于搜索表单,而 HTTP POST 用于更改表单。GET 在 URL 中显示其信息,可公开查看,您可以从中查询变量。POST 不会显示其信息。安全方面确实没有区别。

于 2013-03-02T03:24:03.067 回答
0

如果使用GET请求,表单参数将在 URL 中编码为所谓的查询字符串。例如

www.someemailprovider.com/?login=joe@email.com&password=xxyz

POSTGET 请求不同,请求在 HTTP 请求的正文中传递表单参数,而不是在 URL 中。

此外GET是幂等POST的,这并不意味着如果您在服务器上调用 GET 方法,则服务器上不会发生任何变化,但是如果您调用 POST 则服务器将被更改,可能是一些额外的数据将添加到服务器中,因此 GET 是幂等的而 POST 不是。

笔记

作为程序员要记住的主要事情是,将表单定义为使用 GET 方法并不能防止导致更改。您可以使用 GET 请求执行与 POST 查询几乎相同的操作。只是浏览器通常被编码为期望 POST 请求将用于会导致更改的事情——比如下订单,或写入数据库等。GET 请求应该用于不影响服务器上任何内容的纯查询。因此,应始终记住不要将 GET 请求用于任何会导致服务器更改的操作 - 例如订购大屏幕电视。

于 2013-03-02T03:23:01.523 回答
-1

这些都是 HTTP 请求方法,不是 PHP 独有的。

$_GET附加到 end 或 URL。即http://example.org/?foo=bar 在 PHP 中访问它:

$foo = $_GET['foo'];

或 $foo = $_REQUEST['foo'];

GET 用于您不介意人们看到的信息,并且可以手动输入链接和 url 以获取结果。

$_POST在您的 URL 中不可见,通常在提交表单后使用。使用 PHP 访问它:

$foo = $_POST['foo'];

或 $foo = $_REQUEST['foo'];

在http://www.w3schools.com/tags/ref_httpmethods.asp阅读有关 HTTP 请求的更多信息

于 2013-03-02T03:31:14.223 回答