如何严格设置php中session过期时间

 我来答
本文少
推荐于2016-01-04 · 超过17用户采纳过TA的回答
知道答主
回答量:27
采纳率:0%
帮助的人:21.8万
展开全部
设定过期时间参数, 主要是设定session.gc_maxlifetime 的参数即可, 再保险一点的设定, 就设定下面这两个参数.
ini_set('session.cookie_lifetime', 0); // 可用print_r(session_get_cookie_params()); 观察
ini_set('session.gc_maxlifetime', 3600); // 可用echo ini_get("session.gc_maxlifetime"); 观察
session_cookie_lifetime 设为0 的话, 代表等到browser 才把此cookie 清掉.(session 和browser cookie 是有相关的)

下面给你一段源码参考session过期时间

下述源码转载自: Cross-Browser Session Starter

<?php
function start_session($expire = 0)
{
if ($expire == 0) {
$expire = ini_get('session.gc_maxlifetime');
} else {
ini_set('session.gc_maxlifetime', $expire);
}
if (empty($_COOKIE['PHPSESSID'])) {
session_set_cookie_params($expire);
session_start();
} else {
session_start();
setcookie('PHPSESSID', session_id(), time() + $expire);
}
}
?>

使用方式

于程式最上方加入: start_session(600); // 代表600 秒后会过期(取代原本session_start())
如果要再延长过期时间, 只要再做修改即可.
但是有个问题要注意, 就是PHP 的session 预设是存成file, 所以/tmp 可能会因这样设定而爆掉(档案太多), 通常解法是把session 存进DB/memcache 中.
---------------
至于如何严格的设置这里我给你提供方案
首先登录后设置session有效10分钟
然后用户有任何动左重置成10分钟
10分钟的原因是避免查看长篇文章突然session失效重新登录
zhangc_8866
2015-07-19 · TA获得超过1276个赞
知道小有建树答主
回答量:2825
采纳率:82%
帮助的人:296万
展开全部
SESSION 有过期时间呢。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式