详解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中利用XML技术构造远程服务(下)
Oct 09 PHP
使用PHP获取网络文件的实现代码
Jan 01 PHP
PHP中获取变量的变量名的一段代码的bug分析
Jul 07 PHP
表格展示无限级分类(PHP版)
Aug 21 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
Aug 21 PHP
Zend的MVC机制使用分析(一)
May 02 PHP
PHP可变函数的使用详解
Jun 14 PHP
PHP遍历并打印指定目录下所有文件实例
Feb 10 PHP
ThinkPHP关于session的操作方法汇总
Jul 18 PHP
thinkphp中的多表关联查询的实例详解
Oct 12 PHP
PHP使用函数用法详解
Sep 30 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 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
第十节 抽象方法和抽象类 [10]
2006/10/09 PHP
php线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
解析php中curl_multi的应用
2013/07/17 PHP
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
PHP反向代理类代码
2014/08/15 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
可简单避免的三个JS发布错误的详细介绍
2013/08/02 Javascript
js实现简单的购物车有图有代码
2014/05/26 Javascript
jQuery实现tab标签自动切换的方法
2015/02/28 Javascript
jquery获取多个checkbox的值异步提交给php
2015/07/07 Javascript
如何用angularjs制作一个完整的表格
2016/01/21 Javascript
jQuery插件pagination实现无刷新分页
2016/05/21 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
Javascript单例模式的介绍和实例
2016/10/08 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
利用JS做网页特效_大图轮播(实例讲解)
2017/08/09 Javascript
JavaScript中如何判断一个值的类型
2017/09/15 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
2021/01/19 Vue.js
Python群发邮件实例代码
2014/01/03 Python
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
2018/08/02 Python
python中的tcp示例详解
2018/12/09 Python
python远程邮件控制电脑升级版
2019/05/23 Python
Pytest单元测试框架如何实现参数化
2020/09/05 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
学雷锋月活动总结
2014/04/25 职场文书
学雷锋活动总结报告
2014/06/26 职场文书
罚站检讨书
2015/01/29 职场文书
高考诚信考试承诺书
2015/04/29 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书