Php 检查$#u服务器[';请求#u方法';]=';邮政';?
我在这里搜索了十几个关于以下方面的答案:Php 检查$#u服务器[';请求#u方法';]=';邮政';?,php,Php,我在这里搜索了十几个关于以下方面的答案: if ($_SERVER['REQUEST_METHOD'] == 'POST') { } 但我仍然没有找到原因的答案 如果我们已经设置了,为什么要这样做 这不意味着它是这里唯一的表单方法吗?如果用户来自上一个表单,那么请求方法实际上是POST。但是任何人都可以向您的服务器发出请求,例如通过CURL或自定义程序。没有人能阻止人们对你的页面发出随机请求 因此,您无法确保服务器上的请求方法确实是POST,并且所有数据都存在 在另一个上下文中,它可用于检查表
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
}
但我仍然没有找到原因的答案
如果我们已经设置了
,为什么要这样做
这不意味着它是这里唯一的表单方法吗?如果用户来自上一个表单,那么请求方法实际上是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 } ?>
谢谢你提交表格!
有两种方法可以将表单从客户端发送到服务器:GET
和POST
。它们在中定义,但您可以直接看到的区别是GET
显示在URL中,而POST
不显示
请记住,这仅由客户端的浏览器决定向服务器发送内容的方式
关于:
使用哪种请求方法访问该页面;i、 e.“获取”、“头”、“柱”、“放置”
注意:如果请求方法是HEAD,则PHP脚本在发送头后终止(这意味着在生成任何输出后没有输出缓冲)
您可能希望使用
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
}
可能是检查是否提交了表单。但请记住:人们可以发送
POST
请求,而无需实际使用您的表单!因此,您必须检查其他数据。这就是您如何判断表单是以正常页面请求的形式提交的,使用GetAnswers是什么意思?如果我们不知道答案,那就不可能说了。但是代码(显然)所做的是检查请求方法是什么。你为什么想知道?好吧,如果你使用某种形式的REST服务,你对帖子的反应会不同,对GET请求的反应也会不同,对PUT、DELETE等都是一样的。即使
,谁阻止我将我在表单中看到的URL复制粘贴到我的浏览器中,这将执行对该资源的GET请求?如果我这么做,那意味着我做了你不允许的事。这就是为什么要使用这个片段。你的答案没有错,但绝对是误导。可以使用不同的动词来发布和获取。此外,您可以很容易地看到发布的信息,不同之处在于您必须点击F12,进入网络选项卡>检查新浏览器在发送数据方面告诉您的信息。实际上,区别在于动作的目的取决于所使用的动词。这是开发人员编写的代码。当然,您可以使用不同的HTTP方法。但我认为这对他来说并不重要。据我所知,你只能告诉客户使用GET或POST(至少我从未在HTML中看到过不同的东西)。如果他真的想知道,我会发布一个相关规范的链接。在那里,他将找到所有HTTP方法。非常感谢。非常好的回答让我非常清楚。