你好。我的会话有问题,我是 CodeIgniter 的新手,所以请耐心等待。这是我的索引函数:
function index()
{
$username;
$pWord; //assume these two variables has valid and correct value
if($this->coreModel->authenticate($username, $pWord)){
$user = $this->coreModel->authenticate($username, $pWord);
foreach($user->result() as $key) {
$this->session->set_userdata(array(
'logged_in' => TRUE,
'cl_UserId' => $key->cl_UserId,
'cl_username' => $key->cl_username,
'cl_roles' => $key->cl_roles));
if($this->session->userdata('cl_roles') == 1){
header("Location: ".base_url()."controller/homepage");
} else {
$this->load->view('loginPage',$this->data);
}
}
} else {
//$this->data['msg'] = "Wrong Username/Password";
$this->load->view('loginPage',$this->data);
}
}
function kickIfNotInSession(){
if ($this->session->userdata('logged_in') == FALSE)
{
redirect('controller');
}
}
如果我输入有效的用户名和密码,它可以正常工作,并且页面会转到主页。echo
在我的主页上,我id
和username
. 同样在我的主页上,我有一个标签菜单。在所有页面中,我echo
和. 我还在所有函数中添加了一个 kickIfNotInSession() 函数,例如:id
username
function test() {
$userid = $this->session->userdata("logged_in");
$this->kickIfNotInSession();
$this->load->view("test");
}
另外,我有autoload.php:
$autoload['helper'] = array('url');
$autoload['libraries'] = array('database','session');
登录后,我单击了所有选项卡,由于某种原因它工作正常。id
它与and相呼应username
,但在一两分钟后,当我单击我的选项卡时,它会将我踢出会话并引导我进入登录页面。我想知道这是怎么发生的。我错过了什么吗?