Falconbyte unterstüzen
Der Unterschied zwischen Sessions und Cookies
Sowohl Sessions als auch Cookies werden eingesetzt, um Daten über mehrere PHP-Seiten hinweg zu halten.
Während der grundlegende Sinn von Sessions und Cookies also sehr ähnlich ist, gibt es doch auch wesentliche Unterschiede.
Was ist eine Session?
Eine Session wird verwendet, um Daten vorübergehend zu speichern. Die Session wird vollständig beendet ("zerstört"), wenn der User das PHP-Programm verlässt, also den Browser schließt. Sessions werden (anders als Cookies) auf dem Server verwaltet.
Lerne mehr über Sessions.
Was ist ein Cookie?
Ein Cookie ist ein kleines Datenpaket in Form einer Textdatei, die lokal auf dem Computer des Users gespeichert wird. Wie lange die Cookie-Daten abgelegt werden, wird beim Erzeugen des Cookies festgelegt und sind in der Regel für die langfristige Speicherung angelegt - jedenfalls werden sie nicht beim Schließen des Browsers oder Herunterfahren des Rechners gelöscht.
Lerne mehr über Cookies.
Wie Sessions und Cookies erstellt werden
Auch hinsichtlich der Syntax und der Art der Erstellung sowie des Zugriffs gibt es strukturelle Unterschiede zwischen Sessions und Cookies.
Schauen wir uns hierzu an, wie du eine Session bzw. einen Cookie in einem PHP-Programm jeweils erstellst.
Session
// Session starten
session_start();
// Session-Variablen setzen
$_SESSION["counter"] = 0;
$_SESSION["color"] = "red";
// Session-Variablen aufrufen
echo $_SESSION["counter"]; // 0
echo $_SESSION["color"]; // red
Die Funktion session_start() legt eine Session an (dies muss übrigens die allererste Anweisung auf der PHP-Seite sein. Es darf kein HTML-Tag davor stehen).
Anschließend definieren wir jeweils zwei verschiedene Session-Werte (0 und "red").
Wie du siehst, werden die einzelnen Daten-Werte in der globalen Session-Variable $_SESSION gespeichert, das als assoziatives Array funktioniert.
Cookie
// Cookies erstellen
setcookie("Wert1", "Super Heavy", time() + (86400 * 30), "/");
setcookie("Wert2", "Starship", time() + (86400 * 30), "/");
// Cookies aufrufen
echo $_COOKIE["wert1"]; // Super Heavy
echo $_COOKIE["wert2"]; // Starship
Zum Erstellen eines Cookies verwendest du die Funktion setcookie(). Dabei legen wir den Namen des Cookies, seinen Wert, die Lebensdauer und das Verzeichnis fest ("/" bedeutet Gültigkit für die gesamte Website).
Für jeden Cookie muss die Funktion jeweils separat aufgerufen werden.
Wie bei der Session, so werden auch Cookies in einem globalen assoziativen Array - nämlich diesmal $_COOKIE - gespeichert. Der Aufruf der einzelnen Cookies funktioniert dann auch ähnlich wie bei den Sessions.
Unterschiede kurzgefasst
Session | Cookie | |
---|---|---|
Lebensdauer | kurzfristig (Ende: Schließen des Browsers) | langfristig (Ende: vom Programmierer festgelegt) |
Speicherort | Server | lokale Maschine des Nutzers |
Speichergröße | 128 MB | 4 KB |
Startfunktion | session_start() | setcookie() |
globale Variable | $_SESSION | $_COOKIE |
Sieh dir das Ganze auch auf youtube an: