这时后台配置
<?php
/**
* 后台配置
*/
return array(
'RBAC_SUPERADMIN' =>'admin', //超级管理员名称
'ADMIN_AUTH_KEY' =>'superadmin', //超级管理员识别号
'USER_AUTH_ON' =>true, //是否开启权根验证
'USER_AUTH_TYPE' =>1, //验证类型(1:登陆验证,2:实时验证)
'USER_AUTH_KEY' =>'uid', //用户认证识别号
'NOT_AUTH_MODULE' =>'', //无须验证的控制器
'NOT_AUTH_ACTION' =>'', //无须验证的方法
'RBAC_ROLE_TABLE' =>'hd_role', //角色表名称
'RBAC_USER_TABLE' =>'hd_role_user', //角色与用户的中介表名称
'RBAC_ACCESS_TABLE' =>'hd_access', //权限表
'RBAC_NODE_TABLE' =>'hd_node', //节点表
);
?>这是控制器<?php
/**
* 后台陆登页面
*/
class LoginAction extends Action{
public function index(){
$this->display();
}
//表单处理
public function login(){
if(!IS_POST) halt('访问的页面不存在,请重试。。。。。');
if (md5(I('code'))!=session('verify')) $this->error('验证码错误...');
$username=I('username');
$pwd=md5(I('pwd'));
$user=M('user')->where(array('username'=>$username))->find();
//p($user);
if(!$user||$pwd!=$user['password']) $this->error('用户帐号或密码错识,请重试....');
if ($user['lock']) $this->error('用户被锁定,请联系管理员解锁。');
$data=array(
'id'=>$user['id'],
'logintime'=>time(),
'loginip'=>get_client_ip(),
);
M('user')->save($data);
session(C('USER_AUTH_KEY'),$user['id']);
session('username',$user['username']);
session('logintime',date('Y-m-d H:i:s',$user['logintime']));
session('loginip',$user['loginip']);
//admin超级管理员识别号 写入session
if ($user["username"]==C("RBAC_SUPERADMIN")) {
session(C('ADMIN_AUTH_KEY'), true); //注:这里写入出问题
}
import('ORG.Util.RBAC');
RBAC::saveAccessList();
p($_SESSION);
die();
$this->redirect('Admin/Index/index','','1','登陆成功,正在转跳...');
}
//验证码
public function verify(){
import('ORG.Util.Image');
Image::buildImageVerify(1,1,'png',70,29,verify);
}
}
?>在admin超级管理员识别号 写入session时总出问题,删除session后,出现Array
(
[verify] => 8f14e45fceea167a5a36dedd4bea2543
[uid] => 1
[username] => admin
[logintime] => 2015-05-15 16:20:37
[loginip] => 127.0.0.1
[superadmin] => 1
)
用其它用户登陆也是这样
Array
(
[verify] => c9f0f895fb98ab9159f51fd0297e236d
[uid] => 4
[username] => lisi
[logintime] => 2015-05-15 16:51:48
[loginip] => 127.0.0.1
[superadmin] => 1
)
明显RBAC::saveAccessList(); 这个没有读出来。
上面34行 session(C('ADMIN_AUTH_KEY'), true); 整行注释掉后出现:
Array
(
[verify] => 8f14e45fceea167a5a36dedd4bea2543
[uid] => 1
[username] => admin
[logintime] => 2015-05-15 16:41:44
[loginip] => 127.0.0.1
[_ACCESS_LIST] => Array
(
)
)
再用它用户登陆
Array
(
[verify] => 8f14e45fceea167a5a36dedd4bea2543
[uid] => 2
[username] => zhangsan
[logintime] => 2015-05-15 16:18:23
[loginip] => 127.0.0.1
[_ACCESS_LIST] => Array
(
[ADMIN] => Array
(
[MSGMANAGER] => Array
(
[INDEX] => 6
[DELETE] => 7
)
[RBAC] => Array
(
[INDEX] => 8
[ROLE] => 9
[NODE] => 10
[ADDUSER] => 11
[ADDROLE] => 12
[ADDNODE] => 13
)
)
)
)
问题是:session(C('ADMIN_AUTH_KEY'), true); 这句话怎么会影响
import('ORG.Util.RBAC');
RBAC::saveAccessList();
最佳答案