PHPでの個人アカウント

個人アカウントとは、ユーザーが自身のプロフィールデータを編集できる場所を指します。ユーザーがアクセスすると自身のプロフィールデータを編集するためのフォームが表示されるページaccount.phpを作成しましょう(ログインとパスワードは除きます。これらは特別な方法で処理する必要があります)。

ユーザーのidをGETパラメータとして渡さないことに注意してください。各ユーザーがページaccount.phpで他人のプロフィールデータではなく、自身のプロフィールデータを見るようにします。

そのためには、ユーザー認証時に、そのユーザーのidをセッションに次のように記録する必要があります:

html<?php
  if (password_verify($_POST['password'], $hash)) {
    $_SESSION['auth'] = true;
    $_SESSION['id'] = $user['id'];
  }
?>

その後、ページaccount.phpにアクセスする際に、セッションから取得したidを持つユーザーをデータベースから取得するSELECTクエリを実行します:

html<?php
  $id = $_SESSION['id'];
  $query = "SELECT * FROM users WHERE id='$id'";
  
  $res = mysqli_query($link, $query);
  $user = mysqli_fetch_assoc($res);
?>

ユーザーのデータは編集用フォームに表示する必要があります。例えば、ユーザーの名前と姓とします:

html<form action="" method="POST">
  <input name="name" value="<?= $user['name'] ?>">
  <input name="surname" value="<?= $user['surname'] ?>">
  <input type="submit" name="submit">
</form>

フォーム送信ボタンをクリックした後、ユーザーを更新するクエリを実行する必要があります:

php<?php
  if (!empty($_POST['submit'])) {
    $name = $_POST['name'];
    $surname = $_POST['surname'];
    
    $query = "UPDATE users SET name='$name', surname='$surname' WHERE id=$id";
    mysqli_query($link, $query);
  }
?>
Задание 1

説明された個人アカウントを実装してください。