Απλή Εξουσιοδότηση μέσω Βάσης Δεδομένων σε PHP
Ας υλοποιήσουμε την πιο απλή εξουσιοδότηση σε βάση δεδομένων, προς το παρόν χωρίς εγγραφή. Αντί εγγραφής χρηστών, απλώς θα εισάγουμε τα ονόματα χρήστη και τους κωδικούς πρόσβασής τους σε έναν πίνακα στη βάση δεδομένων:
| id | login | password |
|---|---|---|
| 1 | user | 12345 |
| 2 | admin | 123 |
Ας φτιάξουμε τώρα μια φόρμα, στην οποία θα εισάγονται το όνομα χρήστη και ο κωδικός πρόσβασης:
<form action="" method="POST">
<input name="login">
<input name="password" type="password">
<input type="submit">
</form>
Ας γράψουμε τώρα κώδικα, ο οποίος θα ελέγχει αν η φόρμα έχει σταλεί και, αν έχει σταλεί, τότε να ελέγχει αν υπάρχει στη βάση δεδομένων χρήστης με αυτό το όνομα χρήστη και κωδικό πρόσβασης:
<?php
if (!empty($_POST['password']) and !empty($_POST['login'])) {
$login = $_POST['login'];
$password = $_POST['password'];
$query = "SELECT * FROM users WHERE login='$login' AND password='$password'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
if (!empty($user)) {
// ο χρήστης εξουσιοδοτήθηκε
} else {
// λάθος όνομα χρήστη ή κωδικός πρόσβασης
}
}
?>
Υλοποιήστε την παραπάνω εξουσιοδότηση. Κάντε έτσι, ώστε, αν ο χρήστης πέρασε την εξουσιοδότηση - να εμφανίζεται μήνυμα γι' αυτό, και αν δεν πέρασε - τότε μήνυμα ότι το εισαγόμενο όνομα χρήστη ή κωδικός πρόσβασης είναι λανθασμένα.
Τροποποιήστε τον κώδικα έτσι, ώστε σε περίπτωση επιτυχημένης εξουσιοδότησης η φόρμα για εισαγωγή κωδικού πρόσβασης και ονόματος χρήστη να μην εμφανίζεται στην οθόνη.
Τροποποιήστε τον κώδικα έτσι, ώστε σε περίπτωση επιτυχημένης
εξουσιοδότησης να γίνεται ανακατεύθυνση στη σελίδα
index.php.
Τροποποιήστε τον κώδικα έτσι, ώστε στη σελίδα
index.php να εμφανίζεται μήνυμα για
την επιτυχημένη εξουσιοδότηση. Λύστε το πρόβλημα μέσω
μηνυμάτων flash στις συνεδρίες.