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:
<?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:
<?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:
<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
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);
}
?>
Implementer det beskrevne personlige kontoret.