zoukankan      html  css  js  c++  java
  • PHP中$_POST和$_GET的用法

    post和get是指:页面提交的两种方式
    get:参数都体现在url上,可以用于翻页,简单查询,get只能接收2M以下的内容,所以有局限性,另外由于内容是可见的,安全性就下降了,
    post:用于页面表单 提交,上传文件,这些操作。大小没有限制,也不会在地址栏上显示。

    $_POST 变量

    $_POST 变量是一个数组,内容是由 HTTP POST 方法发送的变量名称和值。
    $_POST 变量用于收集来自 method=”post” 的表单中的值。
    从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制
    以下是$_POST的简单啊的练习

    复制代码
    复制代码
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
        </head>
        <body>
    <form action="http://127.0.0.1:8080/php7/hello.php" method="post">
        
    Enter your name: <input type="text" name="name" />
    Enter your age: <input type="text" name="age" />
    <input type="submit" />
    </form>
    
        </body>
    </html>
    复制代码
    复制代码
    
    

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

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

    为什么使用 $_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
    2
    3
    4
    5
    
    <form action="hello.php" method="get">
    Name: <input type="text" name="name" />
    Age: <input type="text" name="age" />
    <input type="submit" />
    </form>

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

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

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

    1
    2
    
      Welcome <?php echo $_GET["name"]; ?>.<br />
    You are <?php echo $_GET["age"]; ?> years old!

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

    1
    2
    
      Welcome Mike 
      You are 23 years old!

    为什么使用 $_GET?

    注释:在使用 $_GET 变量时,所有的变量名和值都会显示在 URL 中。所以在发送密码或其他敏感信息时,不应该使用这个方法。不过,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。
    注释:HTTP GET 方法不适合大型的变量值;值是不能超过 100 个字符的。

    ****$_POST和$_GET的区别:

    1.前者可以在网址的栏目上是看不到传送的内容的,而后者呢是是可以在网址的栏目是看到内容的

    2.Get 方式需要使用 Request.QueryString 来取得变量的值;而 Post 方式通过 Request.Form 来访问提交的内容

    3.前者传输的内容的大小比较大,安全性比较高,执行效率稍微低一些;后者的上传大小比较小,安全性低,执行的效率会计较高一点

    4、 Get 方式提交数据,会带来安全问题,比如一个登陆页面,通过 Get 方式提交数据时,用户名和密码将出现在 URL 上,如果页面可以被缓存或者其他人可以访问客户这台机器,就可以从历史记录获得该用户的帐号和密码,所以表单提交建议使用 Post 方法;Post 方法提交的表单页面常见的问题是,该页面如果刷新的时候,会弹出一个对话框

    一般的话建议使用      $_POST

  • 相关阅读:
    打印九九乘法表
    PAT (Basic Level) Practice (中文) 1091 N-自守数 (15分)
    PAT (Basic Level) Practice (中文)1090 危险品装箱 (25分) (单身狗进阶版 使用map+ vector+数组标记)
    PAT (Basic Level) Practice (中文) 1088 三人行 (20分)
    PAT (Basic Level) Practice (中文) 1087 有多少不同的值 (20分)
    PAT (Basic Level) Practice (中文)1086 就不告诉你 (15分)
    PAT (Basic Level) Practice (中文) 1085 PAT单位排行 (25分) (map搜索+set排序+并列进行排行)
    PAT (Basic Level) Practice (中文) 1083 是否存在相等的差 (20分)
    PAT (Basic Level) Practice (中文) 1082 射击比赛 (20分)
    PAT (Basic Level) Practice (中文) 1081 检查密码 (15分)
  • 原文地址:https://www.cnblogs.com/jinan1/p/10615400.html
Copyright © 2011-2022 走看看