Προσωπικός Λογαριασμός σε PHP
Ως προσωπικός λογαριασμός νοείται ο χώρος όπου
ο χρήστης μπορεί να επεξεργαστεί τα δεδομένα του
προφίλ του. Ας δημιουργήσουμε τη σελίδα account.php,
στην οποία, όταν ο χρήστης την επισκεφτεί, θα βλέπει μια φόρμα
για την επεξεργασία των δεδομένων του προφίλ του
(εκτός από το όνομα χρήστη και τον κωδικό πρόσβασης, αυτά πρέπει να τα χειριζόμαστε
με ειδικό τρόπο).
Παρατηρήστε ότι το id του χρήστη
δεν το μεταφέρουμε ως GET παράμετρο - εμείς
θα τακτοποιήσουμε έτσι ώστε κάθε χρήστης στη
σελίδα account.php να βλέπει τα δεδομένα
του δικού του προφίλ, και όχι κάποιου άλλου.
Για αυτό, κατά τη σύνδεση του χρήστη
πρέπει να καταγράφουμε στο session το id αυτού
του χρήστη, ως εξής:
<?php
if (password_verify($_POST['password'], $hash)) {
$_SESSION['auth'] = true;
$_SESSION['id'] = $user['id'];
}
?>
Στη συνέχεια, κατά την είσοδο στη σελίδα account.php
θα κάνουμε ένα SELECT ερώτημα που
θα ανακτά από τη ΒΔ τον χρήστη με το id
από το session:
<?php
$id = $_SESSION['id'];
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
?>
Τα δεδομένα του χρήστη πρέπει να τα εμφανίσουμε στη φόρμα για επεξεργασία. Ας υποθέσουμε, για παράδειγμα, ότι αυτά είναι το όνομα και το επώνυμό του χρήστη:
<form action="" method="POST">
<input name="name" value="<?= $user['name'] ?>">
<input name="surname" value="<?= $user['surname'] ?>">
<input type="submit" name="submit">
</form>
Μετά το πάτημα του κουμπιού υποβολής της φόρμας θα πρέπει να κάνουμε ένα ερώτημα για την ενημέρωση του χρήστη:
<?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);
}
?>
Υλοποιήστε τον προσωπικό λογαριασμό όπως περιγράφηκε.