Linux APM 로그인 페이지 구현, 리눅스 회원가입 페이지 구현 방법 페이지 구성에 이어서
아이디/비밀번호 찾기 페이지를 구현을 하겠습니다.
포스팅 목차
아이디 찾기 페이지 (find_id.php)
nano /var/www/html/auth/find_id.php
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>아이디 찾기</title>
<link rel="stylesheet" href="../css/style.css">
</head>
<body>
<div class="find-container">
<h2>아이디 찾기</h2>
<form action="find_id_process.php" method="POST">
<div class="form-group">
<input type="text" name="name" placeholder="이름" required>
</div>
<div class="form-group">
<input type="email" name="email" placeholder="이메일" required>
</div>
<div class="form-group">
<button type="submit">아이디 찾기</button>
</div>
</form>
<div class="links">
<a href="find_password.php">비밀번호 찾기</a>
<a href="../index.php">로그인으로 돌아가기</a>
</div>
</div>
</body>
</html>
비밀번호 찾기 페이지 (find_password.php)
nano /var/www/html/auth/find_password.php
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>비밀번호 찾기</title>
<link rel="stylesheet" href="../css/style.css">
</head>
<body>
<div class="find-container">
<h2>비밀번호 찾기</h2>
<form action="find_password_process.php" method="POST">
<div class="form-group">
<input type="text" name="username" placeholder="아이디" required>
</div>
<div class="form-group">
<input type="email" name="email" placeholder="이메일" required>
</div>
<div class="form-group">
<button type="submit">비밀번호 찾기</button>
</div>
</form>
<div class="links">
<a href="find_id.php">아이디 찾기</a>
<a href="../index.php">로그인으로 돌아가기</a>
</div>
</div>
</body>
</html>
아이디 찾기 처리 (find_id_process.php)
nano /var/www/html/auth/find_id_process.php
<?php
include '../config.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = mysqli_real_escape_string($conn, $_POST['name']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$query = "SELECT username FROM users WHERE name = '$name' AND email = '$email'";
$result = mysqli_query($conn, $query);
if (mysqli_num_rows($result) > 0) {
$row = mysqli_fetch_assoc($result);
$username = $row['username'];
echo "<script>
alert('회원님의 아이디는 " . $username . " 입니다.');
location.href='../index.php';
</script>";
} else {
echo "<script>
alert('일치하는 정보가 없습니다.');
history.back();
</script>";
}
}
?>
비밀번호 찾기 처리 (find_password_process.php)
nano /var/www/html/auth/find_password_process.php
<?php
include '../config.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = mysqli_real_escape_string($conn, $_POST['username']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$query = "SELECT * FROM users WHERE username = '$username' AND email = '$email'";
$result = mysqli_query($conn, $query);
if (mysqli_num_rows($result) > 0) {
// 임시 비밀번호 생성
$temp_password = substr(md5(rand()), 0, 8);
$hashed_password = password_hash($temp_password, PASSWORD_DEFAULT);
// 비밀번호 업데이트
$update_query = "UPDATE users SET password = '$hashed_password' WHERE username = '$username'";
mysqli_query($conn, $update_query);
// 이메일로 임시 비밀번호 전송 (실제 이메일 전송 코드는 별도 구현 필요)
echo "<script>
alert('임시 비밀번호는 " . $temp_password . " 입니다.\\n로그인 후 비밀번호를 변경해주세요.');
location.href='../index.php';
</script>";
} else {
echo "<script>
alert('일치하는 정보가 없습니다.');
history.back();
</script>";
}
}
?>
CSS 스타일 추가 (style.css에 추가)
.find-container {
background-color: white;
padding: 20px;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
width: 300px;
margin: 50px auto;
}
.find-container h2 {
text-align: center;
margin-bottom: 20px;
}
파일 권한 설정
chown -R apache:apache /var/www/html/auth
chmod -R 755 /var/www/html/auth
아이디 찾기
- 이름과 이메일로 아이디 찾기
- 일치하는 정보가 있으면 아이디 표시
비밀번호 찾기
- 아이디와 이메일로 확인임시
- 비밀번호 생성임시 비밀번호로 업데이트