CI 묻고 답하기

제목 DB세션에 대해서 질문있습니다.
글쓴이 무무 작성시각 2016/05/10 14:12:51
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 12985   RSS

$config['sess_cookie_name'] = 'ci_session';

$config['sess_expiration'] = 0;

$config['sess_expire_on_close']=TRUE;

$config['sess_encrypt_cookie']=TRUE;

$config['sess_use_database']=TRUE;

$config['sess_table_name']='ci_sessions';

$config['sess_match_ip'] = FALSE;

$config['sess_match_useragent']=FALSE;

$config['sess_time_to_update'] = 72000;

 

하고자 하는것은요 

브라우저가 켜져있는동안 세션이 끊기지 않게 하고싶은데 잘 안되네요. 

 

질문 1 : DB세션하고 웹서버에서 설정하는 세션설정 정보하고 독립적인 것인가요? 

            --> DB세션은 쿠키로 떨궈져서 그것을 검증하는것으로 알고있습니다. 

 

질문2 : DB를 아마존 RDS에다가 셋팅해서 사용하고있는데 영향이 있는것인지요? 

            --> 이전에 만들었던 사이트에 DB세션정보와 동일하고 DB구성정보만 달라서 생긴 추측입니다. 

 

 다음글 뷰페이지를 로드하지않고 값을 넘겨주는 방법은없나요? (8)
 이전글 permitted_uri_chars 특수문자 추가하고싶... (1)

댓글

kaido / 2016/05/10 14:45:35 / 추천 0

문1. DB 세션과 file 세션의 차이. 

DB에 기록 하는것과 file로 기록 하는 차이 일뿐.

 

문2. AWS RDS 저도 사용중입니다만 전혀 상관 없습니다.

문1에 귀결되듯, DB 는 그저 저장만 할 뿐입니다.

 

참고로 일정주기 마다  [sess_time_to_update] 업데이트를 하는데, 그때마다 세션 정보가 갱신 되는걸로 알고 있습니다.

 

제가 알고있는 한도에서 세션 유지를 자동으로 유지 가능한건 java 뿐이 없습니다.

[이유는 세션이 파일로 저장되는게 아니라, 별도의 프로세스[VM]를 생성 해서 유지 및 체크하거든요.]

 

그게 아니라면 업데이트 체크해서 죽기전에 브라우저가 자동으로 리플레쉬를 하도록 설정 하는 편법이 있습니다.

 

무무 / 2016/05/10 15:14:35 / 추천 0

잘 이해가 안되서 그러는데요 ㅠㅠ

세션을 유지하려면 어떻게 해야하는지 가르쳐주실수있으신가요? 

kaido / 2016/05/11 10:44:40 / 추천 1

요약 하자면... 스크립트를 하나 작성 하세요.

가령 $config['sess_time_to_update'] = 3600; //1시간

이렇게 설정하면 1시간 동안 아무것도 안하면 로그아웃이 되어버립니다.

그전에 액션이 있으면 로그인 세션은 끊기지 않습니다.

그렇다면 스크립트로 타이머 설정 해서 55분정도 잡고서 55분이 지나면 reload() 한번 호출해서 사용자 화면을 한번 리플레쉬 시켜줍니다. 그러면 세션은 유지가 됩니다.

 

만일 액션이 주어졌는데도 세션이 끊기는 현상 이라면 다른 곳에 원인이 있습니다.

무무 / 2016/05/11 13:20:52 / 추천 0
넷 감사합니다.