• 设置cookie
  • 删除cookie
  • cookie有效路径
  • session与cookie的异同
  • 使用session
  • 删除session
  • session存储用户信息

设置cookie

setcookie函数,参数如下:

  1. name( Cookie名)可以通过$_COOKIE[‘name’] 进行访问
  2. value(Cookie的值)
  3. expire(过期时间)Unix时间戳格式,默认为0,表示浏览器关闭即失效
  4. path(有效路径)如果路径设置为’/’,则整个网站都有效
  5. domain(有效域)默认整个域名都有效,如果设置了’www.imooc.com’,则只在www子域中有效

例子:

$value = 'test';
setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600);  //有效期一小时
setcookie("TestCookie", $value, time()+3600, "/path/", "xxx.com"); //设置路径与域

PHP中还有一个设置Cookie的函数setrawcookie

setrawcookie跟setcookie基本一样,唯一的不同就是value值不会自动的进行urlencode,因此在需要的时候要手动的进行urlencode。

setrawcookie('cookie_name', rawurlencode($value), time()+60*60*24*365); 

也可以使用header设置cookie

header("Set-Cookie:cookie_name=value");

删除cookie

删除cookie也是使用setcookie函数

将cookie的过期时间设置到当前时间之前,则该cookie会自动失效,也就达到了删除cookie的目的

setcookie('test', '', time()-1); 

cookie有效路径

cookie中的路径用来控制设置的cookie在哪个路径下有效,默认为’/’,在所有路径下都有,当设定了其他路径之后,则只在设定的路径以及子路径下有效,例如:

setcookie('test', time(), 0, '/path');

session与cookie的异同

cookie将数据存储在客户端,建立起用户与服务器之间的联系,通常可以解决很多问题,但是cookie仍然具有一些局限:

cookie相对不是太安全,容易被盗用导致cookie欺骗
单个cookie的值最大只能存储4k
每次请求都要进行网络传输,占用带宽

session是将用户的会话数据存储在服务端,没有大小限制,通过一个session_id进行用户识别,PHP默认情况下session id是通过cookie来保存的,因此从某种程度上来说,seesion依赖于cookie。但这不是绝对的,session id也可以通过参数来实现,只要能将session id传递到服务端进行识别的机制都可以使用session。

使用session

先执行session_start方法开启session,然后通过全局变量$_SESSION进行session的读写

session_start();
$_SESSION['test'] = time();
var_dump($_SESSION);

session会自动的对要设置的值进行encode与decode,因此session可以支持任意数据类型,包括数据与对象等。

session_start();
$_SESSION['ary'] = array('name' => 'jobs');
$_SESSION['obj'] = new stdClass();
var_dump($_SESSION);

默认情况下,session是以文件形式存储在服务器上的,因此当一个页面开启了session之后,会独占这个session文件,这样会导致当前用户的其他并发访问无法执行而等待。可以采用缓存或者数据库的形式存储来解决这个问题

删除session

使用unset

session_start();
$_SESSION['name'] = 'jobs';
unset($_SESSION['name']);
echo $_SESSION['name']; //提示name不存在

删除当前session所有数据

session_start();
$_SESSION['name'] = 'jobs';
$_SESSION['time'] = time();
session_destroy();

值得注意的是,session_destroy并不会立即的销毁全局变量$_SESSION中的值,只有当下次再访问的时候,$_SESSION才为空,因此如果需要立即销毁$_SESSION,可以使用unset函数。

session_start();
$_SESSION['name'] = 'jobs';
$_SESSION['time'] = time();
unset($_SESSION);
session_destroy();
var_dump($_SESSION); //此时已为空

如果需要同时销毁cookie中的session_id,通常在用户退出的时候可能会用到,则还需要显式的调用setcookie方法删除session_id的cookie值。

session存储用户信息

$_SESSION['uid'] = $userinfo['uid'];
$_SESSION['userinfo'] = $userinfo;

