开发者社区> y0umer> 正文

PHP中全局变量$_REQUEST、 $_GET、 $_POST、 $_COOKIE 的关系和区别 (转载)

简介: 原文地址找不到了 sorry $_REQUEST、 $_GET、 $_POST、 $_COOKIE  的关系和区别:1.关系:$_REQUEST包含了$_GET、$_POST、$_COOKIE的所有内容,是它们的集合体。
+关注继续查看

原文地址找不到了 sorry快哭了

$_REQUEST、 $_GET、 $_POST、 $_COOKIE  的关系和区别:
1.关系:$_REQUEST包含了$_GET、$_POST、$_COOKIE的所有内容,是它们的集合体。(测试1)


2.$_GET、$_POST、$_COOKIE在$_REQUEST中都有一个副本。改变$_REQUEST的值不影响$_GET等,反之亦然。(测试2)

3.GET和POST同名的情况下,$_REQUEST取的是POST的值。(测试3)


4.COOKIE与GET或POST重名的情况下,$_REQUEST取的是COOKIE的值。COOKIE的优先级最高。(测试4)

测试开始。

测试1:
echo '<pre>';//源格式打印
//URL加上m=xxoo来测试$_GET
    print_r($_REQUEST);//首先打印内容
    print_r($_GET);

    $_REQUEST = array();//清空$_REQUEST
    echo $_GET['m'];
echo '</pre>'; 

测试结果:$_GET['m']的值是xxoo。

测试2:
echo '<pre>';//源格式打印
//URL加上m=xxoo来测试$_GET
    print_r($_REQUEST);
    print_r($_GET);

    $_GET = array();//清空
    print_r($_REQUEST);
echo '</pre>'; 

测试结果:$_REQUEST['m']的值是xxoo。

结论:对$_REQUEST的操作没有影响到$_GET,反之亦然。$_REQUEST只是包含了一个$_GET的副本(the same as $_POST 哈哈)。

测试3
//POST-GET重名测试
//从其他页面POST传送一个m的值为post,action地址加上m=get
    print_r($_REQUEST);
    print_r($_GET);
    print_r($_POST);
 

结果:$_REQUEST['m'] == 'post'。
结论:同时提交GET和POST且同名,$_REQUEST取的是POST的值。(可能是POST优先级更高。)

测试4
//cookie与post\get 重名测试
setcookie('m', 'cookie', time()+3600);//先把COOKIE种上,名字为m,值为cookie。然后刷新。(COOKIE要刷新才生效)

//从其他页面POST传送一个m的值为post,action地址加上m=get
print_r($_REQUEST); 

结果:$_REQUEST['m'] == 'cookie'。结论:COOKIE的优先级最高。



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PHP的cookie删除机制是怎样的?底层原理是什么?
PHP的cookie删除机制是怎样的?底层原理是什么?
3 0
为什么PHP的session的底层实现是基于HTTP cookie机制?底层原理是什么?
为什么PHP的session的底层实现是基于HTTP cookie机制?底层原理是什么?
9 0
PHP为什么需要设置session_set_cookie_params()函数来配置session的cookie参数?
PHP为什么需要设置session_set_cookie_params()函数来配置session的cookie参数?
10 0
[Cookie,Session,浏览器,UNIX,PHP]PHP面试中会话控制的内容介绍
  一、session   PHP的会话也称为Session。PHP在操作Session时,当用户登录或访问一些初始页面时服务器会为客户端分配一个SessionID。SessionID是一个加密的随机数字,在Session的生命周期中保存在客户端。它可以保存在用户机器的Cookie中,也可以通过URL在网络中进行传输。   用户通过SessionID可以注册一些特殊的变量,称为会话变量,这些变量的数据保存在服务器端。在一次特定的网站连接中,如果客户端可以通过Cookie或URL找到SessionID,那么服务器就可以根据客户端传来的SessionID访问会话保存在服务器端的会话变量。
77 0
PHP 源码探秘 - 因为 Java 和 Php 在获取客户端 cookie 方式不同引发的 bug
PHP 源码探秘 - 因为 Java 和 Php 在获取客户端 cookie 方式不同引发的 bug
331 0
PHP技术月刊第3期:因为 Java 和 Php 在获取客户端 cookie 方式不同引发的 bug
云栖社区“世界上最好的编程语言”——PHP开始发布技术月刊啦。PHP技术月刊将会为大家介绍最新的PHP技术与动态、预告活动、最热问答以及技术直播等,欢迎大家订阅。 最新动态 因为 Java 和 Php 在获取客户端 cookie 方式不同引发的 bug遇到个 Java 和 Php 在获取客户端 cookie 方式不同导致跨系统的问题。
1203 0
因为 Java 和 Php 在获取客户端 cookie 方式不同引发的 bug
## Java 请求信息 ```bash GET / HTTP/1.1 Host: localhost:7003 Connection: keep-alive Pragma: no-cache Cache-Control: no-cache Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.
1484 0
PHP学习10——Cookie和Session技术
主要内容: Cookie技术 创建cookie 查看cookie 读取cookie 用cookie记录访问时间和次数 删除cookie cookie的生命周期  Session技术 session工作原理 session控制 session的存储结构 传递session_id   cookie和session是2中不同的存储机制。
1427 0
Java Web && PHP 对比——Cookie篇
JSP和PHP的**Cookie**设置和获取
1012 0
+关注
y0umer
高级网络安全技术员
文章
问答
文章排行榜
最热
最新
相关电子书
更多
PHP安全开发_从白帽角度做安全
立即下载
PHP在机器学习上的应用及云深度学习平台的架构设计与实现
立即下载
复杂PHP系统性能瓶颈排查及优化
立即下载
相关实验场景
更多