Espace personnel en PHP
L'espace personnel désigne l'endroit où
l'utilisateur peut modifier les données de son
profil. Créons une page account.php,
sur laquelle l'utilisateur verra un formulaire
pour modifier les données de son profil
(à l'exception du login et du mot de passe, qui doivent être traités
d'une manière particulière).
Notez que le id de l'utilisateur
n'est pas transmis par paramètre GET - nous
ferons en sorte que chaque utilisateur sur
la page account.php voie les données
de son propre profil, et non celles d'un autre.
Pour cela, lors de l'authentification de l'utilisateur,
nous devons enregistrer le id de cet
utilisateur dans la session, comme ceci :
<?php
if (password_verify($_POST['password'], $hash)) {
$_SESSION['auth'] = true;
$_SESSION['id'] = $user['id'];
}
?>
Ensuite, lors de l'accès à la page account.php,
nous exécuterons une requête SELECT qui
ira chercher dans la base de données l'utilisateur avec le id
de la session :
<?php
$id = $_SESSION['id'];
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
?>
Les données de l'utilisateur doivent être affichées dans le formulaire de modification. Supposons, par exemple, qu'il s'agisse du prénom et du nom de l'utilisateur :
<form action="" method="POST">
<input name="name" value="<?= $user['name'] ?>">
<input name="surname" value="<?= $user['surname'] ?>">
<input type="submit" name="submit">
</form>
Après avoir cliqué sur le bouton d'envoi du formulaire, nous devrons exécuter une requête de mise à jour de l'utilisateur :
<?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);
}
?>
Mettez en œuvre l'espace personnel décrit.