요기보드3   필수기초 선택과목 요기보드 그누보드 로그인

요기보드 Ver.3


로그아웃

로그아웃은 화면에 보여 줄 내용도 없고 다른 파일을 include 하는게 없어서 비교적 간단해.
한 줄씩 이해해 보자구.

- logout.php

<?php
  include_once('./_path.php');
  // 로그인 상태면 세션변수를 삭제한다
  if (isset($_SESSION['ssuno'])) {
    // 세션 변수 클리어
    $_SESSION = array();  

    // 세션쿠키가 있으면 삭제를 위해 쿠키 만기일을 1시간(3600) 전으로 세팅한다.
    if (isset($_COOKIE[session_name()])) {
      setcookie(session_name(), '', time() - 3600);
    }
    // 세션 삭제
    session_destroy();
  }
  //- 쿠기 사용시 주석 해제하고 사용 
  // 쿠키의 아이디,회원명 삭제 1시간 전으로 세팅
  //setcookie('ckuno'  , '', time() - 3600);
  //setcookie('ckuid'  , '', time() - 3600);
  //setcookie('ckuname', '', time() - 3600);
  //setcookie('cklevel', '', time() - 3600);
  echo '<script>location=" ' . ROOT_PATH . ' ";</script>';  // 루트로 이동
?>

로그아웃에서 할 일은 세션 변수를 모두 없애는 것야.
요기보드에서는 세션변수 $_SESSION['ssuno'] 를 보고 값이 있으면 로그인 상태라는 것으로 판단하는데 이 값이 없으면 당연히 로그아웃 상태가 되니까..

▶ $_SESSION = array()
현재 $_SESSION 변수에 들어간 모든 변수명과 값을 클리어 하라는 명령이야.
아래에서 session_destroy 로 세션 자체를 삭제하면 변수와 값도 모두 없어지지만 그래도 깨끗하게 지워 놓고 삭제하는게 안심되잖아.

▶ if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time() - 3600); }
세션은 서버에 저장되는 변수이지만 브라우저에 따라 세션정보를 임시 쿠키에 저장해서 사용하기도 해.
이때의 쿠키 이름은 우리가 정하는게 아니고 브라우저가 알아서 임시로 정하는데 그 이름이 session_name() 이야.
보통 세션을 죽이면 이것도 같이 없어지지만 역시 확실하게 하기위해 이 임시 세션쿠키가 있으면 이것도 쿠키를 삭제하는 방식대로 현재시간에서 - 1시간(3600초)를 주어서 확실히 없애 버리는 거야.

▶ 쿠키삭제
마지막으로 요기보드의 기본설치에서는 사용하지 않지만 여러분이 어떤 이유로 쿠키를 사용하고 있다면 각 쿠키변수들도 삭제해 버려.

▶ 메인화면으로 가기
모든 작업이 끝나면 location 명령으로 루트 패스로 가는 것으로 로그아웃이 완료돼.
세션과 쿠키를 모두 지우고 루트패스의 index.php 로 가면 이제 세션이 없으니 화면 상단에는 [로그인] 표시로 보이겠지?

회원관련 기능 설명은 이것으로 끝내려고 해.
회원정보수정(profile_edit.php) 와 비밀번호 변경(pw_change.php)가 더 있지만 그것들은 지금까지 공부한 실력으로 충분히 이해할 수 있을거로 믿어.

목차제 목조회
742
481
382
408
418
362
300
300
243
297
322
319
329
183
236
260
208
278