acl权限问题
发布于:2022-01-17 09:50:54
#1 278086346
现在acl权限问题,退出之后,或者登录帐号A,进后台他显示的缓存一直是管理员的B帐号
TMP删除了。退出代码是:
$_SESSION = array();
if (isset($_COOKIE[session_name()])) {setcookie(session_name(), '', time()-42000, '/');}
session_destroy();
但是不知道为什么,进入后台的缓存就一直是管理员的,浏览器也清楚缓存了。。。求解
2015-07-06 12:18:28
#2 jake
1. ACL不存在退出的问题,退出登录是销毁SESSION
2. SESSION的销毁方法,不是上述的方法,SESSION直接设空就行。
如果要用cookie的方法设空session,那么是 setcookie(session_id(), '', time()-42000, '/');
2015-07-06 17:17:35
#3 278086346
spClass('spAcl')->set($result['aclname']);
$_SESSION["userinfo"] = $result;
我有在function里面赋予,就是登陆成功后,会把他的信息记录在SESSION里,然后退出时候销毁SESSION,用的是JAKE很早的一个留言本案例里面的,在什么情况下,销毁session会无效呢? 不用登陆,直接打地址,后台一直显示管理员的SESSION
2015-07-06 18:12:02
#4 jake
session_name和session_id是不同的~~~
2015-07-07 08:26:32
#5 278086346
$_SESSION = array();
if (isset($_COOKIE[session_id()])) {setcookie(session_id(), '', time()-42000, '/');}
session_destroy();
$this->success("成功退出!", spUrl("main","index"));
public function userlogin($us_name,$us_password){
$conditions=array(
'us_name'=>$us_name,
'us_password'=>$us_password,
);
if( $result = $this->find($conditions) ){
spClass('spAcl')->set($result['acl']);
$_SESSION["userinfo"] = $result;
return true;
}else{
return false;
}
}
已经把name换成ID 点击退出成功,在输出后台地址,还是可以直接进,显示
_SESSION信息还是管理员的。。。
2015-07-07 10:47:59
#6 278086346
已解决,我把所有代码都删除,重新复制粘贴,又可以了。。。
2015-07-07 11:15:03