본문 바로가기

Web

[Web] php, mysql을 활용한 회원가입 구현 / 웹개발-2

 

이번에 구현한 기능은 회원가입 기능이다.

 

 

위와 같은 구조를 가지고 있다.

 

 

회원가입 버튼을 누르면 회원가입 창으로 이동된다.

 

 

member_register.html


 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf8">
        <title>회원가입</title>
    </head>
    <body>
        <h2>회원가입</h2>
        <form action="member_check.php" method="post">
            <label for="username">아이디</label><br>
            <input type="text" id="username" name="username" placeholder="아이디"><br><br>
            <label for="password">비밀번호</label><br>
            <input type="password" id="password" name="password" placeholder="비밀번호"><br><br>
            <input type="submit" value="완료">
        </form>
    </body>
</html>

 

 

원하는 아이디와 비번을 입력 후 입력 버튼을 누르면 member_check.php로 데이터가 전송됨과 동시에 member_check.php파일로 리다이렉트 된다.

 

 

 

member_check.php


<?php
include "/opt/homebrew/var/www/db/db_init.php";

if (getenv("REQUEST_METHOD") == "POST") {
    $username = $_POST["username"];
    $password = $_POST["password"];

    $sql_username = "SELECT username FROM login_tb WHERE username='$username'";

    $result_username = $conn->query($sql_username);

    if ($result_username->num_rows == 0) {
        $sql = "INSERT INTO login_tb (username, password) VALUES ('$username', '$password')";
        $conn->query($sql);
        echo "<script>alert('회원가입 성공'); location.replace('/');</script>";
    } else {
        echo "<script>alert('이미 가입된 아이디입니다.'); location.href='/member/member_register.html'</script>";
    }

}

 

전송받은 데이터를 통해 DB에 해당 ID가 있는지 확인한다. 없으면 DB에 저장 후 회원가입 성공 창을 띄운 후 로그인 창으로 리다이렉트 된다.

 

중복일 경우 다시 회원가입 창으로 복귀된다.

 

로그인 시 로그인 창으로 이동된다.

 

 

login_success.php


<?php
include "/opt/homebrew/var/www/db/db_init.php";

session_start();

if (!isset($_SESSION["username"])) {
    echo "<script>
    alert('로그인이 필요합니다.');
    location.href='/';
    </script>";
} else {
    echo "환영합니다 " . $_SESSION["username"] . "님";
}
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf8">
        <title>로그인 성공</title>
    </head>
    <body>
        <br><a href="/login/logout.php">로그아웃</a>
    </body>
</html>

 

 

로그아웃 버튼을 누를 경우 로그인 창으로 복귀한다.

 

logout.php


<?php
session_start();

if (isset($_SESSION["username"])) {
    echo "<script>alert('로그아웃 되었습니다.');
         location.href='/';
         </script>";
    session_destroy();
} else {
    echo "<script>alert('로그인된 아이디가 없습니다.');
    location.href='/';
    </script>";
}

 

로그아웃 시 세션을 종료시킨다.

 

(alert()가 실행 안되고 location.href만 실행 되다가 안 되다 하는 건 뭐지;;)

 

다음엔 회원 정보를 수정하는 기능을 구현할 예정이다.