Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查$#u服务器[';请求#u方法';]=';邮政';?_Php - Fatal编程技术网

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方法。非常感谢。非常好的回答让我非常清楚。