跟随我在oracle学习php(37)
Posted rightgram
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跟随我在oracle学习php(37)相关的知识,希望对你有一定的参考价值。
Cookie的基本操作
设置(增删改)
函数:
Setcookie(KEY, VALUE)
完成cookie数据的设置,
Key存在则更新,不存在则添加。
如果值为空字符串,表示删除该KEY
获取(查)
获取浏览器在请求时携带的COOKIE数据
使用 超全局数组变量,$_COOKIE 完成对cookie数据获取。
php核心,在初始化阶段,会将所有请求的cookie数据,整理到$_COOKIE变量中,供PHP脚本所使用!
其中 每个$_COOKIE中的元素,对应一个cookie变量,元素的键就是cookie的KEY,元素的值,就是cookie的Value。
通过firebug的网络面板监视cookie的传输情况
设置cookie:在响应数据区,会出现set-cookie指令,用来服务器告知浏览器需要设置的cookie信息。
浏览器请求时:如果存在则在请求数据中携带:
Cookie的特征
有效期
默认:称之为临时cookie,也叫会话cookie。
会话周期结束(浏览器关闭)。
支持设置有效期:
Setcookie()的第三个参数可以对有效期进行设置,有效期采用一个时间戳进行表示!
是谁判定cookie失效了呢?
浏览器,服务器在设置cookie时,会同时告知浏览器该cookie的有效期。
浏览器在向服务器发送请求时,会检测cookie的是否有效,只有没有过有效期的cookie数据请求时,才会携带。
语法:
特殊的有效期值:
0, 默认的,表示会话周期
Time()-1,删除cookie的标准做法。setCookie(‘KEY’,‘’, time()-1)
PHP_INT_MAX: 逻辑上表示永久有效的cookie。
有效路径
默认:
Cookie在当前路径及其后代路径有效。 文件里面设置 文件外面获取不了
Tip:路径,不是代码所在文件的本地磁盘路径,而是URL请求的路径关系。
Tip:不同路径,下同名的cookie可以同时存储于浏览器端。
不过是,浏览器发出请求时,会先查找当前目录内有效的cookie,再向上查找,将所有有效的,都携带到服务器端,服务器在形成$_COOKIE时,会出现重写效果,先出现的保留!
可以通过setCookie()的第四个参数进行修改:
通常设置为/表示,站点根目录有效。也就是整站有效!
Tip:有效路径的判断也是在浏览器端。服务器会将有效路径设置时,告知浏览器:
语法:
‘’ 默认值。
有效域
默认:
Cookie仅仅在当前域下有效。
可以通过设置,使cookie的有效域,扩展到某个一级域名下的所有子域;
Test.kang.com
Shop.kang.com
.kang.com 一级域名
Test.kang.com二级域名
第五个参数可以做到:
是否仅安全传输
https://
加密的http协议!
默认:
Cookie,不论浏览器发出的是http还是https都会将有效的cookie携带的服务器端。
如果将 第 6 个参数设置为true,表示 激活仅安全连接传输,此时浏览器在向服务器发出请求时,如果请求协议为http,就不会向服务器发送这些设置为仅安全连接传输的cookie数据。
此时发出http非安全连接:仅仅not_secure 被传输了!
HTTPONLY
默认:
浏览器存储的cookie是可以被其他脚本所处理的
通过第7个参数,设置为HTTPONLY特性,表示仅仅在http请求中使用!
建议,该属性设置为true。
语法
Cookie值,仅仅支持字符串类型。
Cookie键,可以写成下标数组形式。
使用时,被整理成数组而已:
$_COOKIE仅仅存储是浏览器请求时携带的cookie。
当前脚本周期内,设置的cookie,不能在$_COOKIE中存在的。
类似于header(),setCookie()前也不能存在任何的输出。
以上是关于跟随我在oracle学习php(37)的主要内容,如果未能解决你的问题,请参考以下文章