当前位置 : 主页 > 网络编程 > PHP >

php中$_get和$_post怎么用

来源:互联网 收集:自由互联 发布时间:2021-08-10
在php中,“$_get”用于收集来自“method=get”的表单中的值,即接收form表单中使用GET方法提交的表单数据;“$_post”用于收集来自“method=post”的表单中的值,即获取由POST请求发送的表单

在php中,“$_get”用于收集来自“method="get"”的表单中的值,即接收form表单中使用GET方法提交的表单数据;“$_post”用于收集来自“method="post"”的表单中的值,即获取由POST请求发送的表单数据。

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

在 PHP 中使用 get 和 post 两种方法接收来自 form 表单的值,在 form 表单中可以定义 PHP 的接收方式和接收地址。

get 和 post 方法主要有以下几点区别。

  • get 是把参数数据队列添加到提交表单的 action 属性所指的 URL 中,值和表单内各个字段一一对应,在 URL 中可以看到。post 是通过 HTTP post 机制将表单内各个字段与其内容放置在 HTML HEADER 内一起传送到 action 属性所指的 URL 地址,用户看不到这个过程。

  • get 传送的数据量较小,不能大于 2KB,这主要是因为受 URL 长度限制。post 传送的数据量较大,一般默认为不受限制。

  • get 安全性非常低,post 安全性较高,但是 get 执行效率却比 post 方法好。

  • get 是 form 的默认方法。

建议在传输的数据包含机密信息时用 post 数据提交方式,在做数据查询时用 get 方式,在做数据添加、修改或删除时用 post 方式。

$_POST全局变量

POST 方法不依赖于 URL,不会将传递的参数值显示在地址栏中。另外 POST 方法可以没有限制地传递数据到服务器,所有提交的信息在后台传输,用户在浏览器端是看不到这一过程的,安全性相对较高。所以,POST 方法比较适合用于发送一些重要的(如信用卡号)信息或者比较大量的数据到服务器。

提示:默认情况下 POST 方法的发送信息最大值为 8MB,后期可以通过修改 php.ini 配置文件中 post_max_size 的值进行更改。

而 PHP 的 $_POST 全局变量则是专门用于获取由 POST 请求发送的表单数据的。其数据结构是一个关联数组,数组的键名为表单元素 name 的值,数组的值为对应表单的值。在实际程序开发过程中,当 form 表单的 method 属性指定使用 POST 方式进行数据传递时,我们就应该使用 $_POST 来获取比表单的数据。

$_POST 全局变量的使用与普通数组是一样,可以直接以$_POST['键值']的形式访问其中的数据,下面通过一个简单的示例来演示一下。

【示例】使用 $_POST 全局变量获取 form 表单中传输的数据。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>
    <form action="index.php" method="post">
        姓名:<input type="text" name="name" placeholder="请输入姓名"><br>
        性别:<input type="radio" name="sex" value="男">男
              <input type="radio" name="sex" value="女">女<br>
        爱好:<input type="checkbox" name="hobby[]" value="read">阅读
              <input type="checkbox" name="hobby[]" value="travel">旅游
              <input type="checkbox" name="hobby[]" value="sport">运动
              <input type="checkbox" name="hobby[]" value="internet">上网<br>
        职业:<select name="job">
                    <option value="coder">程序员</option>
                    <option value="teacher">教师</option>
                    <option value="doctor">医生</option>
                    <option value="other">其它</option>
              </select><br>
        <input type="submit" value="提交">&emsp;&emsp;<input type="reset" value="重置">
    </form>
</body>
</html>
<?php
    if(!empty($_POST)){
        echo '提交成功!<br><pre>';
        var_dump($_POST);
    }
?>

运行上面的代码,并在输入框中填入合适的信息,点击提交按钮即可将表单中填入的信息传递给 PHP 程序。然后 PHP 程序可以通过 $_POST 来接收表单中传递信息,并对这些信息进行处理,比如可以将数据保存到数据库或者输出到浏览器等等,详细代码就不演示了,大家可以自行动手尝试一下。

$_GET全局变量

$_GET 全局变量与前面介绍的 $_POST 全局变量类似,它是用来接收 form 表单中使用 GET 方法提交的表单数据的,GET 方法是 form 表单中 method 属性的默认方法。使用 GET 方法提交的表单数据会附加到 URL 上,并作为 URL 的一部分发送到服务器端。

在程序的开发过程中,由于 GET 方法提交的数据是附加到 URL 上发送的,因此在 URL 的地址栏中将会显示“URL+用户传递的参数”类型的信息,如下所示:

http://url?name1=value1&name2=value2 ...

其中,url 为表单响应地址(如 http://c.biancheng.net),name1、name2 为表单元素的名称,value1、value2 为表单元素的值。url和表单元素之间用“?”隔开,而多个表单元素之间用“&”隔开,每个表单元素的格式都是“name=value”,固定不变。

由于不同的浏览器对 URL 的长度都有不同的限制,所以在使用 GET 方法提交数据时,一定要注意数据量的大小,如果数据的长度超过了浏览器的限制,数据将被截断,从而导致数据丢失。主流浏览器对 URL 长度的限制如下表所示:

游览器最大长度(字符数)Internet Explorer2083 Firefox 65536chrome8182Safari80000Opera190000

$_GET 全局变量与 $_POST 的结构相似,同样是一个关联数组,数组的键名为表单元素 name 的值,数组的值为对应表单的值。$_GET 不仅仅可以获取 form 表单的数据,只要是 URL 中的参数都可以使用 $_GET 获取。

另外一点需要注意的是:在 PHP 中使用 $_POST 或者 $_GET 获取表单数据时,是区分大小写的,所以在开发过程中应该注意不能忽略了字母的大小写。

【示例】使用 $_GET 全局变量获取 form 表单中传输的数据。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>
    <form action="index.php" method="get">
        姓名:<input type="text" name="name" placeholder="请输入姓名"><br>
        性别:<input type="radio" name="sex" value="男">男
              <input type="radio" name="sex" value="女">女<br>
        爱好:<input type="checkbox" name="hobby[]" value="read">阅读
              <input type="checkbox" name="hobby[]" value="travel">旅游
              <input type="checkbox" name="hobby[]" value="sport">运动
              <input type="checkbox" name="hobby[]" value="internet">上网<br>
        职业:<select name="job">
                    <option value="coder">程序员</option>
                    <option value="teacher">教师</option>
                    <option value="doctor">医生</option>
                    <option value="other">其它</option>
              </select><br>
        <input type="submit" value="提交">&emsp;&emsp;<input type="reset" value="重置">
    </form>
</body>
</html>
<?php
    if(!empty($_GET)){
        echo '提交成功!<br><pre>';
        var_dump($_GET);
    }
?>

网友评论