acl权限问题

#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

jake 发表于 2015-7-6 17:17
1. ACL不存在退出的问题,退出登录是销毁SESSION

2. SESSION的销毁方法,不是上述的方法,SESSION直接设空 ...
spClass('spAcl')->set($result['aclname']);
                        $_SESSION["userinfo"] = $result;

我有在function里面赋予,就是登陆成功后,会把他的信息记录在SESSION里,然后退出时候销毁SESSION,用的是JAKE很早的一个留言本案例里面的,在什么情况下,销毁session会无效呢?  不用登陆,直接打地址,后台一直显示管理员的SESSION

2015-07-06 18:12:02

#4 jake

278086346 发表于 2015-7-6 18:12
spClass('spAcl')->set($result['aclname']);
                        $_SESSION["userinfo"] = $result;
session_name和session_id是不同的~~~

2015-07-07 08:26:32

#5 278086346

jake 发表于 2015-7-7 08:26
session_name和session_id是不同的~~~
                   $_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

jake 发表于 2015-7-7 08:26
session_name和session_id是不同的~~~
已解决,我把所有代码都删除,重新复制粘贴,又可以了。。。

2015-07-07 11:15:03