我是这个论坛的新手,我从今晚开始学习 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
与POST
GET 请求不同,请求在 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 请求的更多信息