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 に認証成功のメッセージが表示されるようにコードを修正してください。
セッションを使用したフラッシュメッセージでこの課題を解決してください。