本文实例分析了PHP cookie用法。分享给大家供大家参考,具体如下:
会话技术:cookie
允许服务器端脚本在浏览器存储数据的技术,
允许服务器向浏览器发送指令,用来管理存储在浏览器端的cookie数据
浏览器如果存储了某服务器所存储的cookie数据,请求时会带上cookie的数据
1
2
3
4
5
6
|
//增、改
setcookie(key,val);
//删
setcookie(key, '' );
//获取浏览器携带的cookie数据
$_COOKIE [key]
|
特征:
有效期:
默认是临时cookie,也叫会话cookie,会话结束(浏览器关闭)就清除。可以通过设置时间戳(1970年第一秒起)确定生命期,在浏览器端时间以格林威治标准时间(GMT)作为标准
1
2
3
4
5
6
7
8
|
setcookie(key,val,time()+60);
//代表保存1分钟,浏览器会检查是否失效
setcookie(key,val,0);
//默认会话
setcookie(key, '' ,time()-1);
//删除cookie
setcookie(key,val,PHP_INT_MAX);
//逻辑上表示永久有效
|
有效路径:
默认在当前路径及其后代路径有效。(路径不是代码所在文件的本地磁盘路径,而是url请求的路径关系)
不同路径下同名的cookie可同时存储于浏览器,浏览器会先查找当前目录内有效的cookie,再向上查找,所有有效的都会携带至服务器,服务器端形成$_COOKIE时,会出现重写效果,先出现的保留,
可以通过设置setcookie()第四个参数为'/'表示站点根目录有效,即整站有效。有效路径由浏览器判断,有效路径设置时候服务器会告知浏览器
1
|
setcookie(key,val,0, '/' );
|
有效域:
默认cookie仅仅在当前域下有效
可以通过设置使cookie的有效域,扩展到某个一级域名下的所有子域
1
2
3
4
|
me.com //一级域名
lig.me.com //二级域名
bee.me.com //二级域名
setcookie(key,val,0, '' , 'me.com' );
|
是否仅安全传输
默认不论浏览器发出的是http和https协议都会将有效的cookie携带给服务器
可以通过设置第六个参数为true,表示激活仅安全传输,此时浏览器发送请求时若为http协议,就不会发送这些设置为仅安全传输的cookie,apache需要加载openssl模块才能使用https协议
1
|
setcookie(key,val,0, '' , '' ,true);
|
HTTPonly
默认浏览器所存储的脚本可以被其它脚本调用处理
通过设置第7个参数使得只能cookie只能在http请求中使用
1
|
setcookie(key,val,0, '' , '' ,false,true);
|
注意:
cookie值只能是字符串类型
cookie键可以写成数组下标的形式
setcookie()前不能有输出(output_buffering)
希望本文所述对大家PHP程序设计有所帮助。