详解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数据库连接类~~做成一个分页类!
Nov 25 PHP
Linux下将excel数据导入到mssql数据库中的方法
Feb 08 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
May 15 PHP
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
Nov 21 PHP
php面向对象 字段的声明与使用
Jun 14 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
Jun 24 PHP
php读取excel文件的简单实例
Aug 26 PHP
thinkphp实现面包屑导航(当前位置)例子分享
May 10 PHP
PHP封装分页函数实现文本分页和数字分页
Oct 23 PHP
php使用cookie保存登录用户名的方法
Jan 26 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
Feb 10 PHP
基于laravel-admin 后台 列表标签背景的使用方法
Oct 03 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
thinkPHP使用post方式查询时分页失效的解决方法
2015/12/09 PHP
PHP使用curl函数发送Post请求的注意事项
2016/11/26 PHP
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
jQuery实现下拉框选择图片功能实例
2015/08/08 Javascript
在AngularJS框架中处理数据建模的方式解析
2016/03/05 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
2017/04/07 Javascript
基于Vue2x的图片预览插件的示例代码
2018/05/14 Javascript
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
python简单猜数游戏实例
2015/07/09 Python
python制作花瓣网美女图片爬虫
2015/10/28 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
2017/11/20 Python
详解如何利用Cython为Python代码加速
2018/01/27 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
2018/04/09 Python
python 处理dataframe中的时间字段方法
2018/04/10 Python
python 编码规范整理
2018/05/05 Python
一行python实现树形结构的方法
2019/08/09 Python
大家都说好用的Python命令行库click的使用
2019/11/07 Python
Python ArgumentParse的subparser用法说明
2020/04/20 Python
在keras中model.fit_generator()和model.fit()的区别说明
2020/06/17 Python
超酷炫 CSS3垂直手风琴菜单
2016/06/28 HTML / CSS
毕业生求职简历中的自我评价
2013/10/18 职场文书
成龙霸王洗发水广告词
2014/03/14 职场文书
新品发布会策划方案
2014/06/08 职场文书
2015年试用期工作总结
2014/12/12 职场文书