实例详解PHP中 $_POST的$_GET的用法和区别

post和get是指页面提交的两种方式。

get:参数都体现在url上,可以用于翻页,简单查询,get只能接收2M以下的内容,所以有局限性,另外由于内容是可见的,安全性就下降了。

post:用于页面表单提交,上传文件。大小没有限制,也不会在地址栏上显示。

$_POST 变量

$_POST 变量是一个数组,内容是由 HTTP POST 方法发送的变量名称和值。

$_POST 变量用于收集来自 method=”post” 的表单中的值。

从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。

举例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <title></title>
  6. </head>
  7. <body>
  8. <form action="http://127.0.0.1:8080/php7/hello.php" method="post">
  9. Enter your name: <input type="text" name="name" />
  10. Enter your age: <input type="text" name="age" />
  11. <input type="submit" />
  12. </form>
  13. </body>
  14. </html>

这里是hello.php文件的代码 “hello.php” 文件现在可以通过 $_POST 变量来获取表单数据了(请注意,表单域的名称会自动成为 $_POST 数组中的 ID 键)

  1. <?php
  2. header("content-type:text/html;charset=utf-8");
  3. echo $_POST["name"];
  4. //可以输出form中标签的属性值 其中参数的name
  5. echo $_POST["age"];
  6. ?>

为什么使用 $_POST?

通过 HTTP POST 发送的变量不会显示在 URL 中。

变量没有长度限制。

不过,由于变量不显示在 URL 中,所以无法把页面加入书签。

$_GET 变量

$_GET 变量用于收集来自 method=”get” 的表单中的值,直观的的就是浏览器中可以看到的参数,比如我在百度搜索“wordpress”的时候,我请求的url就是http://www.baidu.com/s?ie=utf-8&bs=wordpress&f=8&rsv_bp=1&wd=wordpress&inputT=0,那么’?’后面的参数都是可以用 $_GET 获取,各个参数是以’&’作为分隔符的。

$_GET 变量是一个数组,内容是由 HTTP GET 方法发送的变量名称和值。

从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送的信息量也有限制(最多 100 个字符),所以参数的长度不是无限的,但是基本都能满足我们的要求了。

举例:

  1. <form action="hello.php" method="get">
  2. Name: <input type="text" name="name" />
  3. Age: <input type="text" name="age" />
  4. <input type="submit" /></form>

当用户点击提交按钮时,发送的 URL 会类似这样:

http://www.w3school.com.cn/welcome.php?name=Peter&age=37

“hello.php” 文件现在可以通过 $_GET 变量来获取表单数据了(请注意,表单域的名称会自动成为 $_GET 数组中的 ID 键)

Welcome <?php echo $_GET["name"]; ?>.<br />

You are <?php echo $_GET["age"]; ?> years old!

如果你在 name 表单框中输入了Mike ,在 age 表单框中输入了23,那么显示的结果就是这样的。

Welcome Mike

You are 23 years old!

为什么使用 $_GET?

注释:在使用 $_GET 变量时,所有的变量名和值都会显示在 URL 中。所以在发送密码或其他敏感信息时,不应该使用这个方法。

不过,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。

注释:HTTP GET 方法不适合大型的变量值;值是不能超过 100 个字符的。