개발 Q&A

제목 금요일 세션관련 질문 했던 사람입니다..
카테고리 PHP
글쓴이 페이 작성시각 2017/05/22 10:13:20
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 10119   RSS

이리저리 로그를 확인 했는데..

 

결론은 이런거 같습니다.

이게 100% 확실하다고는 아직 모자른 부분이 많지만..

 

 

아래 셋팅 의 서버에서 

 

$config['sess_driver'] 			= 'database';
$config['sess_cookie_name'] 	= 'tbsessions';
$config['sess_expiration'] 		= 0;
$config['sess_save_path'] 		= 'tb_sessions';
$config['sess_match_ip'] 		= FALSE;
$config['sess_match_useragent'] = FALSE;
$config['sess_time_to_update'] 	= 300;
$config['sess_regenerate_destroy'] = TRUE;

 

 

1. 홍길동 로그인

2. 홍길동 24분동안 웹페이지에 대한 리프레시가 없음.

3. 홍길동이 아닌 다른사람에 의해 웹페이지 오픈 후 gc()가 자동 실행이 되면

4. 홍길동은 sess_expiration 값이 0 이기 때문에 php.ini 의 session.gc_maxlifetime 에 따라 (기본값 1440초(24분)) 세션 삭제.

 

## 만약 3번에서 홍길동이 세션이 있는 상태(삭제되지 않은상태)에서 24분이 넘어서 액션을 취할경우는 세션이 재생성되면서, 시간이

## 갱신 되는거 같습니다..

 

 

가 원인인거같습니다.

 

혹시 이런게 맞는것인지 아니면 제가 놓치는게 있는지 모르겠습니다.

이번에 몇년동안 등한시 ci쪽 세션 공부를 톡톡히 하게되네요 ㅜㅜ..

반성하게되네요.

 

만약 위 내용이 맞다고 하면, session.gc_maxlifetime 값을 강제로 변경 하는 방법을 제외하고는 방법이 없을까요 ?

제가 원하는 것은 홍길동이 로그인 후 아무 액션없이 몇시간이고 뒤에 홈페이지를 열어도 세션이 유지되도록 하고 싶습니다.

물론 인터넷창을 다는 경우는 세션이 삭제되었으면 하구요.

 

 다음글 outer조인시, on절에 가변적인 조건 추가시 어떻게... (5)
 이전글 기간별 조회수를 구현하기 위한 SQL 구축 방법을 문의... (3)

댓글

마카오최 / 2017/05/23 19:30:56 / 추천 0

브라우져를 닫지 않은 상태에서 세션을 계속 유지시키고 싶으신것이 목적이시라면,

자바스크립트로 세션 만료시간 전(24분이라고 하셨으니, 한 15분 정도?)에 한번씩 페이지를 새로고침 시켜주시던지,

Ajax 로 의미없는 비동기 통신을 한번씩 날리시면 세션이 유지 되지 않을까요?