详解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将向Java靠拢
Oct 09 PHP
利用php来自动调用不同服务器上的flash
Oct 09 PHP
php不用内置函数对数组排序的两个算法代码
Feb 08 PHP
PHP 调试工具Debug Tools
Apr 30 PHP
判断php数组是否为索引数组的实现方法
Jun 13 PHP
php快递单号查询接口使用示例
May 05 PHP
PHP获取windows登录用户名的方法
Jun 24 PHP
Codeigniter(CI)框架分页函数及相关知识
Nov 03 PHP
ThinkPHP有变量的where条件分页实例
Nov 03 PHP
PC端微信扫码支付成功之后自动跳转php版代码
Jul 07 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
Jul 31 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 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
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
PHP连接access数据库
2008/03/27 PHP
mac下Apache + MySql + PHP搭建网站开发环境
2014/06/02 PHP
PHP如何根据文件头检测文件类型实例代码
2018/10/14 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
PHP高并发和大流量解决方案整理
2021/03/09 PHP
jQuery 前的按键判断代码
2010/03/19 Javascript
基于jquery &amp; json的省市区联动代码
2012/06/26 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
2015/03/03 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
jQuery实现鼠标经过事件的延时处理效果
2020/08/20 Javascript
jQuery中设置form表单中action值的实现方法
2016/05/25 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
微信小程序登录态控制深入分析
2017/04/12 Javascript
Vue.js中extend选项和delimiters选项的比较
2017/07/17 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
2017/12/13 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
2020/05/14 Javascript
简单的Python2.7编程初学经验总结
2015/04/01 Python
Python求导数的方法
2015/05/09 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
Python异常处理操作实例详解
2018/05/10 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
python类中super() 的使用解析
2019/12/19 Python
Pytorch to(device)用法
2020/01/08 Python
详解Django中异步任务之django-celery
2020/11/05 Python
前后端结合实现amazeUI分页效果
2020/08/21 HTML / CSS
方正Java笔试题
2014/07/03 面试题
银行自荐信范文
2013/10/07 职场文书
劳资员岗位职责
2013/11/11 职场文书
报效祖国演讲稿
2014/09/15 职场文书
中学生运动会新闻稿
2014/09/24 职场文书
警察群众路线对照检查材料思想汇报
2014/10/01 职场文书
Python os和os.path模块详情
2022/04/02 Python