SESSION和COOKIE的实例解析

我们php中写有

<?php
session_start();
print_r($_SESSION);
echo $_COOKIE[session_name()];
?>

session_name()就是php.ini中定义的PHPSESID,就是唯一标识的id,然后这个字段会作为键值存放到COOKIE的数组里面.但是COOKIE是第二次才生效的,不是第一次就生效的.所以第一次就会出现不存在COOKIE中的这个值,当我们第二次刷新页面的时候就有了.

这里写图片描述

而第二次刷新的时候就会出现我们想看到的COOKIE的SESSIONID

这里写图片描述

当然你会问COOKIE存放在哪里,我们可以通过FIREBUG来查看

这里写图片描述

在个时候,我们服务器端wamp/tmp里面就存在了这个session

这里写图片描述

那么cookie会在关闭浏览器之后就丢失.
假如我们自己延长COOKIE的过期时间比如

<?php
session_start();
print_r($_SESSION);
//先取消下面注释执行,然后刷新页面,然后加注释,再刷新页面
//setcookie('a',$_COOKIE[session_name()],time()+60);
echo $_COOKIE['a'];

这里是关闭了浏览器再打开.获取到了对应的COOKIE,注意firebug里面那个路径是指这个路径下可以获取COOKIE的意思,不是COOKIE存放位置,COOKIE存放位置在C盘中

这里写图片描述

过了一分钟之后就会出现获取不到COOKIE.过期

这里写图片描述

那么这样我们把相关的加密好的一个含有用户信息的东西存放到COOKIE里面,然后设置比如十天的过期时间.那么这样就可以实现关闭浏览器也保存用户状态的功能了.

那么关于SESSION的过期,当我们start以后创建的session会存放在tmp目录下,而一般php.ini会定义了

这里写图片描述

这里的1440s就代表24min如果session没有被访问,就是如果没有刷新页面的时候,就会被视为过期.而过期之后gc不一定会回收,是按照几率来回收的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值