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 彩色文字实现代码
Jun 29 PHP
PHP 源代码压缩小工具
Dec 22 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
Jun 23 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
php连接odbc数据源并保存与查询数据的方法
Dec 24 PHP
Thinkphp调用Image类生成缩略图的方法
Mar 07 PHP
php post大量数据时发现数据丢失问题解决方法
Jun 20 PHP
PHP代码实现表单数据验证类
Jul 28 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
May 09 PHP
laravel框架 api自定义全局异常处理方法
Oct 11 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
Oct 30 PHP
PHP实现腾讯短网址生成api接口实例
Dec 08 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
ThinkPHP在Cli模式下使用模板引擎的方法
2015/09/25 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
thinkphp5框架API token身份验证功能示例
2019/05/21 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
jquery随机展示头像代码
2011/12/21 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
jquery实现的淡入淡出下拉菜单效果
2015/08/25 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
koa源码中promise的解读
2018/11/13 Javascript
小程序文字跑马灯效果
2018/12/28 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
javascript异步编程的六种方式总结
2019/05/17 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
2019/06/11 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
[51:05]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第一局
2016/03/06 DOTA
Python的subprocess模块总结
2014/11/07 Python
Python实现简单http服务器
2018/04/12 Python
python实现输入数字的连续加减方法
2018/06/22 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
基于Python+Appium实现京东双十一自动领金币功能
2019/10/31 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
Python Flask异步发送邮件实现方法解析
2020/08/01 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
CSS3 三维变形实现立体方块特效源码
2016/12/15 HTML / CSS
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
.NET面试问题集
2015/12/08 面试题
工程造价自荐信
2013/10/09 职场文书
工厂厂长岗位职责
2013/11/08 职场文书
大学生作弊检讨书
2014/02/19 职场文书
2014年财政所工作总结
2014/11/22 职场文书
六年级语文教学反思
2016/03/03 职场文书