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 পৃষ্ঠায় প্রবেশ করার সময় আমরা একটি SELECT কুয়েরি করব, যা ডাটাবেস থেকে সেশন থেকে প্রাপ্ত 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>

ফর্ম জমা দেওয়ার বাটনে ক্লিক করার পরে আমাদের ব্যবহারকারী আপডেট করার জন্য একটি কুয়েরি করতে হবে:

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

বর্ণিত ব্যক্তিগত অ্যাকাউন্টটি বাস্তবায়ন করুন।