Personlig kontor på PHP

Med personlig kontor menes et sted hvor brukeren kan redigere dataene i sin profil. La oss lage en side account.php, der brukeren, ved å gå inn på den, vil se et skjema for å redigere dataene i sin profil (unntatt brukernavn og passord, disse bør håndteres på en spesiell måte).

Legg merke til at id til brukeren overfører vi ikke som GET-parameter - vi vil gjøre det slik at hver bruker på siden account.php ser dataene i sin egen profil, og ikke andres.

For å oppnå dette, bør vi ved brukerens autorisering skrive id til denne brukeren i sesjonen, slik:

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

Deretter, ved å gå inn på siden account.php, vil vi gjøre en SELECT-forespørsel som vil hente brukeren fra databasen med id fra sesjonen:

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

Brukerens data skal vi vise i skjemaet for redigering. La det for eksempel være brukerens fornavn og etternavn:

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

Etter å ha trykket på send-knappen i skjemaet, vi må gjøre en forespørsel for å oppdatere brukeren:

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

Implementer det beskrevne personlige kontoret.