PHP GET & POST 方法

PHP GET & POST 方法

浏览器客户端发送信息到Web服务器有两种方式。

  • GET 方法
  • POST 方法

在浏览器发送信息之前,它会使用一种称为URL编码的方案对信息进行编码。在这种方案中,名称/值对使用等号连接,不同的对由和号分隔。

name1=value1&name2=value2&name3=value3

空格被删除并替换为“+”字符,其他非字母数字字符被替换为十六进制值。信息编码后发送给服务器。

GET方法

GET方法将编码的用户信息附加到页面请求中。页面和编码信息之间用问号 “?” 分隔。

http://www.test.com/index.htm?name1=value1&name2=value2
  • The GET方法会在服务器日志和浏览器的“位置”框中显示一个长字符串。

  • GET方法只能发送最多1024个字符。

  • 如果需要发送密码或其他敏感信息到服务器,请不要使用GET方法。

  • 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>

它将产生以下结果 −

PHP GET & POST 方法

POST方法

POST方法通过HTTP头信息传输数据。这些信息以与GET方法相同的方式进行编码,并放入称为QUERY_STRING的头部中。

  • POST方法对要发送的数据大小没有任何限制。

  • POST方法可以用于发送ASCII和二进制数据。

  • 通过POST方法发送的数据通过HTTP头部传输,因此安全性取决于HTTP协议。通过使用安全的HTTP,您可以确保您的信息是安全的。

  • PHP提供了 $_POST 关联数组,以使用POST方法访问所有发送的信息。

尝试以下示例,将源代码放入test.php脚本中进行测试。

<?php
   if( _POST["name"] ||_POST["age"] ) {
      if (preg_match("/[^A-Za-z'-]/",_POST['name'] )) {
         die ("invalid name and name should be alpha");
      }
      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>

它将产生以下结果−
PHP GET & POST 方法

$_REQUEST变量

PHP的$_REQUEST变量包含了$_GET$_POST$_COOKIE的所有内容。我们将在讲解关于cookies时讨论$_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变量包含了调用它的脚本的名称。

它将产生以下结果 −

PHP GET & POST 方法

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程