我在这里搜索了十几个与以下相关的答案:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
}
然而,我仍然没有找到为什么的答案。
如果我们已经设置<form method="post">
?
这不意味着它是唯一的形式方法吗?
答案 0 :(得分:5)
如果用户来自上一个表单,那么请求方法确实是POST。但任何人都可以向您的服务器发出请求,例如通过CURL或自定义程序。没有人阻止随机请求您的页面。
因此,您无法确定服务器上的请求方法是否确实是POST,并且所有数据都存在。
在另一个上下文中,它可用于检查表单是否实际已提交。例如:
<?php if($_SERVER['REQUEST_METHOD'] == 'POST') { ?> <!-- The server has recieved something via POST! -->
Thank you for submitting the form!
<?php } else { ?> <!-- No postdata, lets show the form! -->
<form method='POST'> <!-- By setting the method we ask that the client does a post request. -->
<input type='submit' />
</form>
<?php } ?>
答案 1 :(得分:0)
您可以通过两种方式将表单从客户端发送到服务器:GET
和POST
。它们在RFC 2616 (HTTP)中定义,但您可以直接看到的差异是GET
显示在网址中,POST
没有。
请记住,这仅适用于客户端的浏览器,以决定将内容发送到服务器的方式。
使用哪种请求方法来访问页面;即&#39; GET&#39;,&#39; HEAD&#39;,&#39; POST&#39;,&#39; PUT&#39;。
注意:如果请求方法是HEAD,PHP脚本在发送标头后终止(这意味着在产生没有输出缓冲的任何输出之后)。
您可能想要使用
的一个原因if ($_SERVER['REQUEST_METHOD'] == 'POST') {
}
可能是检查表单是否已提交。但请记住:人们可以在不实际使用您的表单的情况下发送POST
个请求!所以你必须检查其他数据。