Osobná klientska zóna v PHP
Osobná klientska zóna je miesto, kde
používateľ môže upravovať údaje svojho
profilu. Vytvorme stránku account.php,
na ktorej používateľ uvidí formulár
na úpravu údajov svojho profilu
(okrem prihlasovacieho mena a hesla, tie by sa mali spracovávať
špeciálnym spôsobom).
Všimnite si, že id používateľa
neprenášame GET parametrom - urobíme
to tak, aby každý používateľ na
stránke account.php videl údaje
svojho profilu, a nie cudzie.
Na to by sme mali pri autorizácii používateľa
zapísať do relácie id tohto
používateľa, takto:
<?php
if (password_verify($_POST['password'], $hash)) {
$_SESSION['auth'] = true;
$_SESSION['id'] = $user['id'];
}
?>
Potom pri vstupe na stránku account.php
vykonáme SELECT dopyt, ktorý
vyberie z databázy používateľa s id
z relácie:
<?php
$id = $_SESSION['id'];
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
?>
Údaje používateľa by sme mali zobraziť v formulári na úpravu. Nech sú to napríklad meno a priezvisko používateľa:
<form action="" method="POST">
<input name="name" value="<?= $user['name'] ?>">
<input name="surname" value="<?= $user['surname'] ?>">
<input type="submit" name="submit">
</form>
Po stlačení tlačidla na odoslanie formulára by sme mali vykonať dopyt na aktualizáciu používateľa:
<?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);
}
?>
Realizujte opísanú osobnú klientsku zónu.