PHP 使用GET和POST方法

PHP 使用GET和POST方法

PHP提供了两种方法,通过这两种方法,客户端(浏览器)可以向服务器发送信息。这些方法如下所示,并进行详细讨论:

  1. GET方法
  2. POST方法

GET和POST方法是在标签内使用的HTTP请求方法,用于向服务器发送表单数据。

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

GET方法

GET 方法用于提交HTML表单数据。预定义的 $_GET变量 用于处理此数据。

使用GET方法从HTML表单发送的信息对于浏览器中的每个人都是可见的,这意味着所有变量名及其值都将显示在URL中。因此,GET方法不适合发送敏感信息。

示例

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

上述URL中的 粗体 部分是变量名称,并且斜体部分包含它们对应的变量值。

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

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

示例

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

文件:test1.html

<html>
   <body>

      <form action = "gettest.php" method = "GET">
         Username: <input type = "text" name = "username" /> <br>
         Blood Group: <input type = "text" name = "bloodgroup" /> <br>
         <input type = "submit" />
      </form>

   </body>
</html>

PHP 使用GET和POST方法

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

文件:gettest.php

<html>
   <body>

      Welcome <?php echo _GET["username"]; ?> </br>
      Your blood group is: <?php echo_GET["bloodgroup"]; ?>

   </body>
</html>

当用户在填写完表单后,点击 提交 按钮时,发送到服务器的URL可能看起来像这样:

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

输出结果将如下所示:

Welcome Harry
Your blood group is: AB-

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

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

GET方法的缺点

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

POST方法

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

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

示例

localhost/posttest.php

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

通过一个示例来理解POST方法的工作原理:

示例

以下代码将显示一个包含两个输入字段和一个提交按钮的HTML表单。在这个HTML表单中,我们使用了method=”post”来提交表单数据。

文件:test2.html

<html>
   <body>

      <form action = "posttest.php" method = "post">
         Username: <input type = "text" name = "username" /> <br>
         Blood Group: <input type = "text" name = "bloodgroup" /> <br>
         <input type = "submit" />
      </form>

   </body>
</html>

PHP 使用GET和POST方法

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

文件:posttest.php

<html>
   <body>

      Welcome <?php echo _POST["username"]; ?> </br>
      Your blood group is: <?php echo_POST["bloodgroup"]; ?>

   </body>
</html>

当用户在填写表格后点击 提交 按钮时,发送给服务器的URL可能会类似于以下内容:

localhost/posttest.php

输出将类似于下面的输出:

Welcome Harry
Your blood group is: O+ 

POST方法的优势(method = “post”)

  • POST方法适用于发送任何敏感信息,因为使用POST方法发送的信息对任何人来说都不可见。
  • 使用POST方法发送的数据大小没有限制。您可以使用这种方法发送大量的信息。
  • 可以使用POST方法发送二进制和ASCII数据。
  • 数据安全性取决于HTTP协议,因为使用POST方法发送的信息通过HTTP头部传递。通过使用安全的HTTP,您可以确保数据安全。

POST方法的缺点

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

$_REQUEST变量

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程