我是这个论坛的新手,我从今晚开始学习 PHP。
我想发送一个表格,但我不知道两者之间的区别:
<form action="page2.php" method="GET">
和
<form action="page2.php" method="POST">
任何人都可以帮助我吗?
谢谢。
得到:
邮政:
按照惯例,HTTP GET 用于搜索表单,而 HTTP POST 用于更改表单。GET 在 URL 中显示其信息,可公开查看,您可以从中查询变量。POST 不会显示其信息。安全方面确实没有区别。
如果使用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 请求用于任何会导致服务器更改的操作 - 例如订购大屏幕电视。
这些都是 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 请求的更多信息