详解php设置session(过期、失效、有效期)


Posted in PHP onNovember 12, 2015

在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的具体做法,内容涉及session设置值或直接设置过期、失效和有效期,希望对大家的学习有所帮助。

PHP 相关文章推荐
用PHP和ACCESS写聊天室(十)
Oct 09 PHP
php &amp;&amp; 逻辑与运算符使用说明
Mar 04 PHP
PHP图片验证码制作实现分享(全)
May 10 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
Sep 23 PHP
ThinkPHP中ajax使用实例教程
Aug 22 PHP
ThinkPHP实现更新数据实例详解(demo)
Jun 29 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
Oct 08 PHP
Laravel日志用法详解
Oct 09 PHP
THinkPHP获取客户端IP与IP地址查询的方法
Nov 14 PHP
php实现的数组转xml案例分析
Sep 28 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
Sep 29 PHP
PHP实现单条sql执行多个数据的insert语句方法
Oct 11 PHP
php表单提交实例讲解
Nov 12 #PHP
php用户注册信息验证正则表达式
Nov 12 #PHP
php验证码的制作思路和实现方法
Nov 12 #PHP
两款万能的php分页类
Nov 12 #PHP
微信获取用户地理位置信息的原理与步骤
Nov 12 #PHP
php验证手机号码
Nov 11 #PHP
Thinkphp无限级分类代码
Nov 11 #PHP
You might like
用PHP程序实现支持页面后退的两种方法
2008/06/30 PHP
PHP编码规范的深入探讨
2013/06/06 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
PHP培训要多少钱
2017/06/06 PHP
jQuery 开发者应该注意的9个错误
2012/05/03 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
在JS中解析HTML字符串示例代码
2014/04/16 Javascript
用json方式实现在 js 中建立一个map
2014/05/02 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
2015/04/16 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
jQuery实现带水平滑杆的焦点图动画插件
2016/03/08 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
关于使用js算总价的问题
2017/06/23 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
详解如何更好的使用module vuex
2019/03/27 Javascript
vue模式history下在iis中配置流程
2019/04/17 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
深入剖析JavaScript instanceof 运算符
2019/06/14 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
2020/05/31 Javascript
JS中准确判断变量类型的方法
2020/06/01 Javascript
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
简单上手Python中装饰器的使用
2015/07/12 Python
简单谈谈Python中函数的可变参数
2016/09/02 Python
python绘制评估优化算法性能的测试函数
2019/06/25 Python
python+pygame实现坦克大战
2019/09/10 Python
Python基于yield遍历多个可迭代对象
2020/03/12 Python
django 取消csrf限制的实例
2020/03/13 Python
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
英国领先的在线高尔夫商店:Scottsdale Golf
2019/08/26 全球购物
护士实习自我鉴定
2013/10/22 职场文书
心理健康心得体会
2014/01/02 职场文书
邀请书模板
2015/02/02 职场文书
七一建党节慰问信
2015/02/14 职场文书
Python图像处理库PIL详细使用说明
2022/04/06 Python
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers