用ci框架写后台管理员遇到一个问题
用ci框架写程序的时候遇到一个问题,现在写的是后台管理员界面,用的一个controller,我另外写了一个权限判断的方法,我是应该把这个方法写在下面每一个function里面还是写在__construct里面?我现在是放在__construct里面,出现一个问题,就是直接输入地址管理地址的时候如:http://192.168.0.200/samsung/index.php/admin,明明已经登录了但是还是打不开,如果在后面加上一个index却可以,地址http://192.168.0.200/samsung/index.php/admin/index就可以,不知道为什么。
检测方法如下:
function check_login() {
$isAdmin = false;
$admin_user = explode ( ",", $this->config->item ( "admin_user" ) );
$main_profile = $this->user->getUserInfo ();//获取当前登录用户信息
if (! empty ( $main_profile ) && empty ( $main_profile [$this->user->club_user_type] )) {
$isAdmin = true;
} else {
foreach ( $admin_user as $k => $v ) {
if ($main_profile [$this->user->club_user_id] == $v) {
$isAdmin = true;
}
}
}
if(!$isAdmin){
redirect('/user/login/','refresh');
}
}
你访问的两个 URL 实际上访问的都是一个方法呀。 打不开,显示什么信息? 打不开,显示什么信息?
visvoy 发表于 2009-10-10 10:48 http://codeigniter.org.cn/forums/images/common/back.gif
我在地址栏输入管理地址效果应该是出现管理员后台界面,但是这时候却受前台方法的影响直接跳到用户的个人空间去了。
function login(){
$main_profile = $this->user_model->getUserInfo();
if(!empty($main_profile)){
redirect('/space/user/'.$main_profile[$this->user_model->club_user_id], 'refresh');//用户个人空间
}
$back_act = $this->input->cookie("back_act");
$back_url = empty($back_act)?base_url():$back_act;
$this->smarty_parser->parse("user/login.tpl",array(
"base_url"=>base_url(),
"back_url"=>$back_url
));
}
你访问的两个 URL 实际上访问的都是一个方法呀。
Hex 发表于 2009-10-10 10:48 http://codeigniter.org.cn/forums/images/common/back.gif
正因为访问的都是同一个方法但是结果却不相同,搞得我很郁闷啊。
我在地址栏输入管理地址效果应该是出现管理员后台界面,但是这时候却受前台方法的影响直接跳到用户的个人空间去了。
function login(){
$main_profile = $this->user_model->getUserInfo();
if(!empty($ma ...
longjianghu 发表于 2009-10-10 10:52 http://codeigniter.org.cn/forums/images/common/back.gif
有通用代码吧,自动跳到前台去了,我写ci后台和前台都是分开的两套,验证机制不同混一起写麻烦,不如分开清爽 经过和楼主沟通,发现可能是 cookie 路径问题。 if(!$isAdmin){
redirect('/user/login/','refresh');
}
这个写法应该没错吧,但是死活不对,把这个改了就OK了郁闷。 :victory:学习 正用到 :lol:lol:lol:lol:lol:lol:lol:lol
页:
[1]