Cabinet personal în PHP
Prin cabinet personal se înțelege locul unde
utilizatorul își poate edita datele profilului
său. Să facem pagina account.php,
accesând care utilizatorul va vedea un formular
pentru editarea datelor profilului său
(cu excepția login-ului și parolei, acestea ar trebui procesate
într-un mod special).
Atenție la faptul că id utilizatorului
nu îl transmitem prin parametru GET - noi
vom face astfel încât fiecare utilizator pe
pagina account.php să vadă datele
profilului său, și nu ale altcuiva.
Pentru aceasta, la autorizarea utilizatorului
noi trebuie să înregistrăm în sesiune id acestui
utilizator, astfel:
<?php
if (password_verify($_POST['password'], $hash)) {
$_SESSION['auth'] = true;
$_SESSION['id'] = $user['id'];
}
?>
Apoi, la accesarea paginii account.php
noi vom face o interogare SELECT care
va extrage din baza de date utilizatorul cu id
din sesiune:
<?php
$id = $_SESSION['id'];
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
?>
Datele utilizatorului le vom afișa în formularul pentru editare. Să presupunem, de exemplu, că acestea sunt numele și prenumele utilizatorului:
<form action="" method="POST">
<input name="name" value="<?= $user['name'] ?>">
<input name="surname" value="<?= $user['surname'] ?>">
<input type="submit" name="submit">
</form>
După apăsarea butonului de trimitere a formularului noi va trebui să facem o interogare pentru actualizarea utilizatorului:
<?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ți cabinetul personal descris.