php中$_REQUEST、 $_GET、 $_POST、 $_COOKIE 的关系和区别
看到REQUEST可以通吃GET 、POST 、COOKIE 后 感觉这个$_REQUEST太强大了
是不是其他的几个超级变量就没有用了,下面对他们整体做个比较:
1.安全性 post>get
2.数据传输大小 post>get(get最大2000字节)
3.保存到收藏夹 get比较方便.
4.权限大小
首先权限大小跟php.ini文件有关
; This directive determines which super global data (G,P & C) should be
; registered into the super global array REQUEST. If so, it also determines
; the order in which that data is registered. The values for this directive
; are specified in the same manner as the variables_order directive,
; EXCEPT one. Leaving this value empty will cause PHP to use the value set
; in the variables_order directive. It does not mean it will leave the super
; globals array REQUEST empty.
; Default Value: None
; Development Value: "GP"
; Production Value: "GP"
; http://php.net/request-order
request_order = "GP"
这里的意思是:
; 是否将EGPCS变量注册成为全局变量.
; 如果你不希望由于用户数据而导致你脚本的全局变量变得凌乱,你需要关闭此选项
; 这个一般随着 track_vars 打开 - 在这种情况下你能够通过$HTTP_*_VARS[]存取所有的GPC变量.
这些超全局数据包括G(GET),P(POST),C(COOKIE),E(ENV),S(SERVER)。这条指令同样指定了这些数据的注册顺序,换句话说GP和PG是不一样的。注册的顺序是从左至右,即右侧的值会覆盖左侧的。比如,当设置为GPC时,COOKIE > POST > GET,依次覆盖。如果这个项被设置为空,php将会使用指令variables_order的值来指定。
在$_POST['name'] = 'post', $_GET ['name'] = 'get' ,setcookie('name', 'cookie', time()+3600);//先把COOKIE种上,名字为name,值为cookie。然后刷新。(COOKIE要刷新才生效)
上面三个不同的全局变量中键名都是相同的
但是print_r($_REQUEST); 后查看结果 'cookie'。
结论:COOKIE的优先级最高。下来POST,最后才是GET
权限大小比较:$_COOKIE > $_POST > $_GET
另外,判断是post还是get请求的页面,最好使用:$_SERVER['REQUEST_METHOD']
最新文章
- Jenkins 2.16.3默认没有Launch agent via Java Web Start,如何配置使用
- Android app被系统kill的场景
- Post方式的Http流请求调用
- Uubuntu 14.04 LTS反编译apk
- Struts之ForwardAction
- 1.2、Mybatis二级缓存测试
- entity framework in mysql
- 10247 - Complete Tree Labeling(递推高精度)
- Android之——ListView优化
- 基于MVC的网站和在线教育系统
- bash test命令探秘
- Zookeeper简介与集群搭建【转】
- jQuery-淡入淡出效果-fadeIn()淡进 fadeOut()淡出 fadeToggle();
- VUE 数据更新 视图没有更新
- Python 基础list 增删改查 解析
- docker-compose编排springcloud微服务
- vue cli 配置信息说明
- ntp服务问题
- [UE4]使用材质将图片变成黑白
- poj 3278 Catch That Cow(bfs+队列)
热门文章
- Appium 环境配置遇到的坑
- 2.2_springboot2.x消息RabbitMQ整合&amqpAdmin管理组件的使用
- Vue项目的配置项
- 第一周课堂笔记1th
- Servlet共享数据
- 2018-12-25-C#-7.2-通过-in-和-readonly-struct-减少方法值复制提高性能
- JS事件 什么是事件?JavaScript 创建动态页面。事件是可以被 JavaScript 侦测到的行为。 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件。
- php 图片旋转和png透明
- Docker的镜像 导出导入
- 9.spark Core 进阶2--Cashe