Suche…


Einführung

Ein HTTP-Cookie ist ein kleines Datenelement, das von einer Website gesendet und vom Webbrowser des Benutzers auf dem Computer des Benutzers gespeichert wird, während der Benutzer browst.

Syntax

  • bool setcookie( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] )

Parameter

Parameter Detail
Name Der Name des Cookies. Dies ist auch der Schlüssel, den Sie verwenden können, um den Wert aus dem Super Global $_COOKIE . Dies ist der einzige erforderliche Parameter
Wert Der Wert, der im Cookie gespeichert werden soll. Diese Daten sind für den Browser zugänglich, speichern Sie also keine sensiblen Daten.
verfallen Ein Unix-Zeitstempel, der angibt, wann der Cookie abläuft. Wenn der Wert auf Null gesetzt ist, verfällt das Cookie am Ende der Sitzung. Wenn der Wert unter dem aktuellen Unix-Zeitstempel liegt, verfällt der Cookie sofort.
Pfad Der Umfang des Cookies. Bei Einstellung auf / der Cookie in der gesamten Domain verfügbar. Bei Angabe von /some-path/ ist das Cookie nur in diesem Pfad und dessen Nachkommen verfügbar. Der Standardpfad ist der aktuelle Pfad der Datei, in der der Cookie gesetzt wird.
Domain Die Domäne oder Unterdomäne, auf der der Cookie verfügbar ist. Wenn die stackoverflow.com Domäne stackoverflow.com ist das Cookie für diese Domäne und alle Unterdomänen verfügbar. Wenn die Subdomain meta.stackoverflow.com ist das Cookie nur für diese Subdomain und alle Sub-Subdomains verfügbar.
sichern Wenn der TRUE auf TRUE gesetzt ist, wird das Cookie nur gesetzt, wenn eine sichere HTTPS-Verbindung zwischen dem Client und dem Server besteht.
httponly Gibt an, dass das Cookie nur über das HTTP / S-Protokoll verfügbar gemacht werden sollte und für clientseitige Skriptsprachen wie JavaScript nicht verfügbar sein sollte. Nur in PHP 5.2 oder höher verfügbar.

Bemerkungen

Es ist erwähnenswert, dass das bloße Aufrufen der setcookie Funktion nicht nur gegebene Daten in das $_COOKIE _COOKIE-Array legt.

Zum Beispiel hat es keinen Sinn zu tun:

setcookie("user", "Tom", time() + 86400, "/");
var_dump(isset($_COOKIE['user'])); // yields false or the previously set value

Der Wert ist noch nicht vorhanden, nicht bis zum Laden der nächsten Seite. Die Funktion setcookie sagt einfach " bei nächster http-Verbindung den Client (Browser) setcookie , diesen Cookie zu setzen ". Wenn die Header dann an den Browser gesendet werden, enthalten sie diesen Cookie-Header. Der Browser prüft dann, ob der Cookie noch nicht abgelaufen ist. Wenn nicht, sendet er in http-Anfrage den Cookie an den Server. In diesem $_COOKIE empfängt PHP ihn und legt den Inhalt im $_COOKIE Array ab.

Ein Cookie wird mit der Funktion setcookie() . Da Cookies Teil des HTTP-Headers sind, müssen Sie alle Cookies setzen, bevor Sie die Ausgabe an den Browser senden.

Beispiel:

setcookie("user", "Tom", time() + 86400, "/"); // check syntax for function params

Beschreibung:

  • Erzeugt ein Cookie mit dem Namen user
  • (Optional) Der Wert des Cookies ist Tom
  • (Optional) Das Cookie verfällt nach 1 Tag (86400 Sekunden).
  • (Optional) Plätzchen sind in der gesamten Website /
  • (Optional) Cookie wird nur über HTTPS gesendet
  • (Optional) Auf Skriptsprachen wie JavaScript kann nicht auf Cookies zugegriffen werden

Auf ein erstelltes oder modifiziertes Cookie kann nur bei nachfolgenden Anforderungen zugegriffen werden (wobei path und domain übereinstimmen), da der Superglobal-Server $_COOKIE nicht sofort mit den neuen Daten $_COOKIE wird.

Rufen Sie einen mit Cookie benannten user

Der Wert eines Cookies kann mit der globalen Variablen $_COOKIE abgerufen werden. Wenn wir beispielsweise ein Cookie mit dem Namen user haben, können wir es so abrufen

echo $_COOKIE['user'];

Der Wert eines Cookies kann durch Zurücksetzen des Cookies geändert werden

setcookie("user", "John", time() + 86400, "/"); // assuming there is a "user" cookie already

Cookies sind Teil des HTTP-Headers. setcookie() muss setcookie() aufgerufen werden, bevor eine Ausgabe an den Browser gesendet wird.

setcookie() beim Ändern eines Cookies sicher, dass der path und die domain von setcookie() mit dem vorhandenen Cookie setcookie() ein neues Cookie erstellt.

Der Wertteil des Cookies wird beim Senden des Cookies automatisch umladecodiert. Wenn er empfangen wird, wird er automatisch dekodiert und einer Variablen mit demselben Namen wie der Cookie-Name zugewiesen

Verwenden Sie die Funktion isset() für die superglobal-Variable $_COOKIE , um zu prüfen, ob ein Cookie gesetzt ist.

Beispiel:

// PHP <7.0
if (isset($_COOKIE['user'])) {
    // true, cookie is set
    echo 'User is ' . $_COOKIE['user'];
else {
    // false, cookie is not set
    echo 'User is not logged in';
}

// PHP 7.0+
echo 'User is ' . $_COOKIE['user'] ?? 'User is not logged in'; 

Um ein Cookie zu entfernen, setzen Sie den Ablaufzeitstempel auf einen früheren Zeitpunkt. Dies löst den Entfernungsmechanismus des Browsers aus:

setcookie('user', '', time() - 3600, '/');

setcookie() Sie beim Löschen eines Cookies sicher, dass der path und die domain von setcookie() mit dem Cookie übereinstimmen, das Sie löschen setcookie() , oder dass ein neues Cookie erstellt wird, das sofort abläuft.

Es ist auch eine gute Idee, den $_COOKIE Wert zu $_COOKIE , falls die aktuelle Seite ihn verwendet:

unset($_COOKIE['user']);


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow