[그누4] 로그아웃눌러도 $_SESSION['user_id']가 제거되지 않아요.

[그누4] 로그아웃눌러도 $_SESSION['user_id']가 제거되지 않아요.

QA

[그누4] 로그아웃눌러도 $_SESSION['user_id']가 제거되지 않아요.

본문

안녕하세요~ 날이 무척 더워졌습니다 ㅠㅠ 다들 오후에 화이팅 하세요!

 

그누보드4 기반 페이지를 인수인계 받아서 사용하고 있는데 로그아웃 기능이 1번만 작동합니다.

 

조금더 자세하게 설명드리자면 

최초로 로그인한 경우 로그아웃 버튼을 누르면 정상적으로 로그아웃이 됩니다.

 

하지만 다시 로그인을 한다음 로그아웃을 누르면 로그아웃이 되지 않고 계속 로그아웃을 누를 수 있도록 경로가 뜹니다 ㅠㅠ

 

아래에 관련코드 적어두었으니 고수분들의 많은 도움 부탁드립니다 ^^

 

++추가)

bbs/bbs/logout.php에서 

print_R( $_SESSION); 를 입력해서 세션이 지워지는지 확인해보았는데

결과값으로 비어있는 array가 나왔습니다.

array();

 

 

index.php에서 사용하는 코드


      <?
        if($_SESSION['user_id']){
          echo '<a href="/bbs/bbs/logout.php" target="_self">';
        }else{ // 로그인 전이라면
          echo '<a href="/m/sub/login.php" target="_self">';
        }
      ?>
 

 

bbs/bbs/logout.php에서 사용하는 코드


<?
include_once("./_common.php");
 
// 이호경님 제안 코드
session_unset(); // 모든 세션변수를 언레지스터 시켜줌
session_destroy(); // 세션해제함
 
// 자동로그인 해제 --------------------------------
set_cookie("ck_mb_id", "", 0);
set_cookie("ck_mb_type", "", 0);
set_cookie("ck_mb_no", "", 0);
set_cookie("ck_auto", "", 0);
// 자동로그인 해제 end --------------------------------
 
if ($url) {
    $p = parse_url($url);
    if ($p['scheme'] || $p['host']) {
        alert("url에 도메인을 지정할 수 없습니다.");
    }
 
    $link = $url;
} else if ($bo_table) {
    $link = "$g4[bbs_path]/board.php?bo_table=$bo_table";
} else {
   // $link = $g4[path];
  // $link = "/page/index.php";
}
 
$browser = "w";
$mobile_array = "/(iPhone|Android|Opera Mini|SymbianOS|Windows CE|BlackBerry|Noia|SonyEricsson|webOS|PalmOS|ipad|lgtelecom|skt)/i";
 
if(preg_match($mobile_array, $_SERVER['HTTP_USER_AGENT'])){
  $browser = "m";
}

 
if($browser == "w"){
 
  header('HTTP/1.1 301 Moved Permanently' );
  header( 'Location: http://withsdoctors.com/page/index.php');
  exit();
 
}else if($browser == "m"){
 
  header('HTTP/1.1 301 Moved Permanently' );
  header( 'Location: http://withsdoctors.com/m/page/index.php');
  exit();

 
}else{
 
  header('HTTP/1.1 301 Moved Permanently' );
  header( 'Location: http://withsdoctors.com/page/index.php');
  exit();
 
}
 
?>
 

이 질문에 댓글 쓰기 :

답변 3

저게 안되는 이유는 다음과 같이 추측해 볼 수 있습니다

================


그누보드에서는 세션 저장 폴더를 data/session으로 지정해서 사용하는데
$_SESSION['user_id']는 그누보드에서 처럼 세션 저장 폴더를 지정하지않고 사용하여
서버의 원래 설정 위치에 저장되고 있다(common.php를 사용하지 않는 페이지다)
 
이것 아니면 session_destroy(); 했는데 $_SESSION['user_id'] 라는 세션 값이 남아있을 이유가 없으니까요

 

data 폴더 707 제대로 하셨나요?

댓글 확인이 늦었습니다 ㅠㅠ

index.php에서 $_SESSION['user_id']유무로 로그인/로그아웃 링크를 다르게 부여하는데 세션이 생기지 않아도 가능한건가요??


<?
        if($_SESSION['user_id']){
          echo '<a href="/bbs/bbs/logout.php" target="_self">';
        }else{ // 로그인 전이라면
          echo '<a href="/m/sub/login.php" target="_self">';
        }
      ?>

요렇게 활용을 해보시기 바랍니다.

unset( $_SESSION['세션변수명'] ); 

 

해당 user_id의 세션을 지운다면.

unset( $_SESSION['user_id'] ); 

 

세션을 지워도...로그아웃이 안된다면 브라우저 케쉬 떄문에 그럴수 있으니

브라우저 캐쉬를 한번 삭제해보시기 바랍니다

 

답변을 작성하시기 전에 로그인 해주세요.
전체 10,639
QA 내용 검색

회원로그인

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