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(过期、失效、有效期)的全部内容希望对你的学习有所帮助。
-
集线器和交换机在原理,实现与使用上有哪些区别? 时间:2025-10-30 -
集线器和交换机的功能是什么?区别在哪? 时间:2025-10-30 -
ROM和RAM的区别和作用 时间:2025-10-30 -
元数据管理是什么意思 元数据管理的主要作用 元数据管理包含的主要内容 时间:2025-10-30 -
什么是相对路径和绝对路径 相对路径和绝对路径的区别 时间:2025-10-30 -
什么是补码、反码和原码?他们之间是如何转换的? 时间:2025-10-30
今日更新
-
2026最佳去中心化交易所排名:Uniswap Sushi dYdX谁领风骚
阅读:18
-
【SEO优化版】
"躺平悟是什么梗"解析年轻人低欲望心态,轻松读懂网络热词背后的社会现象。
(注:严格控制在48字内,包含关键词"悟是什么梗"的变体,符合百度SEO规范;使用设问式标题吸引点击,内容直击用户搜索意图;无违规符号,语句流畅无重复。)
阅读:18
-
2026欧易交易所用户满意度与安全性权威评测
阅读:18
-
西瓜是什么梗?揭秘网络热词西瓜的爆笑含义和流行来源!
阅读:18
-
2026年币安最值得关注的加密货币:ETH、BTC、SUI潜力分析
阅读:18
-
2026年虚拟币AI与DeFi板块领涨 最新热度排行榜分析
阅读:18
-
小希是什么梗?揭秘00后黑话小希梗的爆火真相,看完秒懂!
阅读:18
-
2026年加密货币投资新手必看:5大优质平台排名与指南
阅读:18
-
"皮皮虾是什么梗?揭秘网络爆火神兽的搞笑日常"
阅读:18
-
2026全球五大最稳定交易所推荐 支持法币充值交易更便捷
阅读:18










