บัญชีผู้ใช้ส่วนตัวบน PHP

บัญชีผู้ใช้ส่วนตัว หมายถึงสถานที่ที่ผู้ใช้สามารถแก้ไขข้อมูลโปรไฟล์ของตนเองได้ ลองมาสร้างหน้า account.php กัน โดยเมื่อผู้ใช้เข้าไปที่หน้านี้ จะเห็นแบบฟอร์มสำหรับแก้ไขข้อมูลโปรไฟล์ของตนเอง (ยกเว้นชื่อผู้ใช้และรหัสผ่าน ซึ่งควรจัดการเป็นกรณีพิเศษ)

โปรดสังเกตว่า id ของผู้ใช้ เราไม่ได้ส่งผ่าน GET parameter - เราจะทำให้ผู้ใช้แต่ละคนบนหน้า account.php เห็นข้อมูลโปรไฟล์ของตนเอง ไม่ใช่ของผู้อื่น

เพื่อการนี้ เมื่อผู้ใช้ทำการตรวจสอบสิทธิ์ เราควรบันทึก id ของผู้ใช้นี้ลงในเซสชัน ดังนี้:

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

จากนั้นเมื่อเข้าสู่หน้า account.php เราจะทำ SELECT query ซึ่งจะดึงข้อมูลผู้ใช้จากฐานข้อมูลด้วย id จากเซสชัน:

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>

หลังจากกดปุ่มส่งแบบฟอร์ม เราควรทำ query เพื่ออัปเดตผู้ใช้:

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

นำบัญชีผู้ใช้ส่วนตัวที่อธิบายไว้ไปใช้งาน