PHP会话操作之cookie用法分析


Posted in PHP onSeptember 28, 2016

本文实例分析了PHP cookie用法。分享给大家供大家参考,具体如下:

会话技术:cookie

允许服务器端脚本在浏览器存储数据的技术,
允许服务器向浏览器发送指令,用来管理存储在浏览器端的cookie数据
浏览器如果存储了某服务器所存储的cookie数据,请求时会带上cookie的数据

//增、改
setcookie(key,val);
//删
setcookie(key,'');
//获取浏览器携带的cookie数据
$_COOKIE[key]

特征:

有效期:

默认是临时cookie,也叫会话cookie,会话结束(浏览器关闭)就清除。可以通过设置时间戳(1970年第一秒起)确定生命期,在浏览器端时间以格林威治标准时间(GMT)作为标准

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()第四个参数为'/'表示站点根目录有效,即整站有效。有效路径由浏览器判断,有效路径设置时候服务器会告知浏览器

setcookie(key,val,0,'/');

有效域:

默认cookie仅仅在当前域下有效

可以通过设置使cookie的有效域,扩展到某个一级域名下的所有子域

me.com      //一级域名
lig.me.com    //二级域名
bee.me.com    //二级域名
setcookie(key,val,0,'','me.com');

是否仅安全传输

默认不论浏览器发出的是http和https协议都会将有效的cookie携带给服务器

可以通过设置第六个参数为true,表示激活仅安全传输,此时浏览器发送请求时若为http协议,就不会发送这些设置为仅安全传输的cookie,apache需要加载openssl模块才能使用https协议

setcookie(key,val,0,'','',true);

HTTPonly

默认浏览器所存储的脚本可以被其它脚本调用处理
通过设置第7个参数使得只能cookie只能在http请求中使用

setcookie(key,val,0,'','',false,true);

注意:

cookie值只能是字符串类型
cookie键可以写成数组下标的形式
setcookie()前不能有输出(output_buffering)

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
在PHP中使用XML
Oct 09 PHP
一个简单的自动发送邮件系统(一)
Oct 09 PHP
在数据量大(超过10万)的情况下
Jan 15 PHP
PHP register_shutdown_function函数的深入解析
Jun 03 PHP
php仿QQ验证码的实例分析
Jul 01 PHP
PHP魔术引号所带来的安全问题分析
Jul 15 PHP
php中call_user_func函数使用注意事项
Nov 21 PHP
PHP中的流(streams)浅析
Jul 02 PHP
php+ajax 实现输入读取数据库显示匹配信息
Oct 08 PHP
php结合md5的加密解密算法实例
Sep 30 PHP
PHP创建自己的Composer包方法
Apr 09 PHP
PHP中常见的密码处理方式和建议总结
Oct 14 PHP
PHP session会话操作技巧小结
Sep 27 #PHP
PHP简单预防sql注入的方法
Sep 27 #PHP
PHP数据对象PDO操作技巧小结
Sep 27 #PHP
PHP基于GD库的图像处理方法小结
Sep 27 #PHP
PHP文件上传操作实例详解
Sep 27 #PHP
PHP目录操作实例总结
Sep 27 #PHP
PHP文件操作实例总结
Sep 27 #PHP
You might like
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
PHP array_multisort() 函数的深入解析
2013/06/20 PHP
php检测文件编码的方法示例
2014/04/25 PHP
PHP Session机制简介及用法
2014/08/19 PHP
PHP+Ajax 检测网络是否正常实例详解
2016/12/16 PHP
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
jQuery学习笔记之toArray()
2014/06/09 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
express的中间件basicAuth详解
2014/12/04 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
Nodejs实现用户注册功能
2019/04/14 NodeJs
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
python脚本替换指定行实现步骤
2017/07/11 Python
python实现定时提取实时日志程序
2018/06/22 Python
tensorflow 加载部分变量的实例讲解
2018/07/27 Python
python实现操作文件(文件夹)
2019/10/31 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
python支持多继承吗
2020/06/19 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
J2EE包括哪些技术
2016/11/25 面试题
绿化工程实施方案
2014/03/17 职场文书
保护环境演讲稿
2014/05/10 职场文书
户籍证明格式
2014/09/15 职场文书
企业整改报告范文
2014/11/08 职场文书
Python基础 括号()[]{}的详解
2021/11/07 Python
vue+echarts实现多条折线图
2022/03/21 Vue.js
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android