详解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新手上路(三)
Oct 09 PHP
PHP 已经成熟
Dec 04 PHP
在任意字符集下正常显示网页的方法一
Apr 01 PHP
实用函数10
Nov 08 PHP
微信公众平台天气预报功能开发
Jul 06 PHP
PHP实现定时执行任务的方法
Oct 05 PHP
php提高网站效率的技巧
Sep 29 PHP
前端必学之PHP语法基础
Jan 01 PHP
mysql_escape_string()函数用法分析
Apr 25 PHP
Laravel搭建后台登录系统步骤详解
Jul 26 PHP
PHP 验证身份证是否合法的函数
Feb 09 PHP
laravel 实现向公共模板中传值 (view composer)
Oct 22 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
咖啡与牛奶
2021/03/03 冲泡冲煮
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
phpQuery占用内存过多的处理方法
2013/11/13 PHP
php-msf源码详解
2017/12/25 PHP
用js实现小球的自由移动代码
2013/04/22 Javascript
jquery form 隐藏的input 选择
2014/04/29 Javascript
JavaScript二维数组实现的省市联动菜单
2014/05/08 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
jQuery中on()方法用法实例详解
2015/02/06 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
JavaScript头像上传插件源码分享
2016/03/29 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
python Opencv将图片转为字符画
2021/02/19 Python
python中字符串的操作方法大全
2018/06/03 Python
Python类的继承、多态及获取对象信息操作详解
2019/02/28 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
解决Django Static内容不能加载显示的问题
2019/07/28 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
为什么说python适合写爬虫
2020/06/11 Python
python3中布局背景颜色代码分析
2020/12/01 Python
纯CSS3实现地球自转实现代码(图文教程附送源码)
2012/12/26 HTML / CSS
详解html2canvas截图不能截取圆角图片的解决方案
2018/01/30 HTML / CSS
Answear匈牙利:来自全球200多个知名时尚品牌
2017/04/21 全球购物
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
EQVVS官网:设计师男装和女装
2018/10/24 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
绩效专员岗位职责
2013/12/02 职场文书
写给老师的表扬信
2014/01/21 职场文书
2015年物业管理员工工作总结
2015/10/15 职场文书
党组织关系的介绍信模板
2019/06/21 职场文书