Personlig konto på PHP
En personlig konto forstås som et sted, hvor
brugeren kan redigere data i deres
profil. Lad os lave siden account.php,
hvor brugeren, ved at besøge den, vil se en formular
for at redigere data i deres profil
(undtagen login og adgangskode, disse bør håndteres
på en særlig måde).
Vær opmærksom på, at vi ikke overfører brugerens id
som en GET parameter - vi
vil gøre det sådan, at hver bruger på
siden account.php ser data
fra deres egen profil, og ikke en andens.
For at gøre dette skal vi, når brugeren godkendes,
skrive brugerens id i sessionen,
sådan her:
<?php
if (password_verify($_POST['password'], $hash)) {
$_SESSION['auth'] = true;
$_SESSION['id'] = $user['id'];
}
?>
Derefter, ved besøg på siden account.php,
vil vi lave en SELECT forespørgsel, som
vil hente brugeren fra databasen med id
fra sessionen:
<?php
$id = $_SESSION['id'];
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
?>
Vi skal vise brugerens data i formularen til redigering. Lad det for eksempel være brugerens fornavn og efternavn:
<form action="" method="POST">
<input name="name" value="<?= $user['name'] ?>">
<input name="surname" value="<?= $user['surname'] ?>">
<input type="submit" name="submit">
</form>
Efter tryk på afsendelsesknappen i formularen skal vi lave en forespørgsel for at opdatere brugeren:
<?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 den beskrevne personlige konto.