2017-03-08 3 views
1

codeigniterセッションで問題が発生しました。ログインしたときにシステムが動作してセッションが設定されていますが、ブラウザで新しいタブを開いて再度ログインすると、新しく記録されたセッション。私が達成したいのは、セッションが設定されている場合はホームページに直接リダイレクトし、セッションが設定されていない場合はログインページに進みます。CodeIgniterでのセッションの置換を防ぐ

私はこれについていくつかの修正を研究しましたが、どういうわけかこれを試してみましたが、期待通りに動作しませんでした。

コントローラー:

public function index(){ 

    if(isset($_SESSION['Username'])){ 
     redirect('Isidran/home' , 'refresh'); 
    } else { 

     $data['title'] = 'Isidran Club and Organization Online Information System - Login'; 
     $this->load->view('pages/login/index', $data); 
    } 
} 

モデル:あなたのセッションデータを設定するために、以下の

public function login($data) 
    { 

     $username = $data['username']; 
     $password = $data['password']; 
     $query =$this->db->query("SELECT * FROM tbl_user WHERE user_Username ='$username' AND user_Password ='$password'"); 
     $row =$query->row(); 
     if(isset($row)){ 
      $user_ID =$row->user_ID; 
      $username =$row->user_Username; 
      $FirstName=$row->user_FirstName; 
      $LastName = $row->user_LastName; 
      if($row->user_level == 0){ 
       $permission = TRUE; 
       $userdata = array('user_ID' => $user_ID, 'Username' => $username, 'FirstName' => $FirstName, 'LastName' => $LastName, 'logged_in' => TRUE, 'permission' => $permission); 
      } else { 
       $userdata = array('user_ID' => $user_ID, 'Username' => $username, 'FirstName' => $FirstName, 'LastName' => $LastName, 'logged_in' => TRUE); 
      } 
      $this->session->set_userdata($userdata); 
     return true; 
     } else { 
     return false; 
     } 
    } 
+0

使用セッションの以下の完全な方法を読みます – Naincy

答えて

1

の使用は、($ session_data)に配列内のデータを渡す

$this->session->set_userdata('logged_in', $session_data); 

と確認するために、以下のセッションが存在する場合

if (isset($this->session->userdata['logged_in'])) { 
URL 
} 

ログインページで上記のif文を使用するか、独自のロジックで各ページを確認してください。

もCIセッションライブラリを使用するコントローラで

https://www.formget.com/form-login-codeigniter/

関連する問題