27. Login Teil 3 (Session)

Unser Login-System kann aktuell noch sehr leicht ausgetrickst werden. Um auf die Willkommens-Seite zu gelangen, muss der User nicht zwangsläufig Anmeldedaten eingeben. Es genügt, wenn der Benutzer oben im URL-Fenster den Dateinamen (welcome.php) per Hand eingibt.

Siehe Beispiel in der unteren Abbildung.

Abbildung 27.1: Direkte Eingabe über die URL

Zur Vermeidung dieses Problems implementieren wir in der Datei welcome.php oberhalb des HTML-Codes eine automatische Weiterleitung, die den Benutzer zurück auf die Login-Seite führt. Siehe untere Abbildung.

Abbildung 27.2: Umleitung auf die Login-Seite

Was ist eine Session?

Session ist das englische Wort für 'Sitzung'. Als Sitzung wird der Besuch auf einer Webseite bezeichnet. Wenn sich ein Benutzer für 10 Minuten auf einer Webseite eines Onlineshops aufhält, hatte der User eine zehnminütige Session auf dieser Webseite. Innerhalb einer Session können Daten zwischen verschiedenen Seitenaufrufen einer Webanwendung gespeichert werden. Sie ermöglichen es Webentwicklern, den Zustand eines Benutzers über mehrere Seitenaufrufe hinweg aufrechtzuerhalten, wodurch komplexere und interaktivere Benutzerinteraktionen möglich werden.

Eine Session starten

Um Sessions in PHP zu verwenden, müssen Sie zunächst die Funktion session_start() aufrufen. Diese Funktion erstellt eine neue Session, wenn noch keine vorhanden ist oder setzt eine bestehende Session fort. Der Web-Server legt für die Session eine Datei auf dem Server an.

Diese Datei können wir uns anschauen.

Gehen Sie in das XAMPP-Verzeichnis und dort in das Unterverzeichnis 'tmp'.

Schreiben Sie nun den Befehl session_start() ganz oben in die Datei login.php.

Laden Sie die Webseite neu und schauen Sie in das Unterverzeichnis 'tmp'. Dort sollte nun eine neue Datei zu finden sein.

In dem Dateinamen ist eine ID zu finden. Es handelt sich um die Session-ID, welche von PHP automatisch generiert wird.

Mit der Funktion session_id() können wir uns die ID ausgeben lassen.

Abbildung 27.3: Die Funktion session_id()