2017-03-08 1 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

또한 CI 세션 라이브러리를 사용 – Naincy

답변

1

사용은, ($의 session_data)

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

에 배열에 데이터를 전달하고 확인하기 위해 다음과 같은 세션이있는 경우

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

로그인 페이지에서 if 문을 사용하거나보기에 각 페이지를 확인하는 논리를 만드십시오.

사용 세션의 다음 전체 방법을 읽어 컨트롤러에서

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

관련 문제