이번에 구현한 기능은 회원가입 기능이다.
위와 같은 구조를 가지고 있다.
회원가입 버튼을 누르면 회원가입 창으로 이동된다.
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만 실행 되다가 안 되다 하는 건 뭐지;;)
다음엔 회원 정보를 수정하는 기능을 구현할 예정이다.
'Web' 카테고리의 다른 글
[Web] php, mysql을 활용한 게시판 글 수정 및 좋아요 구현 / 웹개발-8 (0) | 2024.02.29 |
---|---|
[Web] php, mysql을 활용한 게시판 글 작성 구현 / 웹개발-7 (2) | 2024.02.24 |
[Web] php, mysql을 활용한 주소 검색 구현 / 웹개발-6 (0) | 2024.02.20 |
[Web] php, mysql을 활용한 회원정보 수정 구현 / 웹개발-4 (0) | 2024.02.16 |
[Web] php, mysql을 활용한 로그인 구현 / 웹개발-1 (0) | 2024.01.30 |