PHP 데이터베이스를 통한 간단한 인증
데이터베이스를 기반으로 한 가장 간단한 인증을 구현해 봅시다. 지금은 회원가입 없이 진행합니다. 사용자 등록 대신, 데이터베이스 테이블에 직접 로그인 정보와 비밀번호를 입력하겠습니다:
| id | login | password |
|---|---|---|
| 1 | user | 12345 |
| 2 | admin | 123 |
이제 로그인과 비밀번호를 입력할 수 있는 폼을 만들어 보겠습니다:
<form action="" method="POST">
<input name="login">
<input name="password" type="password">
<input type="submit">
</form>
이제 폼이 전송되었는지 확인하고, 전송되었다면 데이터베이스에 해당 로그인과 비밀번호를 가진 사용자가 있는지 확인하는 코드를 작성해 보겠습니다:
<?php
if (!empty($_POST['password']) and !empty($_POST['login'])) {
$login = $_POST['login'];
$password = $_POST['password'];
$query = "SELECT * FROM users WHERE login='$login' AND password='$password'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
if (!empty($user)) {
// 사용자 인증 성공
} else {
// 잘못된 로그인 또는 비밀번호
}
}
?>
위에서 설명한 인증을 구현하세요. 사용자가 인증에 성공하면 성공 메시지를 출력하고, 실패하면 입력한 로그인 또는 비밀번호가 잘못되었다는 메시지를 출력하도록 만드세요.
인증에 성공한 경우 로그인 및 비밀번호 입력 폼이 화면에 표시되지 않도록 코드를 수정하세요.
인증에 성공한 경우 index.php 페이지로
리디렉션되도록 코드를 수정하세요.
index.php 페이지에서 성공적인 인증에 대한
메시지가 출력되도록 코드를 수정하세요.
세션을 사용한 플래시 메시지를 통해 문제를 해결하세요.