Möchtest du einen sicheren Login-Bereich für deine Website erstellen? Dann bist du hier genau richtig! In diesem Artikel erfährst du, wie du MySQL und Sessions verwendest, um einen sicheren Login-Bereich zu erstellen.
<?php
// Hier kommt der Code
Datenbankstruktur
Zuerst musst du eine neue Tabelle in phpMyAdmin erstellen. Du kannst die gleiche Tabelle verwenden, die im MySQL-Tutorial beschrieben wird:
Als nächstes fügst du einen neuen Benutzereintrag in die Tabelle ein. Verwende dazu phpMyAdmin und trage die Daten eines Test-Benutzers ein, z.B. E-Mail: [email protected] Passwort: $2y$10$qCgb4MKzbMKAqUU2LOFBQ.wGoAD6yBElFA7V7EPwK.QGCViJjx4mu
Das Passwort ($2y$10$qCgb4MKzbMKAqUU2LOFBQ.wGoAD6yBElFA7V7EPwK.QGCViJjx4mu) ist der Hash-Wert für das Passwort “test”. Speichere Passwörter niemals im Klartext ab, sondern verwende immer Hash-Werte. Mehr Informationen zur sicheren Speicherung von Passwörtern findest du in unserem Artikel “Passwörter sicher speichern” sowie in unserem Tutorial “PHP Sicherheit”.
Um die password_hash()-Funktion zu nutzen, musst du mindestens PHP 5.5 verwenden. Falls du PHP >= 5.3.7 oder PHP 5.4 verwendest, lade die Datei “password.php” herunter und binde sie am Anfang deiner Scripts ein.
Dateiaufbau
Für dieses Beispiel benötigst du die folgenden Dateien:
- registrieren.php – Datei für die Benutzerregistrierung
- login.php – Datei für den Login
- geheim.php – Geschützter Bereich
Registrierung
Hier ist der vollständige Code für die Registrierung:
<?php
// Hier kommt der Code
Die Registrierung beginnt mit dem Aufruf von session_start()
und dem Aufbau einer Verbindung zur Datenbank. Das Registrierungsformular wird nur angezeigt, wenn der GET-Parameter register=1
übergeben wird. In diesem Formular werden die Eingaben überprüft und die Registrierung durchgeführt.
Login
Die Login-Seite ist sehr einfach aufgebaut:
<?php
// Hier kommt der Code
Wenn das Login-Formular abgesendet wird, wird die E-Mail-Adresse in der Datenbank überprüft. Wenn ein Benutzer gefunden wird und das Passwort übereinstimmt, wird die Session-Variable userid
mit der ID des Benutzers registriert.
Geschützter Bereich
Für den geschützten Bereich (geheim.php
) musst du nur überprüfen, ob die Session-Variable userid
existiert. Wenn nicht, wird der Benutzer darauf hingewiesen, sich zuerst zu registrieren.
Diesen Codeschnipsel musst du nur in jede deiner geschützten Seiten einfügen.
Logout
Wenn du auch einen Logout-Bereich haben möchtest, füge einfach den folgenden Code in eine neue Datei, z.B. logout.php
, ein:
<?php
// Hier kommt der Code
Jetzt bist du bereit, einen sicheren Login-Bereich für deine Website zu erstellen. Viel Erfolg!
Autor: Nils Reimers