본문 바로가기
현장실습

[PHP, JS, CSS]로그아웃 할 때 일부 세션 정보만 날아가게 로그아웃 기능 구현

by Rudy 2022. 2. 18.

로그아웃 구현에 그냥 세션에 있는 정보를 session_destroy() 이용해서 다 삭제하면 될 것이라고 생각했다.

근데 그렇게 하니까 문제가 발생했다. 

function clearAllCookies(domain, path) {
  var doc = document,
      domain = domain || doc.domain,
      path = path || '/',
      cookies = doc.cookie.split(';'),
      now = +(new Date);
  for (var i = cookies.length - 1; i >= 0; i--) {
    doc.cookie = cookies[i].split('=')[0] + '=; expires=' + now + '; domain=' + domain + '; path=' + path;
  }
  history.back(-1);
}

해당 코드를 이용해서 로그아웃 버튼을 base/header.php에 추가하고, 클릭하면 logout.php로 이동해서 도메인 내의 모든 쿠키를 지우는 작업을 계속 시도했다.

 

그런데 그렇게 하니까... QR스캔해서 들어간 url?의 정보도 다 사라지더라.

 

이 문제를 해결하기 위해서 1시간 가량 삽질하다가, 얼추 해결봤다.

logout.php

<?php
session_start();

unset($_SESSION['login']);
unset($_SESSION['social']);
unset($_SESSION['nickName']);

?>
<script>

location.href='../page01_main/';

</script>

 

header.php

<div class = "header-menu-M">
    <div class="login_show">
        <?php
        if(isset($_SESSION["login"])){
        ?>
        <p>
            <span class="username"><?php echo $_SESSION["nickName"]; ?></span> 님! 환영합니다.
            <img src="../image/header/login.svg" style="top: 4px; position: relative;">
            <span class="logout_btn"><a href='../login/logout.php' style="color: #fff;">로그아웃</a></span></div>
        </p>
        <?php
        }
        else{?>
        <p onclick="login_modal()">
            로그인이 필요합니다.
        </p>
        <?php 
        }
        ?>

header.css

.login_show .logout_btn {

  padding: 5px 13px;
  border-radius: 20px;
  background: #fa6400;
  display: inline-block;
  font-size: 15px;
  color: #fff;
  font-weight: 600;
  margin: 3px;
  cursor: pointer;

}

 

밑줄도 없애보자

text-decoration-line: none;

를 적용하면 된다.

'현장실습' 카테고리의 다른 글

현장실습 회고  (0) 2022.02.24
1월 21일  (0) 2022.01.21
1월 20일  (0) 2022.01.20
1월 13일  (0) 2022.01.14
1월 12일  (0) 2022.01.12

댓글