今天客户提了这个需求
好久没看织梦的代码了,正好看看文件
1 织梦登录和验证相关都在 include/memberlogin.class.php 文件
2 思路整理 每次登陆会更新 登录时间,那么登录验证的时候把登录时间给验证下就行
3 修改文件
IsLogin() 这个函数的代码替换
/** * 验证用户是否已经登录 * * @return bool */ function IsLogin() { //验证登录时间 是否和表里面的一样 //$isLogin= //$this->M_LoginTime global $dsql; $res=$dsql->GetOne("Select * From `#@__member` where mid='{$this->M_ID}' "); if($this->M_ID > 0 && $this->M_LoginTime==$res['logintime']) return TRUE; //if($this->M_ID > 0) return TRUE; else return FALSE; }
4 这样就会保证 每次登陆后 其他的登录失效
第209行 会每2小时自动更新下登录时间 这里可以设置改完24小时 或者更长
替换代码如下
//间隔24小时更新一次用户登录时间 if(time() - $this->M_LoginTime > 3600*24) { $dsql->ExecuteNoneQuery("update `#@__member` set logintime='".time()."',loginip='".GetIP()."' where mid='".$this->fields['mid']."';"); PutCookie("DedeLoginTime",time(),$this->M_KeepTime); }