Oficina personal en PHP
Por oficina personal se entiende un lugar donde
el usuario puede editar los datos de su
perfil. Hagamos una página account.php,
al acceder a la cual el usuario verá un formulario
para editar los datos de su perfil
(excepto el login y la contraseña, estos deben manejarse
de manera especial).
Preste atención al hecho de que el id del usuario
no lo pasamos como parámetro GET -
lo haremos de modo que cada usuario en
la página account.php vea los datos
de su propio perfil, no los de otro.
Para ello, al autorizar al usuario
debemos guardar en la sesión el id de este
usuario, así:
<?php
if (password_verify($_POST['password'], $hash)) {
$_SESSION['auth'] = true;
$_SESSION['id'] = $user['id'];
}
?>
Luego, al acceder a la página account.php
haremos una consulta SELECT que
obtendrá de la base de datos al usuario con el id
de la sesión:
<?php
$id = $_SESSION['id'];
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
?>
Debemos mostrar los datos del usuario en el formulario para editar. Que sean, por ejemplo, el nombre y apellido del usuario:
<form action="" method="POST">
<input name="name" value="<?= $user['name'] ?>">
<input name="surname" value="<?= $user['surname'] ?>">
<input type="submit" name="submit">
</form>
Después de hacer clic en el botón de envío del formulario deberemos hacer una consulta para actualizar el usuario:
<?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);
}
?>
Implemente la oficina personal descrita.