详解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 相关文章推荐
基于文本的访客签到簿
Oct 09 PHP
深入理解PHP原理之异常机制
Aug 21 PHP
Zend的MVC机制使用分析(二)
May 02 PHP
用 Composer构建自己的 PHP 框架之构建路由
Oct 30 PHP
php随机取mysql记录方法小结
Dec 27 PHP
php调用mysql存储过程实例分析
Dec 29 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
Mar 18 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 PHP
CI框架实现框架前后端分离的方法详解
Dec 30 PHP
PHP开发的微信现金红包功能示例
Jun 29 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
Apr 09 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
一个简单的自动发送邮件系统(一)
2006/10/09 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
PHP has encountered a Stack overflow问题解决方法
2014/11/03 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
2015/02/12 PHP
php目录拷贝实现方法
2015/07/10 PHP
PHP 中常量的知识整理
2017/04/14 PHP
jQuery基础知识filter()和find()实例说明
2010/07/06 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
2011/04/27 Javascript
JS分割字符串并放入数组的函数
2011/07/04 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
JavaScript创建类/对象的几种方式概述及实例
2013/05/06 Javascript
JS禁用浏览器退格键实现思路及代码
2013/10/29 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
jquery mobile界面数据刷新的实现方法
2016/05/28 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
python中文乱码的解决方法
2013/11/04 Python
简单介绍Python中的几种数据类型
2016/01/02 Python
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
python利用Guetzli批量压缩图片
2017/03/23 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
python处理multipart/form-data的请求方法
2018/12/26 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
python3+django2开发一个简单的人员管理系统过程详解
2019/07/23 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
出纳岗位职责范本
2013/12/01 职场文书
2014年公司庆元旦活动方案
2014/03/05 职场文书
优质服务活动实施方案
2014/05/02 职场文书
幼儿教师师德承诺书
2014/05/23 职场文书
大学生找工作求职信
2014/07/09 职场文书
学校师德师风自我剖析材料
2014/09/29 职场文书
音乐之声观后感
2015/06/04 职场文书
前端canvas中物体边框和控制点的实现示例
2022/08/05 Javascript