본문 바로가기
PHP

[PHP] 세션을 이용해 간단한 로그인 시스템 만들기

by teamnova 2024. 1. 25.
728x90

안녕하세요 오늘은 php를 이용해 간단한 로그인 시스템을 만들어보겠습니다. 

매우 기본적인 로그인 시스템을 세션을 이용하여 구현한것이며 사용자 이름과 비밀번호가 하드코딩되어 있습니다.

실제 애플리케이션에서는 데이터베이스를 통해 사용자 정보를 관리해야 합니다.

 

login.php 파일에 다음과 같이 코드를 작성합니다.

<?php
session_start(); // 세션 시작

// 간단한 사용자 데이터
$users = [
    "user1" => "password1",
    "user2" => "password2"
];

// 로그인 처리
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $username = $_POST['username'];
    $password = $_POST['password'];

    if (isset($users[$username]) && $users[$username] == $password) {
        $_SESSION['loggedin'] = true;
        $_SESSION['username'] = $username;
        header("Location: welcome.php"); // 로그인 성공 시 welcome.php로 리다이렉트
        exit();
    } else {
        $error = "잘못된 사용자 이름 또는 비밀번호입니다.";
    }
}
?>

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>로그인</title>
</head>
<body>
    <h2>로그인</h2>
    <?php if (isset($error)): ?>
        <p><?php echo $error; ?></p>
    <?php endif; ?>
    <form method="post">
        사용자 이름: <input type="text" name="username"><br>
        비밀번호: <input type="password" name="password"><br>
        <button type="submit">로그인</button>
    </form>
</body>
</html>

 

welcome.php파일에 다음과 같이 코드를 작성합니다.

<?php
session_start();

// 로그인 여부 확인
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
    header("Location: login.php"); // 로그인되지 않은 경우 로그인 페이지로 리다이렉트
    exit();
}
?>

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>환영합니다</title>
</head>
<body>
    <h2>환영합니다, <?php echo htmlspecialchars($_SESSION['username']); ?>!</h2>
    <p><a href="logout.php">로그아웃</a></p>
</body>
</html>

 

logout.php 파일에 다음과 같이 코드를 작성합니다.

 

<?php
session_start();
session_destroy(); // 세션 종료
header("Location: login.php"); // 로그인 페이지로 리다이렉트
exit();

 

 

위와 같이 코드랄 작성하면 다음과 같은 결과를 얻을 수 있습니다.