Osobní kancelář v PHP

Osobním kancelářem se rozumí místo, kde uživatel může upravovat data svého profilu. Vytvořme stránku account.php, na kterou když uživatel vstoupí, uvidí formulář pro úpravu dat svého profilu (kromě přihlašovacího jména a hesla, ty je třeba zpracovávat zvláštním způsobem).

Všimněte si, že id uživatele nepředáváme GET parametrem - my to zařídíme tak, aby každý uživatel na stránce account.php viděl data svého profilu, a ne cizího.

K tomu je třeba při autorizaci uživatele do session zapsat id tohoto uživatele, takto:

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

Poté při vstupu na stránku account.php budeme dělat SELECT dotaz, který vytáhne z databáze uživatele s id ze session:

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

Data uživatele musíme zobrazit v formuláři pro úpravu. Nechť to jsou například jméno a příjmení uživatele:

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

Po stisknutí tlačítka pro odeslání formuláře musíme provést dotaz na aktualizaci uživatele:

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

Realizujte popsaný osobní kancelář.