2013-05-01 114 views
0

我嘗試在codeigniter中設置Session。當一個人嘗試使用電子郵件ID和密碼登錄時。在CodeIgniter中設置會話錯誤

1st)使用電子郵件ID找到他/她的角色。然後在會話中返回該結果並重定向到相應的鏈接。我在下面輸入的代碼。你能解決這個問題嗎?

控制器

public function login_validation() { 
     $this -> load -> library('form_validation'); 
     $this -> form_validation -> set_rules('email', 'Email', 'required|trim'); 
     $this -> form_validation -> set_rules('password', 'Password', 'required '); 

     if ($this -> form_validation -> run()) { 

      $this -> load -> model('model_database'); 
      $sessiondata['var_userrole'] = $this -> model_database -> login_session(); 

      $this -> session -> set_userdata($sessiondata); 
      if ($var_userrole == admin) { 

       redirect('welcome/admin'); 

      } else if ($var_userrole == staff) { 

       redirect('welcome/staff'); 

      } else if ($var_userrole == student) { 

       redirect('welcome/student'); 

      } else { 

       redirect('welcome/login'); 

      } 

型號

public function login_session() { 
    $email = $this -> input -> post('email'); 
    $login_id = $this -> db -> query("SELECT var_userrole FROM tbl_login where var_email = '" . $email . "'"); 
    return $login_id -> row_array(); 
} 
+0

這是什麼問題? – bipen 2013-05-01 10:29:43

+0

究竟是什麼問題?! – goseo 2013-05-01 10:29:58

+0

@bipen和Distinct:我是CodeIgniter的初學者。查看用戶指南後,很難設置會話。沒有錯誤,但不工作!我想知道我在控制器會話代碼上做了什麼是正確的? 真的很感謝你的時間。如果代碼不正確,請選擇正確的方式。 – 2013-05-01 10:51:55

回答

0

喜首先$ var_userrole是沒有定義的任何地方,你正在檢查在if語句

控制器

public function login_validation() { 
     $this -> load -> library('form_validation'); 
     $this -> form_validation -> set_rules('email', 'Email', 'required|trim'); 
     $this -> form_validation -> set_rules('password', 'Password', 'required '); 

     if ($this -> form_validation -> run()) { 

      $this -> load -> model('model_database'); 
      $var_userrole = $this -> model_database -> login_session();// was undefined 
      $sessiondata['var_userrole'] = $var_userrole 

      $this -> session -> set_userdata($sessiondata); 
      if ($var_userrole == admin) { 

       redirect('welcome/admin'); 

      } else if ($var_userrole == staff) { 

       redirect('welcome/staff'); 

      } else if ($var_userrole == student) { 

       redirect('welcome/student'); 

      } else { 

       redirect('welcome/login'); 

      } 

型號

public function login_session() { 
    $email = $this -> input -> post('email'); 
    $login_id = $this -> db -> query("SELECT var_userrole FROM tbl_login where var_email = '" . $email . "'"); 
     //$row = $login_id -> row() // as object return $row->var_userrole; 
     $row = $login_id -> row_array(); 
    return $row['var_userrole'] 
} 

好,如果你正在開發之前,對身份驗證新的東西在CI檢查一些身份驗證系統像ion_auth有,你可以奶源,並檢查用戶組從組及其所屬Ion auth