브라우져 닫을때까지 로그인 유지하기 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

브라우져 닫을때까지 로그인 유지하기 정보

브라우져 닫을때까지 로그인 유지하기

본문

안녕하세요~ 아이리프 입니다~

이 팁이 중복일지 모르겠지만, 로그인 관련해서 세션이니 뭐니 지속적으로 연결하고 싶은데 잘 안되시는 분들이 많은걸로 압니다. 저 또한 그문제로 새벽까지 보고 있었는데 의외로 간단하게 해결했습니다.

저는 쿠키를 이용해서 했는데요, 자동로그인의 쿠키를 활용 했습니다.

수정해야할 파일은 bbs/login_check.php 입니다.

50번 줄 쯤에 

set_cookie('ck_mb_id', '',0);
set_cookie('ck_auto', '',0);


를 찾으시고 아래 처럼 바꿔주세요.

$key = md5($_SERVER[SERVER_ADDR] . $_SERVER[REMOTE_ADDR] . $_SERVER[HTTP_USER_AGENT] . $mb[mb_password]);
setcookie(md5('ck_mb_id'), base64_encode($mb[mb_id]), 0, '/', $g4[cookie_domain]);
setcookie(md5('ck_auto'), base64_encode($key), 0, '/', $g4[cookie_domain]);


동작원리는 보시는데로, 로그인 할시에 자동로그인 쿠키에 만기시간을 0 을 주어서 브라우져가 꺼지면 쿠키가 삭제되게 되있습니다. 즉 브라우져를 계속 몇시간동안 켜놔도 자동 로그인을 한것처럼 로그인이 풀리지 않지만, 브라우져를 끄면 쿠키가 삭제 됨으로 로그아웃 되는 방식 입니다.

여기서 만약에, 로그인 유지시간을 설정 하고 싶으시면 아래처럼 하시면 됩니다.

setcookie(md5('ck_mb_id'), base64_encode($mb[mb_id]), $g4[server_time] + ( 3600 * 3 ) , '/', $g4[cookie_domain]);
setcookie(md5('ck_auto'), base64_encode($key), $g4[server_time] + ( 3600 * 3 )  , '/', $g4[cookie_domain]);


위 예제는 만기 시간을 0 에서 $g4[server_time] + ( 3600 * 3 ) 로 바꾸어 3시간 이후에 로그아웃 되게 만들었습니다. 물론 세션 만기 시간보다 적게 설정하면 정상적으로 동작하지 않을것 같습니다.

완벽하게 테스트는 못해봤구요. 팁에 문제가 있으면 알려주세요 ^^

감사합니다.

추가 - 최고관리자도 이 팁이 적용될려면 common.php 를 아래 처럼 고쳐줘야 합니다.

        // 최고관리자는 자동로그인 금지
        if ($tmp_mb_id != $config['cf_admin'])
        {

부분을 찾아서 위 두줄만 주석을 치시고 끝나는 } 도 주석을 쳐주시면 됩니다~


추천
3
  • 복사

댓글 18개

$g4[server_time] + ( 3600 * 3 )  대신에 $g4[server_time] + ( 초 )  를 넣어주시면 됩니다.

30분 이라면 30*60 이니까 1800 이라고 쓰면 되겠네요 ^^
30 초는 적용이 않되나요...ㅠㅠㅠ

setcookie(md5('ck_mb_id'), base64_encode($mb[mb_id]), $g4[server_time] + 30 , '/', $g4[cookie_domain]);
setcookie(md5('ck_auto'), base64_encode($key), $g4[server_time] + 30  , '/', $g4[cookie_domain]);

으로 적용을 해보았으나 로그아웃이 자동으로 되질 않습니다..ㅠㅠ
© SIRSOFT
현재 페이지 제일 처음으로