longjianghu 发表于 2009-10-10 10:42:25

用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');
}
   
}

Hex 发表于 2009-10-10 10:48:07

你访问的两个 URL 实际上访问的都是一个方法呀。

visvoy 发表于 2009-10-10 10:48:54

打不开,显示什么信息?

longjianghu 发表于 2009-10-10 10:52:19

打不开,显示什么信息?
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
));
}

longjianghu 发表于 2009-10-10 10:53:18

你访问的两个 URL 实际上访问的都是一个方法呀。
Hex 发表于 2009-10-10 10:48 http://codeigniter.org.cn/forums/images/common/back.gif
正因为访问的都是同一个方法但是结果却不相同,搞得我很郁闷啊。

visvoy 发表于 2009-10-10 11:02:39


我在地址栏输入管理地址效果应该是出现管理员后台界面,但是这时候却受前台方法的影响直接跳到用户的个人空间去了。

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后台和前台都是分开的两套,验证机制不同混一起写麻烦,不如分开清爽

Hex 发表于 2009-10-10 11:06:20

经过和楼主沟通,发现可能是 cookie 路径问题。

longjianghu 发表于 2009-10-20 23:09:32

if(!$isAdmin){
   redirect('/user/login/','refresh');
}
这个写法应该没错吧,但是死活不对,把这个改了就OK了郁闷。

ahkxhyl 发表于 2010-11-1 16:05:42

:victory:学习 正用到

xiaonniqiu2015 发表于 2016-5-24 11:05:01

:lol:lol:lol:lol:lol:lol:lol:lol
页: [1]
查看完整版本: 用ci框架写后台管理员遇到一个问题