Personligt konto i PHP
Ett personligt konto är en plats där
användaren kan redigera data i sin
profil. Låt oss skapa en sida account.php,
där användaren, när de besöker den, kommer att se ett formulär
för att redigera data i sin profil
(förutom inloggning och lösenord, dessa bör hanteras
på ett speciellt sätt).
Lägg märke till att användarens id
vi inte skickar som en GET-parameter - vi
kommer att se till att varje användare på
sidan account.php ser data
från sin egen profil, och inte någon annans.
För att göra detta bör vi när användaren loggar in
spara användarens id i sessionen,
så här:
<?php
if (password_verify($_POST['password'], $hash)) {
$_SESSION['auth'] = true;
$_SESSION['id'] = $user['id'];
}
?>
Sedan, när vi besöker sidan account.php,
kommer vi att göra en SELECT-fråga som
hämtar användaren från databasen med id
från sessionen:
<?php
$id = $_SESSION['id'];
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
?>
Användardata ska vi visa i formuläret för redigering. Låt det till exempel vara användarens förnamn och efternamn:
<form action="" method="POST">
<input name="name" value="<?= $user['name'] ?>">
<input name="surname" value="<?= $user['surname'] ?>">
<input type="submit" name="submit">
</form>
Efter att ha klickat på formulärets skicka-knapp måste vi göra en fråga för att uppdatera användaren:
<?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);
}
?>
Implementera det beskrivna personliga kontot.