제목 | CI 2.1 환경에서 DB 세션의 user_data가 사라지는 원인을 모르겠습니다. | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | CI2MANIA | 작성시각 | 2019/08/10 03:33:41 |
|
|||
개발 환경 PHP 5.6 / CI 2.1.0 ( 아직도 구버전을 .. ㅠㅠ )
현재 상황 쿠키가 초기화/만료 되지 않고, 로그아웃 버튼을 누르지 않는다면 계속해서 로그인이 유지되는 페이지를 구현하려고 합니다.
헌데, 만료시간을 넉넉하게 주었음에도 불구하고 페이지 이동시 간헐적으로 로그인이 풀리고 있습니다. ( 짧게는 수 분 ~ 길게는 수 시간 )
원인을 찾아보려고 구글링도 열심히 해보고 CI System - Session 파일 등도 천천히 읽어봤지만 도저히 이유를 모르겠습니다 ...
시도한 내용 1) config.php 값을 변경했습니다. - sess_cookie_name = 'sess_cookie' - sess_expiration = 86400 * 30 - sess_expire_on_close = FALSE - sess_encrypt_cookie = FALSE - sess_use_database = TRUE- sess_match_ip = FALSE - sess_match_useragent = FALSE - sess_time_to_update = 86400 * 30
- cookie_prefix = 'sitename_' - cookie_diomain = '.site-domain.com' - cookie_path = '/' - cookie_secure = FALSE
2) 로그인 시 10분 주기로 AJAX 콜이 발생하기 때문에 AJAX 콜이 발생 됐을 때는 sess_update 함수를 실행하지 않게 했습니다. if( ! $CI->input->is_ajax_request()) { parent::sess_update(); }
3) php.ini 설정을 바꾸었습니다. - session.cookie_lifetime = 86400 - session.gc_probability = 0 - session.gc_divisor = 1000 - session.gc_maxlifetime = 86400 - session.cache_expire = 1440
4) /system/libraries/Session.php 에서 로그를 찍어보았습니다. - 쿠키에 있는 session_id 값으로 DB 세션이 조회는 되었습니다. - 허나, $row->user_data는 비어있었습니다 ...
5) 글 작성 후 ci_sessions 테이블을 모니터링 하고 있었는데 기존 session_id 값이 삭제되고 user_data 항목이 빈 채로 새로운 session_id가 생겨난 것을 확인했습니다 ...
읽어 주셔서 감사합니다 (__) |
|||
태그 | ci2,dbsession,expiration | ||
다음글 | captcha 이미지를 음성으로 듣기 (1) | ||
이전글 | CKEDitor로 업로드한 이미지를 불러오질 못합니다. (6) | ||
변종원(웅파)
/
2019/08/12 11:18:24 /
추천
0
|
해당 상황이 나타날때 db를 보시면 기존 세션이외에 한개가 더 생성되는데 그게 비어 있어서 그렇습니다.
세션쿠키명을 _가 들어가지 않은 다른 것으로 바꿔보세요. 포럼 검색해보시면 몇가지 방밥이 나옵니다. 하나씩 시도해보세요.