用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6468|回复: 9
收起左侧

[HELP] 用ci框架写后台管理员遇到一个问题

[复制链接]
发表于 2009-10-10 10:42:25 | 显示全部楼层 |阅读模式
用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就可以,不知道为什么。

检测方法如下:
PHP复制代码
 
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');
  }
   
}
 
复制代码
发表于 2009-10-10 10:48:07 | 显示全部楼层
你访问的两个 URL 实际上访问的都是一个方法呀。
发表于 2009-10-10 10:48:54 | 显示全部楼层
打不开,显示什么信息?
 楼主| 发表于 2009-10-10 10:52:19 | 显示全部楼层
打不开,显示什么信息?
visvoy 发表于 2009-10-10 10:48

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

  1.   function login(){
  2.    $main_profile = $this->user_model->getUserInfo();
  3.    if(!empty($main_profile)){
  4.     redirect('/space/user/'.$main_profile[$this->user_model->club_user_id], 'refresh');//用户个人空间
  5.    }
  6.    $back_act = $this->input->cookie("back_act");
  7.    $back_url = empty($back_act)?base_url():$back_act;
  8.    $this->smarty_parser->parse("user/login.tpl",array(
  9.   "base_url"=>base_url(),
  10.   "back_url"=>$back_url
  11. ));
  12.   }
复制代码
 楼主| 发表于 2009-10-10 10:53:18 | 显示全部楼层
你访问的两个 URL 实际上访问的都是一个方法呀。
Hex 发表于 2009-10-10 10:48

正因为访问的都是同一个方法但是结果却不相同,搞得我很郁闷啊。
发表于 2009-10-10 11:02:39 | 显示全部楼层
我在地址栏输入管理地址效果应该是出现管理员后台界面,但是这时候却受前台方法的影响直接跳到用户的个人空间去了。

  function login(){
   $main_profile = $this->user_model->getUserInfo();
   if(!empty($ma ...
longjianghu 发表于 2009-10-10 10:52

有通用代码吧,自动跳到前台去了,我写ci后台和前台都是分开的两套,验证机制不同混一起写麻烦,不如分开清爽
发表于 2009-10-10 11:06:20 | 显示全部楼层
经过和楼主沟通,发现可能是 cookie 路径问题。
 楼主| 发表于 2009-10-20 23:09:32 | 显示全部楼层
if(!$isAdmin){
   redirect('/user/login/','refresh');
  }
这个写法应该没错吧,但是死活不对,把这个改了就OK了郁闷。
发表于 2010-11-1 16:05:42 | 显示全部楼层
学习 正用到

本版积分规则