로그인을 세션에서 쿠키로 변경하기 > 그누4 팁자료실

그누4 팁자료실

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

로그인을 세션에서 쿠키로 변경하기 정보

로그인을 세션에서 쿠키로 변경하기

본문

1단계. common.lib.php 파일을 다음과 같이 수정합니다.
/lib/common.lib.php
function set_cookie($cookie_name, $value, $expire=-1)
{
    global $g4;
    if($expire != 0) $expire = $g4[server_time] + $expire;
    setcookie(md5($cookie_name), base64_encode($value), $expire, '/', $g4[cookie_domain]);
}

변경된 부분이 파랑색 글자 입니다.
기존의 구문에서 보시면
    setcookie(md5($cookie_name), base64_encode($value), $g4[server_time] + $expire, '/', $g4[cookie_domain]);
현재창이 유효하는 동안에 쿠키를 남겨놓으려면 $expire에 0으로 세팅해야하는데 $expire 를 0 으로 전송해도 server_time + 0 이 되므로 생성하자 마자 삭제가 됩니다.
이를 방지하고자 디폴트를 -1 로 설정해 만약 $expire값이 넘어오지 않는다면 삭제의 의미를
0으로 넘어오면 현재 창이 유효하는동안 0보다 크다면 그시간동안 유효하게 만들게 됩니다.

2단계 login_check.php파일 수정
/bbs/login_check.php
set_session('ss_mb_id', $mb[mb_id]); 이부분을 찾아
set_cookie('cook_mb_id', $mb[mb_id], 0); 로 변경합니다. (cook_mb_id)는 사용자 맘대로..^^;

3단게 logout.php 파일 수정
/bbs/logout.php
session_unset(); // 모든 세션변수를 언레지스터 시켜줌
session_destroy(); // 세션해제함
줄 아래에 다음과 같은 한줄을 추가
set_cookie('cook_mb_id', '');
혹은 set_cookie('cook_mb_id', '', -1); 아까 $expire 디폴트 값이 -1이었으므로 안넣어도되지만..

4단계 common.php 파일 수정
/common.php 295라인쯤..
if ($_SESSION['ss_mb_id']) // 로그인중이라면
{
    $member = get_member($_SESSION['ss_mb_id']);
이부분을 찾아 다음과 같이 수정합니다.
if (get_cookie('cook_mb_id')) // 로그인중이라면
{
    $member = get_member(get_cookie('cook_mb_id'));

이렇게 4단계를 거치면 세션대신에 쿠키로 로그인 컨트롤을 하실 수 있습니다 ^^

추천
3

댓글 5개

전체 3,309 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT