PHP-Sitzung und PHP-Cookies mit Beispiel
โก Intelligente Zusammenfassung
Cookies und Sessions in PHP sichern den Zustand รผber das zustandslose HTTP-Protokoll hinweg, speichern Daten aber auf unterschiedliche Weise. Diese Anleitung erklรคrt, wie Cookies kleine Dateien auf dem Client speichern, wie Sessions Daten auf dem Server verwalten und wie man sie mit funktionierendem Code erstellt, liest und lรถscht.

Was ist Cookie?
Ein Cookie ist eine kleine Datei mit einer maximalen Grรถรe von 4 KB, die der Webserver auf dem Client-Computer speichert.
Sobald ein Cookie gesetzt wurde, geben alle folgenden Seitenanfragen den Cookie-Namen und -Wert zurรผck.
Ein Cookie kann nur von der Domain gelesen werden, von der er ausgestellt wurde. Beispielsweise kann ein Cookie, der mit der Domain www.guru99.com gesetzt wurde, nicht von der Domain www.guru99.com gelesen werden. karriere.guru99.com.
Die meisten Websites im Internet enthalten Elemente aus anderen Bereichen, beispielsweise Werbung. Die Domรคnen, die diese Elemente bereitstellen, kรถnnen auch ihre eigenen Cookies setzen. Diese Cookies werden als Drittanbieter-Cookies bezeichnet.
Ein von einem Benutzer erstelltes Cookie kann nur fรผr ihn sichtbar sein. Andere Benutzer kรถnnen seinen Wert nicht sehen.
Die meisten Webbrowser bieten Optionen zum Deaktivieren von Cookies, Cookies von Drittanbietern oder beidem.
In diesem Fall antwortet PHP, indem es das Cookie-Token รผbergibt. URL.
Das unten gezeigte Diagramm veranschaulicht, wie Cookies funktionieren.
Dabei steht:
1) Ein Nutzer fordert eine Seite an, die Cookies speichert
2) Der Server setzt das Cookie auf dem Computer des Benutzers
3) Andere Seitenanfragen des Benutzers geben den Cookie-Namen und -Wert zurรผck
Warum und wann werden Cookies verwendet?
- HTTP ist ein zustandsloses Protokoll; Cookies ermรถglichen uns tracDer Status der Anwendung wird mithilfe kleiner Dateien, die auf dem Computer des Benutzers gespeichert werden, รผberwacht. Der Speicherort der Cookies ist browserabhรคngig. Internet Explorer speichert sie รผblicherweise im Ordner โTemporรคre Internetdateienโ.
- Die Personalisierung des Nutzererlebnisses wird dadurch erreicht, dass Nutzer ihre Prรคferenzen auswรคhlen kรถnnen. Die nachfolgenden Seitenaufrufe werden basierend auf den in den Cookies gespeicherten Prรคferenzen personalisiert.
- Tracking die von einem Benutzer besuchten Seiten
Cookies erstellen
Schauen wir uns nun die grundlegende Syntax an, die zum Erstellen eines Cookies verwendet wird.
<?php setcookie(cookie_name, cookie_value, [expiry_time], [cookie_path], [domain], [secure], [httponly]); ?>
HIER,
- โsetcookieโ ist der PHP-Funktion Wird zum Erstellen des Cookies verwendet.
- โcookie_nameโ ist der Name des Cookies, den der Server verwendet, um seinen Wert aus der Array-Variablen $_COOKIE abzurufen. Er ist obligatorisch.
- โcookie_valueโ ist der Wert des Cookies und muss angegeben werden.
- โ[expiry_time]โ ist optional; damit kann die Gรผltigkeitsdauer des Cookies festgelegt werden, z. B. 1 Stunde. Die Zeit wird mit der PHP-Funktion time() plus oder minus einer Anzahl von Sekunden grรถรer als 0 berechnet, z. B. time() + 3600 fรผr 1 Stunde.
- โ[cookie_path]โ ist optional; Es kann verwendet werden, um den Cookie-Pfad auf dem Server festzulegen. Der Schrรคgstrich โ/โ bedeutet, dass das Cookie auf der gesamten Domain verfรผgbar gemacht wird. Unterverzeichnisse beschrรคnken den Cookie-Zugriff auf die Subdomain.
- โ[domain]โ ist optional; es kann verwendet werden, um die Cookie-Zugriffshierarchie zu definieren, d.h.
www.cookiedomain.combedeutet die gesamte Domรคne, wรคhrendwww.sub.cookiedomain.combeschrรคnkt den Cookie-Zugriff aufwww.sub.cookiedomain.comund seine Subdomains. - Die Angabe โ[secure]โ ist optional; der Standardwert ist โfalseโ. Sie bestimmt, ob der Cookie รผber HTTPS (bei โtrueโ) oder HTTP (bei โfalseโ) gesendet wird.
- โ[httponly]โ ist optional. Wenn es auf โtrueโ gesetzt ist, werden clientseitige Skriptsprachen wie z. B. JavaSkript Ich kann nicht auf den Cookie zugreifen.
Hinweis: Die PHP-Funktion setcookie muss vor dem รถffnenden HTML-Tag ausgefรผhrt werden.
Betrachten wir nun ein Beispiel, das Cookies verwendet.
Wir werden ein einfaches Programm erstellen, das es uns ermรถglicht, den Benutzernamen in einem Cookie zu speichern, der nach sechzig Sekunden ablรคuft.
Der folgende Code zeigt die Implementierung des obigen Beispiels โcookies.phpโ.
<?php setcookie("user_name", "Guru99", time()+ 60,'/'); // expires after 60 seconds echo 'the cookie has been set for 60 seconds'; ?>
Ausgang:
the cookie has been set for 60 seconds
Abrufen des Cookie-Werts
Erstellen Sie eine weitere Datei namens โcookies_read.phpโ mit dem folgenden Code.
<?php
print_r($_COOKIE); // output the contents of the cookie array variable
?>
Ausgang:
Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )
Hinweis: $_COOKIE ist eine in PHP integrierte Superglobalvariable. Sie enthรคlt die Namen und Werte aller gesetzten Cookies.
Die Anzahl und Grรถรe der Cookies ist durch den Browser begrenzt, typischerweise etwa 50 Cookies pro Domain und 4 KB pro Cookie.
Testen unserer Anwendung. Nehmen wir an, Sie haben Ihre PHP-Dateien in einem phptuts-Ordner gespeichert.
- Schritt 1 โ รffnen Sie Ihren Webbrowser und geben Sie Folgendes ein: URL http://localhost/phptuts/cookies_read.php
Hinweis: Es wurde nur ein leeres Array angezeigt
- Schritt 2 โ Navigieren Sie zu URL http://localhost/phptuts/cookies.php
- Schritt 3 โ Wechseln Sie zurรผck zum ersten Tab und klicken Sie dann auf die Schaltflรคche โAktualisierenโ.
Warten Sie eine Minute und klicken Sie dann erneut auf die Schaltflรคche โAktualisierenโ. Welche Ergebnisse haben Sie erhalten?
Cookies lรถschen
- Wenn Sie ein Cookie vor seiner Ablaufzeit vernichten mรถchten, stellen Sie die Ablaufzeit auf einen bereits verstrichenen Zeitpunkt ein.
- Erstellen Sie eine neue Datei namens cookie_destroy.php mit folgendem Code
<?php setcookie("user_name", "Guru99", time() - 360,'/'); ?>
- Wiederholen Sie die Schritte 1 bis 3 aus dem obigen Abschnitt zum Abrufen von Cookie-Werten.
- รffnen Sie den Microsoft Store auf Ihrem Windows-PC URL http://localhost/phptuts/cookie_destroy.php
- Wechseln Sie auf die URL http://localhost/phptuts/cookies_read.phpWelche Ergebnisse werden angezeigt?
Was ist eine Sitzung?
- Eine Sitzung ist eine globale Variable, die auf dem Server gespeichert ist.
- Jeder Sitzung wird eine eindeutige ID zugewiesen, die zum Abrufen gespeicherter Werte verwendet wird.
- Bei jeder Sitzungserstellung wird ein Cookie mit der eindeutigen Sitzungs-ID auf dem Computer des Benutzers gespeichert und mit jeder Anfrage an den Server zurรผckgesendet. Falls der Client-Browser keine Cookies unterstรผtzt, wird die eindeutige PHP-Sitzungs-ID in der Adressleiste angezeigt. URL.
- Im Vergleich zu Cookies kรถnnen Sitzungen relativ groรe Datenmengen speichern.
- Die Sitzungswerte werden beim Schlieรen des Browsers automatisch gelรถscht. Wenn Sie die Werte dauerhaft speichern mรถchten, sollten Sie diese in der Datenbank speichern.
- Genau wie die Array-Variable $_COOKIE werden Sitzungsvariablen in der Array-Variable $_SESSION gespeichert. Genau wie bei Cookies muss die Sitzung vor allen HTML-Tags gestartet werden.
Warum und wann sollten Sitzungen verwendet werden?
- Sie mรถchten wichtige Informationen wie die Benutzer-ID sicherer auf dem Server speichern, wo bรถswillige Benutzer sie nicht manipulieren kรถnnen.
- Sie mรถchten Werte von einer Seite an eine andere รผbergeben.
- Sie mรถchten eine Alternative zu Cookies in Browsern, die keine Cookies unterstรผtzen.
- Sie mรถchten globale Variablen effizienter und sicherer speichern, als sie direkt zu รผbergeben. URL.
- Du entwickelst dichping eine Anwendung wie beispielsweise ein Shopping Warenkorb, der vorรผbergehend Informationen mit einer Kapazitรคt von mehr als 4 KB speichern muss.
Erstellen einer Sitzung
Um eine Session zu erstellen, mรผssen Sie zuerst die PHP-Funktion session_start aufrufen und anschlieรend Ihre Werte in der Array-Variablen $_SESSION speichern.
Nehmen wir an, wir mรถchten wissen, wie oft eine Seite geladen wurde. Dazu kรถnnen wir eine Session verwenden.
Der folgende Code zeigt, wie man Werte aus Sitzungen erstellt und abruft.
<?php session_start(); // start the session if(isset($_SESSION['page_count'])) { $_SESSION['page_count'] += 1; } else { $_SESSION['page_count'] = 1; } echo 'You are visitor number ' . $_SESSION['page_count']; ?>
Ausgang:
You are visitor number 1
Sitzungsvariablen zerstรถren
Die Funktion session_destroy() wird verwendet, um die gesamte PHP-Session zu zerstรถren.
Wenn Sie nur ein einzelnes Sitzungselement lรถschen mรถchten, verwenden Sie die Funktion unset().
Der folgende Code veranschaulicht die Verwendung beider Methoden.
<?php
session_destroy(); // destroy entire session
?>
<?php unset($_SESSION['product']); // destroy product session item ?>
session_destroy entfernt alle Sitzungsdaten, einschlieรlich der mit der Sitzung verbundenen Cookies.
Das Aufheben der Einstellung gibt lediglich die einzelnen Sitzungsvariablen frei. Andere Daten bleiben erhalten.




