やあ。セッションに問題があります。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
はid
とusername
. また、すべての関数に kickIfNotInSession() 関数を追加しました。次に例を示します。
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
とがエコーされusername
ますが、タブをクリックして 1 ~ 2 分後にセッションから追い出され、ログイン ページに移動します。どうしてそうなったのかしら。何か不足していますか?