0

我有一些非常奇怪的事情发生。我刚刚添加了另一种类型的用户,所以我可以拥有版主和管理员,这样我就可以对我的网站进行不同级别的访问。这适用于用户类型 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_dumpted 并且用户值似乎在那里,但是一旦它重定向到最近的故事页面,会话就不再存在。而且我已经以其他每个用户的身份登录,他们通过正确的会话重定向就好了,只是那个用户中断了。

我已经测试了该类型并且在那里,我的意思是它确实到达了该功能并重定向。我只是不再有任何关于用户的信息......而且我有点需要它,因为那是管理员类型。

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

4

1 回答 1

1

检查控制器类中的构造函数,如果它被扩展,还要检查父构造函数。

使用此快速代码段转储您的会话变量:

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

还尝试使用 switch 语句而不是许多 else ifs

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;
}
于 2013-06-07T23:25:19.457 回答