PHP Sessions

Aus Xinux Wiki
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