详解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 相关文章推荐
WINXP下apache+php4+mysql
Nov 25 PHP
PHP 的 __FILE__ 常量
Jan 15 PHP
PHP 判断常量,变量和函数是否存在
Apr 26 PHP
一步一步学习PHP(8) php 数组
Mar 05 PHP
php函数serialize()与unserialize()用法实例
Nov 06 PHP
php中获取主机名、协议及IP地址的方法
Nov 18 PHP
php中socket通信机制实例详解
Jan 03 PHP
如何使用PHP对网站验证码进行破解
Sep 17 PHP
PHP给文字内容中的关键字进行套红处理
Apr 12 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
Jul 06 PHP
Laravel的throttle中间件失效问题解决方法
Oct 09 PHP
基于PHP实现微信小程序客服消息功能
Aug 12 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中10个不常见却非常有用的函数
2010/03/21 PHP
PHP 图片上传代码
2011/09/13 PHP
如何使用PHP计算上一个月的今天
2013/05/23 PHP
开源php中文分词系统SCWS安装和使用实例
2014/04/11 PHP
php字符串分割函数用法实例
2015/03/17 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
javascript dom 基本操作小结
2010/04/11 Javascript
JS实现为表格动态添加标题的方法
2015/03/31 Javascript
javascript封装 Cookie 应用接口
2015/08/07 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
vue.js选中动态绑定的radio的指定项
2017/06/02 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
Vue程序调试的方法
2019/06/17 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
2020/08/27 Javascript
Python中的异常处理相关语句基础学习笔记
2016/07/11 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
2019/07/03 Python
django-rest-swagger对API接口注释的方法
2019/08/29 Python
python 实现按对象传值
2019/12/26 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
python3 sorted 如何实现自定义排序标准
2020/03/12 Python
Python中常见的数制转换有哪些
2020/05/27 Python
css3中flex布局宽度不生效的解决
2020/12/09 HTML / CSS
处理textarea中的换行和空格
2019/12/12 HTML / CSS
最新自我评价范文
2013/11/16 职场文书
职业生涯规划书范文
2014/03/10 职场文书
英文自荐信常用句子
2014/03/26 职场文书
代收款委托书范本
2014/10/01 职场文书
2016年万圣节家长开放日活动总结
2016/04/05 职场文书
不负正版帝国之名 《重返帝国》引领SLG手游制作新的标杆
2022/04/07 其他游戏