📜  在PHP Get()与Post()方法

📅  最后修改于: 2020-09-30 03:14:50             🧑  作者: Mango

PHP中的获取和发布方法

PHP提供了两种方法,客户机(浏览器)可以通过两种方法将信息发送到服务器。这些方法在下面给出,并进行详细讨论:

  • GET方法
  • POST方法

Get和Post方法是内部使用的HTTP请求方法

标签以将表单数据发送到服务器。

HTTP协议可以在客户端和服务器之间进行通信,其中浏览器可以作为客户端,而在托管您网站的计算机系统上运行的应用程序可以作为服务器。

GET方法

GET方法用于提交HTML表单数据。该数据由预定义的$_GET变量收集以进行处理。

使用GET方法从HTML表单发送的信息对浏览器的地址栏中的所有人都是可见的,这意味着所有变量名称及其值都将显示在URL中。因此,get方法不能保证发送敏感信息。

例如

localhost/gettest.php?username=Harry&bloodgroup=AB+

上述网址中的粗体部分是变量名称,斜体部分包含其相应变量的值。

请注意,使用GET方法只能发送有限数量的信息。

借助示例,让我们了解GET方法的工作原理-

下面的代码将显示一个HTML表单,其中包含两个输入字段和一个Submit按钮。在此HTML表单中,我们使用了方法=“get”来提交表单数据。

文件:test1.html


   
   
      
         Username:  
Blood Group:

创建gettest.php文件,该文件将接受HTML表单发送的数据。

文件:gettest.php


   
   
      Welcome  
Your blood group is:

当用户填写表单后单击“提交”按钮时,发送到服务器的URL可能类似于以下内容:

localhost/gettest.php?username=Harry&bloodgroup=AB-

输出将类似于以下输出:

Welcome Harry
Your blood group is: AB-

GET方法的优点(方法=“ get”)

  • 您可以使用特定的查询字符串为页面添加书签,因为GET方法发送的数据显示在URL中。
  • GET请求可以被缓存。
  • GET请求始终保留在浏览器历史记录中。

GET方法的缺点

  • 发送任何敏感信息时,不应使用GET方法。
  • 使用method =“ get”可以发送有限数量的数据。此限制不得超过2048个字符。
  • 出于安全原因,切勿使用GET方法发送高度敏感的信息,例如用户名和密码,因为它会在URL中显示它们。
  • GET方法不能用于将二进制数据(例如图像或Word文档)发送到服务器。

POST方法

与GET方法类似,POST方法也用于提交HTML表单数据。但是,通过此方法提交的数据由预定义的超全局变量$_POST而不是$_GET收集。

与GET方法不同,它对要发送的信息量没有限制。使用POST方法从HTML表单发送的信息对任何人都不可见。

例如

localhost/posttest.php

请注意,“ post”方法比“ get”方法更安全,因为使用POST方法发送的数据对用户不可见。

借助示例,让我们了解POST方法的工作原理-

下面的代码将显示一个HTML表单,其中包含两个输入字段和一个Submit按钮。在此HTML表单中,我们使用了方法=“post”提交表单数据。

文件:test2.html


   
   
      
Username:
Blood Group:

现在创建posttest.php文件以接受HTML表单发送的数据。

文件:posttest.php


   
   
      Welcome  
Your blood group is:

当用户填写表单后单击“提交”按钮时,发送到服务器的URL可能类似于以下内容:

本地主机/posttest.php

输出将类似于以下输出:

Welcome Harry
Your blood group is: O+ 

POST方法的优点(方法=“ post”)

  • POST方法对于发送任何敏感信息很有用,因为使用POST方法发送的信息对任何人都不可见。
  • 使用POST方法发送的数据大小没有限制。您可以使用此方法发送大量信息。
  • 二进制和ASCII数据也可以使用POST方法发送。
  • 数据安全性取决于HTTP协议,因为使用POST方法发送的信息会通过HTTP标头。通过使用安全的HTTP,可以确保您的数据是安全的。

POST方法的缺点

  • POST请求不缓存。
  • POST请求永远不会保留在浏览器历史记录中。
  • 无法在页面上添加书签,因为变量未显示在URL中。

$ _REQUEST变量

$_REQUEST变量是一个超全局变量,可以保存$_GET和$_POST变量的内容。换句话说,PHP$_REQUEST变量用于收集由GET或POST方法发送的表单数据。它还可以收集$_COOKIE变量的数据,因为它不是特定于方法的变量。