PHP Sessions
Zur Navigation springen
Zur Suche springen
PHP Sessions (kurz erklärt)
Ziel
- Verstehen, wie PHP Benutzer „wiedererkennt“
- Grundlage für Login und Zugriffsschutz
Grundprinzip
- Erklärung
- HTTP ist zustandslos → jeder Request ist unabhängig
- Session löst das Problem durch:
- eindeutige ID (Session-ID)
- Speicherung der Daten auf dem Server
- Cookie im Browser als Schlüssel
Start einer Session
- Erklärung
- Jede Seite mit Login-Bezug benötigt:
session_start();
- Wirkung:
- Neue Session wird erstellt ODER bestehende geladen
- PHP erzeugt/liest eine Session-ID
Session-ID
- Erklärung
- Wird als Cookie gesetzt:
PHPSESSID=abc123...
- Browser sendet dieses Cookie bei jedem Request automatisch mit
Speicherung auf dem Server
- Erklärung
- Sessions liegen als Dateien auf dem Server, z. B.:
/var/lib/php/sessions/
- Beispielinhalt:
user|s:5:"admin";
Verwendung im Login
- Erklärung
- Nach erfolgreichem Login:
$_SESSION['user'] = $benutzername;
- Wirkung:
- Benutzer wird „gemerkt“
- Zugriff auf anderen Seiten möglich
Zugriff auf geschützte Seiten
- Erklärung
- Immer zuerst:
session_start();
- Prüfung:
if (!isset($_SESSION['user'])) {
die("Nicht eingeloggt");
}
Ablauf
- Erklärung
- Login → Session wird erstellt
- Browser bekommt Cookie (Session-ID)
- Bei jedem weiteren Request:
- Cookie wird gesendet
- PHP lädt passende Session-Datei
- Daten stehen wieder zur Verfügung
Typische Fehler
- Erklärung
- session_start() vergessen → Session leer
- Ausgabe vor session_start() → Fehler (Headers already sent)
- Session nicht geprüft → kein Schutz
- Falsche Annahme: Session liegt im Browser (tut sie nicht)
Kurzfassung
- Merksatz
- Session = Server-Speicher + Cookie als Schlüssel