제목 | session 질문입니다. | ||
---|---|---|---|
글쓴이 | 궁금해 | 작성시각 | 2013/09/12 15:03:20 |
|
|||
ci에 내장되어있는 기능중 세션을 디비에 저장하는 기능을 사용하고 있습니다. 페이지를 닫거나 로그아웃을 했을 경우 DB에 저장된 세션이 삭제 되는건가요? 세션이 삭제됐었던 것 같은데 ... 오늘 다시 보니 계속해서 쌓이고 있네요.. |
|||
다음글 | hook를 사용하면 될까요? (5) | ||
이전글 | 페이지네이션 질문 있습니다. (2) | ||
수야디벨
/
2013/09/12 15:38:05 /
추천
0
|
궁금해
/
2013/09/12 16:06:11 /
추천
0
댓글 감사합니다.
일단 config에서 expire on close는 TRUE로 해놨습니다. 그리고 로그아웃이 세션 디스트로이하게 해놨습니다. 웹상에선 정상적으로 세션이 삭제됩니다. 헌데 DB의 세션 테이블의 데이터가 남아있는데 그게 정상인지 비정상인지 궁금합니다. |
궁금해
/
2013/09/12 17:54:44 /
추천
0
세션에 데이터가 남는건 비정상 이네요.
라이브러리에 session을 읽어보니 sess_destroy 할 경우 if ($this->sess_use_database === TRUE && isset($this->userdata['session_id'])) { $this->CI->db->where('session_id', $this->userdata['session_id']); $this->CI->db->delete($this->sess_table_name); }
요렇게 되야 정상이네요. 제건 왜 이걸 타지 않는건지..참.. |
$config['sess_expire_on_close'] = FALSE;
라는 설정값이 있습니다.
이 값이 true면 창이 닫힐시에 모든 세션이 자동 삭제 됩니다.
그리고 로그아웃을 했다고 해서 저절로 세션이 삭제 되는 건 아닙니다.
뭐, 외부 로그인 라이브러리를 가져와서, 그 라이브러리에 로그아웃시 세션이 삭제되는 코드가 들어잇다면
이야기는 달라지지만, 보통은 직접 세션을 삭제해줘야 합니다.
세션 삭제에 대해서는 다음 메뉴얼을 참고해주세요
http://codeigniter-kr.org/user_guide_2.1.0/libraries/sessions.html