Account personale in PHP
Per account personale si intende il luogo dove
l'utente può modificare i dati del proprio
profilo. Creiamo una pagina account.php,
accedendo alla quale l'utente vedrà un modulo
per modificare i dati del proprio profilo
(eccetto login e password, che dovrebbero essere gestiti
in modo speciale).
Nota che id dell'utente
non lo passiamo come parametro GET -
faremo in modo che ogni utente sulla
pagina account.php veda i dati
del proprio profilo, e non di quello di altri.
Per fare ciò, quando l'utente si autentica
dobbiamo memorizzare nella sessione id di questo
utente, in questo modo:
<?php
if (password_verify($_POST['password'], $hash)) {
$_SESSION['auth'] = true;
$_SESSION['id'] = $user['id'];
}
?>
Poi, quando si accede alla pagina account.php
eseguiremo una query SELECT che
recupererà dal database l'utente con id
della sessione:
<?php
$id = $_SESSION['id'];
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
?>
I dati dell'utente devono essere mostrati nel modulo di modifica. Che siano, ad esempio, il nome e il cognome dell'utente:
<form action="" method="POST">
<input name="name" value="<?= $user['name'] ?>">
<input name="surname" value="<?= $user['surname'] ?>">
<input type="submit" name="submit">
</form>
Dopo aver premuto il pulsante di invio del modulo dovremo eseguire una query di aggiornamento dell'utente:
<?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);
}
?>
Implementa l'account personale descritto.