2017-06-01 47 views
1

我有一些問題,我的代碼工作正常,但會話不是。 這裏的代碼:Codeigniter 3.0.0:會話重定向到其他頁面後消失

public function index() 
{ 
    if (isset($_POST['btnSubmit'])) { 
     $this->lm->username = $_POST['username']; 
     $this->lm->password = $_POST['password']; 
     $sql = sprintf("SELECT hakAkses, nip FROM user WHERE username = '%s' AND password = '%s'", 
       $this->lm->username, 
       $this->lm->password 
      ); 
     $query = $this->db->query($sql); 
     $row = $query->row(); 
     $sessData = array('nip' => $row->nip, 
          'hakAkses' => $row->hakAkses); 
     $this->session->set_userdata($sessData); 
     print_r($this->session->all_userdata()); 

     if ($this->session->userdata('hakAkses') == 'ADMIN') { 
      redirect('Admin/index','refresh'); 
     } else if ($this->session->userdata('hakAkses') == 'PENGAJAR'){   
      redirect('Pengajar/index','refresh'); 
     } else { 
      redirect('Login','refresh'); 
     } 
    } else { 
     $this->load->view('Login/LoginView'); 
    } 

} 

,當我做到了後設置會話$this->session->set_userdata($sessData);順利。但是,當我嘗試以其他形式再次打印會話已經結束。

我的會話配置:

$config['sess_driver'] = 'database'; 
$config['sess_cookie_name'] = 'ci_sessios'; 
$config['sess_expiration'] = 7200; 
$config['sess_save_path'] = 'ci_sessions'; 
$config['sess_match_ip'] = FALSE; 
$config['sess_time_to_update'] = 300; 
$config['sess_regenerate_destroy'] = FALSE; 

確定的原因是每次我重定向頁面會話生成新的會話。 如何處理?

+0

如何設置會話?你能發佈你的代碼嗎? –

+0

你有沒有設置你的會話保存在config.php文件路徑不休假是NULL – user4419336

+0

這可以幫助你 https://stackoverflow.com/a/12911127/1232366 –

回答

0

從你的代碼中不清楚爲什麼。但可能你忘了從另一個頁面加載會話。所以嘗試從autoload.php中自動加載會話庫。或者在控制器中使用$this->load->library('session');

+0

我在config.php文件 $自動加載[已自動加載會話」庫'] =數組('數據庫','會話'); –

+0

什麼是會話變量vardump的輸出。 – Jayakrishnan

+0

它給這個數組(1){[「__ci_last_regenerate」] => int(1496306605)} –

相關問題