Php 在codeigniter上的特定用户类型上丢弃会话

Php 在codeigniter上的特定用户类型上丢弃会话,php,codeigniter,session,Php,Codeigniter,Session,我有一件很奇怪的事。我刚刚添加了另一种类型的用户,这样我就可以有版主和管理员,这样我就可以对我的网站进行不同级别的访问。这在用户类型1、2、禁止和非活动的情况下运行良好。但是,当我添加了一个类型3时,会话似乎就减少了 这是我的代码 $loginObject = array('email' => $this->input->post('email'), 'password' => md5($salt.$this->input-

我有一件很奇怪的事。我刚刚添加了另一种类型的用户,这样我就可以有版主和管理员,这样我就可以对我的网站进行不同级别的访问。这在用户类型1、2、禁止和非活动的情况下运行良好。但是,当我添加了一个类型3时,会话似乎就减少了

这是我的代码

$loginObject = array('email' => $this->input->post('email'),
                     'password' => md5($salt.$this->input->post('password')));        
$login = $this->users_model->checkUser($loginObject);
if($login == true){
    $currentUser = $login;
    $this->session->set_userdata('currentUser', $currentUser);
    $this->session->set_userdata('loggedin', true);
    $this->user = $this->session->userdata('currentUser');
    $type = $this->users_model->getUser($this->user->user_id);
    if($type[0]->type == 1){
        redirect('story/viewStories/'.$this->user->pen_name);
    }else if($type[0]->type == 2) {
        redirect('subMenu/recentStories');
    }else if($type[0]->type == 3){    
        /* This is where the sessions seem to drop */                       
        redirect('subMenu/recentStories');
     }else if($type[0]->type == 'banned'){
         $this->session->sess_destroy();
         redirect('/banned/');
     }elseif ($type[0]->type == 'deactive') {
         redirect('/home');
     }                        
}else{            
    redirect('/home/errorPage');
}
我已经将所有内容和用户值都转储到var_,但是一旦它重定向到最近的故事页面,会话就不存在了。我已经以其他用户的身份登录,他们可以通过正确的会话重定向,只是那个用户中断了

我已经测试了这个类型,我的意思是它确实可以使用这个函数并重定向。我只是不再有任何关于用户的信息…我有点需要,因为这是管理员类型


这有什么原因吗?我只是犯了一个愚蠢的错误吗?

检查控制器类中的构造函数,如果它正在扩展,也检查父构造函数

使用以下快速代码段转储会话变量:

$a = $this->session->all_userdata();
foreach ($a as $key => $value) {
  echo ("{$key} : {$value}<br>\n");
}

您可以检查cookies和会话,并将其与其他用户类型进行比较。您可以在不同的位置再次放置
var\u dump
echo
,以查看脚本正在执行的操作(一步一步)-可能会朝意外的方向运行。如果($type[0]->type==…),这是唯一一个有
的地方吗?我已经做过了。我可以在重定向之前获取用户详细信息,但是在页面重定向之后,会话消失,并且永远不会到达另一个控制器……但这只发生在一个用户类型上。我已经多次尝试重新命名用户类型,以确定这是否是问题,但这似乎没有什么区别,是的,这是唯一一个这样做的用户类型。这有点有趣,当我切换到switch和case语句时,如果用户的类型为3,它只返回0…它不再重定向了。op nope,我犯了个愚蠢的错误!哈哈,这句话很有魅力!非常感谢你的帮助!
switch ($type[0]->type) {
    case 1:
        redirect('story/viewStories/'.$this->user->pen_name);
        break;
    case 2:
        redirect('subMenu/recentStories');
        break;
    case 3:
        redirect('subMenu/recentStories');
        break;
    case 'banned':
        $this->session->sess_destroy();
        redirect('/banned/');
        break;
    case 'deactive': // deactivate
        redirect('/home');
        break;
}