CI4

ci 세션

수수깡깡 2022. 7. 8. 08:33
728x90
반응형

# 세션 동작

페이지가 로드되면 세션 클래스는 사용자의 브라우저에서 유효한 세션 쿠키가 전송되는지 확인한다.
세션 쿠키가 존재하지 않거나, 서버에 저장된 쿠키와 일치하지 않거나, 만료된 경우 새 세션이 생성되고 저장된다.

유효한 세션이 존재하면 해당 정보가 업데이트되며, 업데이트할 때마다 세션 ID가 다시 생성될 수 있다.

 

#세션 액세스 및 초기화

세션은 일반적으로 각 페이지를 로드할 때마다 전체적으로 실행되므로 세션 클래스를 초기화해야 합니다.

  •  $session = \Config\Services::session($config); => $config 는 옵션이므로 안 쓸 경우 삭제 
  •  $session = session();

 

#세션 닫기

  • session_write_close();

 

#세션 정보 입력

$session->set($array); //배열형태로 입력

<?

namespace App\Controllers;

class LoginSample extends BaseController
{
    public function login()
    {

	$session = session();
        
        $newdata = [
        'username'  => 'johndoe',
        'email'     => 'johndoe@some-site.com',
        'logged_in' => true,
        ];
        $session->set($newdata);
        //$session->set('some_name', 'some_value');
	}
}

 

#세션 정보 가져오기

세션 배열의 정보는 $_SESSION 통해 가져온다.

 

  • 특정 세션 정보 가져오기 
  1. $item = $_SESSION['item'];
  2. $item = $session->get('item');
  3. $item = $session->item;
  4. $item = session('item');
  • 세션 정보 모두 가져오기
  1. $userData = $_SESSION;
  2. $userData = $session->get();

 

#세션 존재확인

isset(세션정보)

<?

if ( isset($_SESSION['some_name'])) ) {
	//세션정보 존재
} else {
	//세션정보 없음
}

 

#세션데이터 제거

  • unset($_SESSION['some_name']);
  • $session->remove('some_name');

 

#세션파괴

현재 세션을 지우려면 (ex 로그 아웃) PHP의 session_destroy() 함수 또는 라이브러리의 destroy() 메소드를 사용하면 된다.

  • session_destroy();
  • $session->destroy();

 

#세션종료

이전 session_id와 모든 데이터를 삭제하고, 세션 ID가 포함된 쿠키를 삭제하여 세션을 완전히 종료할 수 있다.

  • $session->stop();
728x90
반응형