Trang cá nhân bằng PHP
Trang cá nhân được hiểu là nơi
người dùng có thể chỉnh sửa dữ liệu
hồ sơ của mình. Hãy tạo một trang account.php,
khi vào đó người dùng sẽ thấy một biểu mẫu
để chỉnh sửa dữ liệu hồ sơ của mình
(ngoại trừ tên đăng nhập và mật khẩu, chúng cần được xử lý
một cách đặc biệt).
Chú ý rằng id người dùng
chúng ta không truyền qua tham số GET - chúng ta
sẽ làm sao để mỗi người dùng trên
trang account.php chỉ thấy dữ liệu
hồ sơ của mình, chứ không phải của người khác.
Để làm điều này, khi xác thực người dùng
chúng ta phải ghi id của
người dùng đó vào session, như thế này:
<?php
if (password_verify($_POST['password'], $hash)) {
$_SESSION['auth'] = true;
$_SESSION['id'] = $user['id'];
}
?>
Sau đó, khi truy cập vào trang account.php
chúng ta sẽ thực hiện truy vấn SELECT,
truy vấn này sẽ lấy từ CSDL người dùng có id
từ session:
<?php
$id = $_SESSION['id'];
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
?>
Dữ liệu người dùng chúng ta phải hiển thị trong biểu mẫu để chỉnh sửa. Ví dụ, giả sử đó là tên và họ của người dùng:
<form action="" method="POST">
<input name="name" value="<?= $user['name'] ?>">
<input name="surname" value="<?= $user['surname'] ?>">
<input type="submit" name="submit">
</form>
Sau khi nhấn nút gửi biểu mẫu, chúng ta sẽ phải thực hiện truy vấn cập nhật người dùng:
<?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);
}
?>
Hãy triển khai trang cá nhân đã mô tả.