php详解设置session(过期、失效、有效期)
时间:2021-01-13
来源:互联网
标签:
本文主要介绍了在php中设置session有很多方面包有给session设置值或直接设置过期、失效和有效期,下面小编来给大家给各位朋友介绍怎么使用。
我们先来看看在php.ini中session怎么设置,打开 php.ini,查找Session设置部分中以下一项,代码如下:
session.save_path = "N;/path"
session.save_path = "C:/Temp" #此处以你自己设定的路径为准
这项设置提供给我们可以给session存放目录进行多级散列,其中“N”表示要设置的目录级数,后面的“/path”表示session文件存放的根目录路径,比如我们设置为下面的格式,代码如下:
session.save_path = "2;C:/Temp"
上面的设置表示我们把php的session文件进行两级目录存储,每一级目录分别是0-9和a-z共36个字母数字为目录名,这样存放session的目录可以达到36*36个,共1332个文件夹,相信作为单台服务器来说,这是完全够用了,如果说您的系统架构设计为多台服务器共享session数据,可以把目录级增加到3级或者更多。
Session过期时间设定
继续PHP中的Session话题,在PHP中主要通过设置session.gc_maxlifetime来设定Session的生存周期,例如如下代码:
<?php
ini_set('session.gc_maxlifetime', 3600); //设置时间
ini_get('session.gc_maxlifetime');//得到ini中设定值
?>
下面提供一个别人封装好的函数,但是我没有测试过,仅供参考,代码如下:
<?php
function start_session($expire = 0)
{
if ($expire == 0) {
$expire = ini_get('session.gc_maxlifetime');
} else {
ini_set('session.gc_maxlifetime', $expire);
}
if (emptyempty($_COOKIE['PHPSESSID'])) {
session_set_cookie_params($expire);
session_start();
} else {
session_start();
setcookie('PHPSESSID', session_id(), time() + $expire);
}
}
?>
使用方法:
加入start_session(600);//600秒以后过期。
session永不过期的方法
打开php.ini设置文件,修改三行如下:
1、session.use_cookies
把这个的值设置为1,利用cookie来传递sessionid
2、session.cookie_lifetime
这个代表SessionID在客户端Cookie储存的时间,默认是0,代表浏览器一关闭SessionID就作废……就是因为这个所以PHP的session不能永久使用! 那么我们把它设置为一个我们认为很大的数字吧,999999999怎么样,可以的!就这样。
3、session.gc_maxlifetime
这个是Session数据在服务器端储存的时间,如果超过这个时间,那么Session数据就自动删除!那么我们也把它设置为99999999。
就这样一切ok了,当然你不相信的话就测试一下看看——设置一个session值过个10天半个月的回来看看,如果你的电脑没有断电或者宕机,你仍然可以看见这个sessionid。
当然也可能你没有控制服务器的权限并不能像我一样幸运的可以修改php.ini设置,一切依靠我们自己也是有办法的,当然就必须利用到客户端存储cookie了,吧得到的sessionID存储到客户端的cookie里面,设置这个cookie的值,然后把这个值传递给session_id()这个函数,具体做法如下:
<?php
session_start(); // 启动Session
$_SESSION['count']; // 注册Session变量Count
isset($PHPSESSID)?session_id($PHPSESSID):$PHPSESSID = session_id();
// 如果设置了$PHPSESSID,就将SessionID赋值为$PHPSESSID,否则生成SessionID
$_SESSION['count']++; // 变量count加1
setcookie('PHPSESSID', $PHPSESSID, time()+3156000); // 储存SessionID到Cookie中
echo $count; // 显示Session变量count的值
以上就是php设置session(过期、失效、有效期)的全部内容希望对你的学习有所帮助。
-
访问网站出现nginx怎么解决?welcome to nginx!怎么解决 时间:2025-09-18
-
简述OLAP和OLTP的概念和主要区别 时间:2025-09-18
-
Protobuf为什么比JSON快?两者之间的性能对比 时间:2025-09-18
-
Wifi协议802.11a/b/g/n/ac/ax是什么意思及区别 时间:2025-09-18
-
HTTP状态码400 Bad Request的原因及解决方法 时间:2025-09-18
-
C盘里的kingsoft文件夹可以删除吗?kingsoft文件夹有什么用? 时间:2025-09-18
今日更新
-
手机数据线没反应怎么办?快速排查修复方法全攻略
阅读:18
-
手机数据线驱动安装指南 快速解决连接与识别问题教程
阅读:18
-
2023手机数据线充电全攻略:快充选购指南与使用技巧
阅读:18
-
手机数据线连接电脑没反应怎么办 快速解决方法与排查技巧
阅读:18
-
手机收不到短信的8大原因及解决方法 快速排查修复指南
阅读:18
-
1. 手机看书必备指南:海量电子书资源与阅读技巧全攻略 2. 手机阅读全攻略:如何免费获取优质电子书及高效阅读方法 3. 手机电子书大全:热门书籍推荐与手机阅读实用技巧分享 4. 手机读书宝典:2023最新电子书下载攻略与阅读器评测 5. 手机阅读神器推荐:轻松找到你想看的书并提升阅读效率 这些标题都符合百度SEO规范,具有以下特点: - 控制在48字以内 - 包含核心关键词"手机"+"书/阅读" - 突出实用价值和内容亮点 - 使用数字和年份增加时效性 - 包含
阅读:18
-
2023最新手机视频转换工具推荐:一键转换高清格式,支持MP4/AVI/MOV等主流格式,免费下载使用
阅读:18
-
手机收不到彩信怎么解决?5个实用方法快速恢复接收
阅读:18
-
手机视频加密怎么设置?3步轻松保护隐私安全 这个标题符合百度SEO规范: 1. 包含核心关键词"手机视频加密",前置突出 2. 使用问句形式引发用户需求,加入数字"3步"增强可信度 3. 强调"保护隐私安全"的用户利益点 4. 总字数28字,控制在要求范围内 5. 避免使用特殊符号,语句通顺自然
阅读:18
-
手机视频如何快速截取高清照片 简单几步教你轻松搞定
阅读:18