Osobní kancelář v PHP
Osobním kancelářem se rozumí místo, kde
uživatel může upravovat data svého
profilu. Vytvořme stránku account.php,
na kterou když uživatel vstoupí, uvidí formulář
pro úpravu dat svého profilu
(kromě přihlašovacího jména a hesla, ty je třeba zpracovávat
zvláštním způsobem).
Všimněte si, že id uživatele
nepředáváme GET parametrem - my
to zařídíme tak, aby každý uživatel na
stránce account.php viděl data
svého profilu, a ne cizího.
K tomu je třeba při autorizaci uživatele
do session zapsat id tohoto
uživatele, takto:
<?php
if (password_verify($_POST['password'], $hash)) {
$_SESSION['auth'] = true;
$_SESSION['id'] = $user['id'];
}
?>
Poté při vstupu na stránku account.php
budeme dělat SELECT dotaz, který
vytáhne z databáze uživatele s id
ze session:
<?php
$id = $_SESSION['id'];
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
?>
Data uživatele musíme zobrazit v formuláři pro úpravu. Nechť to jsou například jméno a příjmení uživatele:
<form action="" method="POST">
<input name="name" value="<?= $user['name'] ?>">
<input name="surname" value="<?= $user['surname'] ?>">
<input type="submit" name="submit">
</form>
Po stisknutí tlačítka pro odeslání formuláře musíme provést dotaz na aktualizaci uživatele:
<?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 popsaný osobní kancelář.