PHP Sessions: Logins, Warenkörbe & mehr
Sessions starten
Du lernst session_start() und $_SESSION zu verwenden
Benutzer identifizieren
Du verstehst, wie Sessions Benutzer ueber mehrere Seiten tracken
Sicher speichern
Du kannst sensible Daten server-seitig speichern
Wir kennen bereits Cookies: kleine Notizzettel, die auf dem Computer des Benutzers gespeichert werden. Jeder kann diesen Zettel theoretisch sehen und verändern. Sessions funktionieren anders: Die eigentlichen Daten liegen sicher auf dem Server. Der Browser bekommt nur eine einzige, geheime Nummer – die Session-ID.
Wie ein Notizzettel in deiner Hosentasche. Du trägst alle Infos selbst – aber jemand könnte den Zettel lesen oder fälschen.
Wie eine Garderoben-Nummer. Du bekommst nur die Nummer (ID). Die Jacke (= deine Daten) hängt sicher beim Personal (= Server).
| Merkmal | Cookie | Session |
|---|---|---|
| Daten gespeichert bei | Browser (Client) | Server |
| Sicherheit | ⚠️ Manipulierbar | ✅ Sicher (auf dem Server) |
| Lebensdauer | Definierbar (Tage, Jahre) | Bis Browser-Tab/Fenster schließt |
| Typischer Einsatz | "Erinnere mich"-Funktion | Login-Status, Warenkorb |
Die wichtigste Regel: Auf jeder PHP-Seite, die mit Sessions arbeitet, muss session_start() als allererster Befehl stehen – noch bevor irgendeine HTML-Ausgabe erfolgt.
Danach kann man Daten in $_SESSION speichern – wie in einem normalen Array:
Nicht nur auf der Login-Seite! Auf jeder Seite, auf der du Session-Daten lesen oder schreiben willst, muss session_start() als erster Befehl stehen.
Auf einer anderen Seite (z.B. nach einem Weiterleiten) können wir die gespeicherten Session-Daten wieder abrufen. Das ist der Kern eines Login-Systems.
header("Location: ...")?
Diese Funktion leitet den Browser automatisch auf eine andere Seite weiter – wie eine Weiche auf einer Eisenbahnstrecke. Das exit() dahinter ist Pflicht, da PHP sonst den Rest des Codes trotzdem weiter ausführt.
Ein typisches Login besteht aus zwei Dateien: login.php (Formular + Prüfung) und einer geschützten Seite wie dashboard.php.
Beim Logout müssen wir die Session vollständig vernichten – es reicht nicht, nur einzelne Werte zu löschen. Ein ordentlicher Logout besteht aus drei Schritten:
Schritt 1
$_SESSION = []
Array leeren
Schritt 2
session_destroy()
Server-Datei löschen
Schritt 3
header("Location: ...")
Weiterleiten
Session starten & schreiben
Session lesen
Login prüfen
Logout
Dynamische Webseiten 2 | eduhigh.net | Seminarunterlagen