Persoonlijk account in PHP
Onder een persoonlijk account wordt een plek verstaan waar
de gebruiker de gegevens van zijn
profiel kan bewerken. Laten we een pagina account.php maken,
waarop de gebruiker bij het bezoeken een formulier
zal zien om de gegevens van zijn profiel te bewerken
(behalve inlognaam en wachtwoord, deze moeten op een
bijzondere manier worden verwerkt).
Let op het feit dat we het id van de gebruiker
niet als GET-parameter doorgeven - we
zorgen ervoor dat elke gebruiker op
de pagina account.php de gegevens
van zijn eigen profiel ziet, en niet die van een ander.
Hiervoor moeten we bij de autorisatie van de gebruiker
het id van deze
gebruiker in de sessie opslaan, zoals hier:
<?php
if (password_verify($_POST['password'], $hash)) {
$_SESSION['auth'] = true;
$_SESSION['id'] = $user['id'];
}
?>
Vervolgens zullen we bij het bezoeken van de pagina account.php
een SELECT-query uitvoeren, die
de gebruiker met het id
uit de sessie uit de database zal halen:
<?php
$id = $_SESSION['id'];
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
?>
De gegevens van de gebruiker moeten we tonen in het formulier voor bewerking. Stel dat dit bijvoorbeeld de voornaam en achternaam van de gebruiker zijn:
<form action="" method="POST">
<input name="name" value="<?= $user['name'] ?>">
<input name="surname" value="<?= $user['surname'] ?>">
<input type="submit" name="submit">
</form>
Na het klikken op de verzendknop van het formulier moeten we een query uitvoeren om de gebruiker bij te werken:
<?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);
}
?>
Implementeer het beschreven persoonlijke account.