PHPでのデータベースを使用したシンプルな認証

登録機能なしで、データベースを基にした最もシンプルな認証を実装してみましょう。 ユーザー登録の代わりに、データベースのテーブルに直接ログイン情報とパスワードを入力しておきます:

users
id login password
1 user 12345
2 admin 123

次に、ログインとパスワードを入力するフォームを作成しましょう:

login.php<form action="" method="POST">
  <input name="login">
  <input name="password" type="password">
  <input type="submit">
</form>

ここで、フォームが送信されたかどうかをチェックし、 送信されていれば、そのログインとパスワードを持つユーザーが データベースに存在するかどうかを確認するコードを書きましょう:

login.php<?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 {
      // ログインまたはパスワードが不正
    }
  }
?>
Задание 1

上記の認証機能を実装してください。 ユーザーが認証に成功した場合はその旨のメッセージを表示し、 失敗した場合は入力されたログインまたはパスワードが正しくない旨のメッセージを表示するようにしてください。

Задание 2

認証が成功した場合、ログインとパスワードを入力するフォームが画面に表示されないようにコードを修正してください。

Задание 3

認証が成功した場合、ページ index.php にリダイレクトするようにコードを修正してください。

Задание 4

ページ index.php に認証成功のメッセージが表示されるようにコードを修正してください。 セッションを使用したフラッシュメッセージでこの課題を解決してください。