로그아웃 구현에 그냥 세션에 있는 정보를 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;
를 적용하면 된다.
댓글