GET 方法和POST 方法是http协议中最为常用的两个方法,所以理解这两个方法在PHP中的使用方法和他们的区别与联系十分重要。下面将通过一个实例来展示。
PHP中 GET 和 POST 的使用方法
首先写一个 HTML,里面包含两个表单 form,其中第一个 form 使用GET 方法;第二个使用POST 方法:
PHP中 GET 和POST 方法的区别与联系GET 方法:
用户名:
密码:
POST 方法:
用户名:
密码:
浏览器显示效果如下:
然后再写一个 test.php,因为上面的 HTML 中的 form 表单的 action 是调用 test.php 。该PHP中首先通过一个PHP的预定义变量$_SERVER[“REQUEST_METHOD”]判断请求使用的是GET 方法还是POST 方法,不同的方法执行不同的代码。
if($_SERVER["REQUEST_METHOD"] == "GET"){
$user = $_GET["user"];
$psw = $_GET["psw"];
echo "GET 方法得到的数据:";
echo "用户名:".$user."";
echo "密码:".$psw."";
}
else{
$user = $_POST["user"];
$psw = $_POST["psw"];
echo "POST 方法得到的数据:";
echo "用户名:".$user."";
echo "密码:".$psw."";
}
?>
然后来测试一下。
首先测试一下GET 方法:
在 GET 方法下的用户名输入“张三”,密码输入“abc123”,然后点击登录。
点击登录之后的浏览器输出为:
也就是说,test.php 已经得到了正确的数据,那它是如何得到的呢?
数据传输途径是这样的:
用户名对应的 Input 标签的 name 属性是 user,用户输入的用户名与 user 绑定;
然后通过 HTTP 协议的 GET 方法发送到服务器的 test.php;
而用户名数据就被存放到了预定义变量$_GET 数组中,其对应的索引就是 user;
所以在 test.php 中,HTML 表单所提交的用户名就可以通过$_GET[“user”]获取;
同理对应的密码数据也这样传递的。
同理,POST 方法的使用也是与 GET 的类似的:
在 POST 方法下的用户名输入“李四”,密码输入“cba321”,然后点击登录。
点击登录后浏览器的输出结果如下:
可以看到,POST 方法同样是可以得到表单提交的数据的。那么这两者区别在哪呢?
GET 和 POST 的区别
如果前面再对 GET 方法进行测试的时候仔细观察,URL 的变化,你就会发现,点击登录之后的 URL 是这样的:
从 URL 中,可以清楚地读出表单所提交的数据。
而使用 POST 方法的 URL 是这样的:
从 URL 的就可以看出明显的区别。GET 方法的数据是存放在 URL 中传送的,POST 的方法的数据则是存放在 HTTP 消息中的请求体中传送的。(此处可参考:超文本传输协议 HTTP 详解)
所以 GET 方法传送的数据是非常不安全的,数据被获取的成本非常低,并且 URL 是有长度限制的,所以传送的数据不能太大,数据类型仅限于 ASCII 字符。
GET 和 POST 的使用场景
所以 GET 的方法一般用在交互的场景(例如查询,搜索,读取),GET 方法传送的数据作为参数,然后得到对应参数的响应。
而 POST 方法则通常用来提交表单数据,或者传输一些需要加密的数据(比如密码,订单信息等)。
TOMORROW 星辰 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 中 GET 方法和 POST 方法的使用(区别与联系)