php笔记(4)——cookie与session相关推荐

  1. javaweb入门笔记(5)-cookie和session

    2019独角兽企业重金招聘Python工程师标准>>> javaweb入门笔记(5)-cookie和session 标签: javaweb [TOC] Cookie是客户端技术:Se ...

  2. 完全PHP5笔记之(COOKIE与SESSION篇)

    最近发现写博客也是提高 学习 效率的有效途径之一.好记性不如烂笔头,归纳总结时,你会发现总有一些东西你认为很熟了,它却在细微处讽刺你的错误.我学习COOKIE与SESSION 时,几乎把社区所有相关的 ...

  3. 【学习笔记】cookie、session、token和分布式session

    文章目录 cookie和Session session和token cookie和token总结 分布式Session cookie和Session 为什么要有session的出现? 答:是由于网络中 ...

  4. PHP笔记:Cookie和Session应用

    文章目录 为什么要使用回话,PHP使用回话的三种方式 PHP操作Cookie和Session的应用 Cookie实现控制登录时间(通过确保客户端的Cookie存活时间来确保登录有效时间) Cookie ...

  5. 爬虫笔记三 cookie 和 session和 正则 和 数据类型 和 代理

    cookie 和 session 产生的原因:http协议无状态,访问之间不能通讯 cookie 指某些网站为了辨别用户身份.进行会话跟踪而存储在用户本地终端上的数据. 做爬虫时,使用账号登录,封装c ...

  6. 爬虫课程笔记(二)Requests、代理、cookie和session

    爬虫课程笔记 Requests 使用入门 Requests作用 发送简单的请求 content和text 区别 发送带header的请求 发送带参数的请求 发送POST请求 贴吧爬虫案例 使用代理 c ...

  7. Cookie与Session相关学习笔记

    一.会话技术 会话: 为了实现某一个功能, 浏览器和服务器之间可能会产生多次的请求和响应, 从浏览器访问服务器开始, 到最后浏览器关闭, 这期间产生的多次请求和响应就称之为浏览器和服务器之间的一次会话 ...

  8. Web后端学习笔记 Flask(9)cookie and session

    Flask_wtf除了可以做表单验证,模板渲染之外,还可以防御CSRF攻击.要了解CSRF攻击的原理,首先需要了解cookie和session的知识点. cookie:在网站中,HTTP请求是无状态的 ...

  9. 【读书笔记】深入分析Java Web技术内幕-Cookie与Session

    1. cookie a. cookie的属性项(version1)i. NAME=VALUEii. versioniii. comment--注释项iv. commentURL--服务器为此cooki ...

  10. Cookie、Session和Token(学习笔记)

    HTTP协议本身是无状态的,所以需要一个标志来对用户身份进行验证 身份验证方式 基于cookie的身份验证 Cookie Session 应用场景 CSRF 基于token的身份验证 CORS tok ...

最新文章

  1. ubuntu14.04 下安装jdk1.8
  2. Windows中添加svnserve作为系统服务
  3. 冲刺阶段 day 6
  4. python制作考试系统_Python系统学习 - Pytest单元测试框架
  5. 圣诞节生成头像微信小程序源码1.3.0
  6. 获取linux数据段地址,获取kernel各个数据段,代码段的地址及范围
  7. (转) 淘淘商城系列——使用FastDFS-Client客户端进行上传图片的测试
  8. 开发是在什么部门办理_房产证办理流程是什么?办理房产证需要缴纳哪些费用?...
  9. Unity3D基础34.1:打砖块小游戏优化
  10. 转:深度解析Java8 – AbstractQueuedSynchronizer的实现分析(上)
  11. 文件锁-crontab组合神器
  12. 超微服务器主板型号,Supermicro超微主板X10SRL-FLGA-2011,单路入门级服务器主板
  13. hsqldb 的简单使用
  14. 国家地表水水质自动监测站坐标位置数据(共1946个点位,含断面名称、所在省份、所在城市、经度、纬度、所在河流、所在流域、断面属性、介绍、属地管理)
  15. python k线斜率计算公式_通达信公式K线斜率+选股指标源码
  16. Leetcode 5855 数组第K大的整数
  17. 计算机游戏如何产生娱乐效果,浅谈电脑游戏与信息技术教学
  18. 基于 vue3 element-plus 的暗黑模式
  19. weico.cc微博链接
  20. 拉钩教育高薪训练营学习笔记

热门文章

  1. 国家开放大学2021春1039高级财务会计题目
  2. 南京理工大学计算机专业考研,南京理工大学计算机专业考研复试经验
  3. 云计算-JavaAPI与Hadoop的互联的实现
  4. python循环绘制六角星_python画五角星和六角星程序
  5. 力控液位控制增量式PID算法
  6. ubuntu20.04+GPU+CUDA11.1+cuDNN8.0.5+Miniconda3+pytorch1.8.1+torchversion0.9.1+pycharm
  7. 学堂在线_软件工程 专业基础知识点 笔记
  8. 机器人编程按时巡线_ros机器人编程实践(12.2)- 用turtlebot仿真巡线机器人
  9. 昆山农商行手机银行服务器证书,昆山农商行网上银行常见问题处理
  10. 服务器未启动性能计数器,服务器和电脑无故间隔性自动重启或死机 处理 Performance 扩展计数器提供程序时,性能注册表值中的性能字符串被损坏...