2 vaecer vaecer 于 2018.03.09 10:31 提问

织梦cms后台session过期自动登出的问题

RT,最近在用织梦cms v5.7 utf8 sp2建站(XAMPP搭的环境),想做一个后台三十分钟不操作就自动退出(三十分钟后任何操作都直接跳转到登录页面,也就是/dede/login.php)。尝试过更改userlogin.class.php文件里面Keepuser函数中的“PutCookie('DedeUserID', $this->userID, 3600*24, '/') 和 PutCookie('DedeLoginTime', time(), 3600*24, '/')”,
我把里面的3600*24都改成10(时间改短了方便测试,没理解错的话应该是10秒有效), 但是过了几分钟再刷新后台页面还是没变化,也没有被强制登出。想问问大神们问题出在哪呢?是不是我改的地方不对?网上有人说要在php.ini里面改session.gc_maxlifetime(默认是1440,我把它改成了1也没用)。谢谢

2个回答

showbo
showbo   Ds   Rxr 2018.03.09 12:03
已采纳

直接改dede\v5.7\include\helpers\cookie.helper.php这个文件中的设置cookie的函数,对注册用户有效

管理员 后台用的是session,据说是有一定概率回收的。。
http://www.jb51.net/article/52309.htm

showbo
showbo 回复vaecer: /dede/login.php,在最后添加防止被框架的js代码就行,注意不全最后的php结束标签。?><script>if(top.location!=self.location)top.location=self.location</script>
4 个月之前 回复
showbo
showbo 回复vaecer: 改这个函数,前面添加cookie有效期就行了。 $kptime=30; 单位为s,这个就是30s就过期。后台管理员超时的登录页面你不想在iframe打开,可以修改这个页面
4 个月之前 回复
showbo
showbo 回复vaecer: function PutCookie($key, $value, $kptime=0, $pa="/") { $kptime=30; global $cfg_cookie_encode,$cfg_domain_cookie; setcookie($key, $value, time()+$kptime, $pa,$cfg_domain_cookie); setcookie($key.'__ckMd5', substr(md5($cfg_cookie_encode.$value),0,16), time()+$kptime, $pa,$cfg_domain_cookie); }
4 个月之前 回复
vaecer
vaecer 请问cookie.helper.php里面的cookie函数该怎么改?按照链接里面的方法把session.gc_divisor从1000改成1然后底下session.gc_maxlifetime改小了勉强能用,但是超时后是在frame里面的那个页面退出,并不是整个网站退出登录,在frame登陆后显示效果会有问题。
4 个月之前 回复
immrma
immrma   2018.03.09 14:01

假设登录后把user放进session,引用一个公共的session管理php文件

 if(isset($_SESSION['user'])){
        if(!isset($_SESSION['session_date'])) $_SESSION['session_date'] = date("Y-m-d H:i:s");
        $timelength = strtotime(date("Y-m-d H:i:s")) - strtotime($_SESSION['session_date']);
       #60分钟失效
            if($timelength > 60 * 60){
            session_destroy();  #销毁session
            #这里做退出处理,比如跳转到登录页面
            exit();
        } else {
            $_SESSION['session_date'] = date("Y-m-d H:i:s");
        }
    }
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!