Einfache Authentifizierung über eine Datenbank in PHP
Lassen Sie uns die einfachste Authentifizierung auf Basis einer Datenbank implementieren, vorerst ohne Registrierung. Anstatt Benutzer zu registrieren, werden wir einfach ihre Logins und Passwörter in eine Tabelle in der Datenbank eingeben:
| id | login | password |
|---|---|---|
| 1 | user | 12345 |
| 2 | admin | 123 |
Erstellen wir nun ein Formular, in das Login und Passwort eingegeben werden:
<form action="" method="POST">
<input name="login">
<input name="password" type="password">
<input type="submit">
</form>
Schreiben wir nun den Code, der prüft, ob das Formular abgeschickt wurde und, falls ja, prüft, ob es in der Datenbank einen Benutzer mit diesem Login und Passwort gibt:
<?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)) {
// Benutzer authentifiziert
} else {
// Falscher Login oder Passwort
}
}
?>
Implementieren Sie die oben beschriebene Authentifizierung. Sorgen Sie dafür, dass eine entsprechende Meldung ausgegeben wird, wenn der Benutzer erfolgreich authentifiziert wurde, und eine andere Meldung, wenn der eingegebene Login oder das Passwort falsch sind.
Modifizieren Sie den Code so, dass im Falle einer erfolgreichen Authentifizierung das Formular zur Eingabe von Passwort und Login nicht mehr auf dem Bildschirm angezeigt wird.
Modifizieren Sie den Code so, dass im Falle einer erfolgreichen
Authentifizierung eine Weiterleitung auf die Seite
index.php erfolgt.
Modifizieren Sie den Code so, dass auf der Seite
index.php eine Meldung über die
erfolgreiche Authentifizierung ausgegeben wird. Lösen Sie die Aufgabe mit
Flash-Nachrichten in Sessions.