บัญชีผู้ใช้ส่วนตัวบน PHP
บัญชีผู้ใช้ส่วนตัว หมายถึงสถานที่ที่ผู้ใช้สามารถแก้ไขข้อมูลโปรไฟล์ของตนเองได้ ลองมาสร้างหน้า account.php กัน โดยเมื่อผู้ใช้เข้าไปที่หน้านี้ จะเห็นแบบฟอร์มสำหรับแก้ไขข้อมูลโปรไฟล์ของตนเอง (ยกเว้นชื่อผู้ใช้และรหัสผ่าน ซึ่งควรจัดการเป็นกรณีพิเศษ)
โปรดสังเกตว่า id ของผู้ใช้ เราไม่ได้ส่งผ่าน GET parameter - เราจะทำให้ผู้ใช้แต่ละคนบนหน้า account.php เห็นข้อมูลโปรไฟล์ของตนเอง ไม่ใช่ของผู้อื่น
เพื่อการนี้ เมื่อผู้ใช้ทำการตรวจสอบสิทธิ์ เราควรบันทึก id ของผู้ใช้นี้ลงในเซสชัน ดังนี้:
<?php
if (password_verify($_POST['password'], $hash)) {
$_SESSION['auth'] = true;
$_SESSION['id'] = $user['id'];
}
?>
จากนั้นเมื่อเข้าสู่หน้า account.php เราจะทำ SELECT query ซึ่งจะดึงข้อมูลผู้ใช้จากฐานข้อมูลด้วย id จากเซสชัน:
<?php
$id = $_SESSION['id'];
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
?>
ข้อมูลผู้ใช้เราควรแสดงในแบบฟอร์มสำหรับการแก้ไข สมมติว่าข้อมูลนั้นคือชื่อและนามสกุลของผู้ใช้:
<form action="" method="POST">
<input name="name" value="<?= $user['name'] ?>">
<input name="surname" value="<?= $user['surname'] ?>">
<input type="submit" name="submit">
</form>
หลังจากกดปุ่มส่งแบบฟอร์ม เราควรทำ query เพื่ออัปเดตผู้ใช้:
<?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);
}
?>
นำบัญชีผู้ใช้ส่วนตัวที่อธิบายไว้ไปใช้งาน