详解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扩展编写点滴 技巧收集
Mar 09 PHP
让的PHP代码飞起来的40条小技巧(提升php效率)
Apr 12 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
May 18 PHP
ucenter通信原理分析
Jan 09 PHP
php实现读取内存顺序号
Mar 29 PHP
php统计数组元素个数的方法
Jul 02 PHP
详解 PHP加密解密字符串函数附源码下载
Dec 18 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
Apr 02 PHP
joomla实现注册用户添加新字段的方法
May 05 PHP
Yii视图CGridView实现操作按钮定义地址示例
Jul 14 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
Feb 17 PHP
详解PHP版本兼容之openssl调用参数
Jul 25 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
深入for,while,foreach遍历时间比较的详解
2013/06/08 PHP
php jq jquery getJSON跨域提交数据完整版
2013/09/13 PHP
php递归删除目录下的文件但保留的实例分享
2014/05/10 PHP
Yii快速入门经典教程
2015/12/28 PHP
PHP保存session到memcache服务器的方法
2016/01/19 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
php+resumablejs实现的分块上传 断点续传功能示例
2017/04/18 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
FCK调用方法..
2006/12/21 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
2015/07/17 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
JavaScript实现无刷新上传预览图片功能
2017/08/02 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
2017/08/31 Javascript
常用的 JS 排序算法 整理版
2018/04/05 Javascript
VUE中使用MUI方法
2019/02/12 Javascript
js微信分享接口调用详解
2019/07/23 Javascript
JavaScript简易计算器制作
2020/01/17 Javascript
js对象简介与基本用法示例
2020/03/13 Javascript
python的类变量和成员变量用法实例教程
2014/08/25 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
神经网络理论基础及Python实现详解
2017/12/15 Python
python3.4实现邮件发送功能
2018/05/28 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
美国受欢迎的眼影品牌:BH Cosmetics
2016/10/25 全球购物
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
巴西购物网站:Estrela10
2018/12/13 全球购物
2014年乡镇个人工作总结
2014/12/03 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
MySQL 分页查询的优化技巧
2021/05/12 MySQL
手残删除python之后的补救方法
2021/06/26 Python
Typescript类型系统FLOW静态检查基本规范
2022/05/25 Javascript