离线下载
PDF版 ePub版

极客学院团队出品 · 更新于 2018-11-28 11:00:43

GET 和 POST 方法

浏览器客户端有两种方法可以将信息发送到 web 服务器。 

  • GET 方法 
  • POST 方法

浏览器发送信息之前,它的编码使用的一种是被称为 URL 编码的方案。在这个方案中, 使用名称/值与 & 不分离的方式。

    name1=value1&name2=value2&name3=value3

空格会被删除,取而代之的是+字符和其他任何非字母数字字符替换为十六进制值。信息编码后发送到服务器。

$_GET 变量

GET方法发送编码用户信息添加到页面请求。页面和编码信息是由?字符分开。

    http://www.test.com/index.htm?name1=value1&name2=value2
  • $_GET 方法会在你的服务器日志输出一个长字符串,出现在浏览器的位置:box 框。
  • GET 方法仅局限于发送高达 1024 个字符。
  • 如果你有密码或其他敏感信息,从不使用 GET 方法发送到服务器。
  • 不能被用来发送二进制数据,如图像或 word 文档,到服务器。
  • GET 方法发送的数据可以使用 QUERY_STRING 环境变量访问。
  • PHP 提供了关联数组$_GET可以访问所有使用 GET 方法的发送信息。

试试下面的例子的源代码 test.php 脚本。

    <?php
      if( $_GET["name"] || $_GET["age"] )
      {
         echo "Welcome ". $_GET['name']. "<br />";
         echo "You are ". $_GET['age']. " years old.";
         exit();
      }
    ?>
    <html>
    <body>
      <form action="<?php $_PHP_SELF ?>" method="GET">
      Name: <input type="text" name="name" />
      Age: <input type="text" name="age" />
      <input type="submit" />
      </form>
    </body>
    </html>

$_POST 变量

POST 方法通过 HTTP headers 头转移信息。信息被编码可以描述为在 GET 方法的情况下,把信息放入一个 header 头称为 QUERY_STRING。。

  • POST 方法没有任何要发送的数据大小限制。
  • 可以使用 POST 方法发送 ASCII 和二进制数据。
  • POST 方法发送的数据通过 HTTP 头,所以安全依赖于 HTTP 协议。通过使用安全 HTTP 可以确保您的信息安全。
  • PHP 提供了 $ _POST 关联数组访问所有使用 POST 方法发送信息。

试试下面的例子在源代码 test.php 脚本中。

    <?php
      if( $_POST["name"] || $_POST["age"] )
      {
         echo "Welcome ". $_POST['name']. "<br />";
         echo "You are ". $_POST['age']. " years old.";
         exit();
      }
    ?>
    <html>
    <body>
      <form action="<?php $_PHP_SELF ?>" method="POST">

      Name: <input type="text" name="name" />
      Age: <input type="text" name="age" />

      <input type="submit" />
      </form>
    </body>
    </html>

$_REQUEST 变量

PHP 的 $_REQUEST 变量包含了 $_GET, $_POST 以及 $_COOKIE 的内容。

PHP 的 $_REQUEST 变量可用来取得通过 GET 和 POST 方法发送的表单数据的结果。

试试下面的例子在源代码 test.php 脚本中。

    <?php
      if( $_REQUEST["name"] || $_REQUEST["age"] )
      {
         echo "Welcome ". $_REQUEST['name']. "<br />";
         echo "You are ". $_REQUEST['age']. " years old.";
         exit();
      }
    ?>
    <html>
    <body>
      <form action="<?php $_PHP_SELF ?>" method="POST">

      Name: <input type="text" name="name" />
      Age: <input type="text" name="age" />

      <input type="submit" />
      </form>
    </body>
    </html>

这里,$_PHP_SELF 变量包含自我脚本的名称。

上一篇: Web Concepts 下一篇: 文件包含