PHP

[PHP] Session 을 이용한 로그인, 로그아웃 구현 (DB x)

98kg 2024. 2. 22. 21:24

Session 을 통한 간단한 로그인, 로그아웃에 대해 포스팅 해보겠습니다.

 

index.php 

로그인 화면
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>LOGIN</title>
    <script src="login.js"></script>
</head>
<body>
    <form action="login_ok.php"  method="post" name="login_form">
    아이디 <input name="id" id="id" type="text" placeholder="아이디 입력"><br>
    비밀번호 <input name="pw" id="pw" type="password" placeholder="비밀번호 입력"><br>
    <button id="login_btn" >로그인</button>
    </form>

    <a href="member.php">회원 전용 페이지</a>
</body>
</html>

 

 

 

 

 

 


 

login.js

 

 

document.addEventListener('DOMContentLoaded', ()=>{
    const id = document.querySelector('#id');
    const pw = document.querySelector('#pw');
    const btn = document.querySelector('#login_btn');

    btn.addEventListener('click', (e)=>{
        e.preventDefault();
        if(id.value === ''){
            alert('아이디를 입력해주세요.')
            id.focus()
            return false;
        }

        if(pw.value === ''){
            alert('비밀번호를 입력해주세요.')
            pw.focus()
            return false;
        }

        
        document.login_form.submit();
    })
});

login_ok.php

로그인 form action php
<?php
$id = (isset($_POST['id']) && $_POST['id'] != '' )? $_POST['id'] : '';
$pw = (isset($_POST['pw']) && $_POST['pw'] != '' )? $_POST['pw'] : '';

if($id == ''){
    echo "
    <script>
        alert('아이디를 입력해주세요');
        history.go(-1);
    </script>
    ";
    exit;
}


if($pw == ''){
    echo "
    <script>
        alert('비밀번호를 입력해주세요');
        history.go(-1);
    </script>
    ";
    exit;
}

if($id == 'guest' && $pw == '1234'){
    session_start();
    $_SESSION['ss_id'] = $id;

    echo"
    <script>
        alert('로그인 성공');
        self.location.href='member.php'; 
    </script>
    
    ";

}else{
    echo "
    <script>
        alert('로그인 실패, 아이디 비밀번호 확인해주세요');
        self.location.href='index.php'; 
    </script>
    
    ";
}

?>

 

 

아이디 입력하지 않았을 경우

비밀번호 입력하지 않았을 경우

아이디 또는 비밀번호가 일치하지 않을 경우


로그인 후 회원 전용 페이지
<?php

session_start();

if(!isset($_SESSION['ss_id'] )|| $_SESSION['ss_id'] == ''){
    
    echo "
    <script>
    alert('여기는 회원 전용 페이지입니다. 로그인 후 이용 부탁드립니다.')
    self.location.href='index.php'; 
    </script>
    
    
    ";
    exit;
}else{
    echo "여기는 회원 전용 페이지 입니다.<br>";
}




?>

<a href="logout.php">로그아웃</a>

 

 

 

올바른 아이디와 비밀번호로 로그인 성공 시 결과

 

 

 


 

로그아웃 구현 
(logout.php)


session을 종료 시켜서 로그아웃 시킨다

 

<?php
session_start();
session_unset();
session_destroy();

?>
<script>
    window.onload = function() {
            alert("로그아웃 되었습니다!");
            self.location.href='index.php';
        };


</script>

 

로그아웃 시

 

 

로그아웃 또는 로그인 하지 않고 회원 전용 페이지 링크 이동 시도 시