Die Funktion setcookie() sendet ein HTTP-Cookie an den Client.
Ein Cookie ist eine Variable, die vom Server an den Browser gesendet wird. Cookies sind typischerweise kleine Textdateien, die ein Server auf dem Computer eines Benutzers einbettet. Dieses Cookie wird jedes Mal gesendet, wenn derselbe Computer eine Seite über den Browser anfordert.
Der Name des Cookies wird automatisch einer gleichnamigen Variablen zugewiesen. Wenn das gesendete Cookie beispielsweise den Namen „user“ trägt, wird automatisch eine Variable namens „$user“ erstellt, die den Wert des Cookies enthält.
Das Cookie muss zugewiesen werden, bevor eine andere Ausgabe an den Client gesendet wird.
Bei Erfolg gibt die Funktion TRUE zurück. Gibt bei einem Fehler FALSE zurück.
setcookie(Name,Wert,Ablaufdatum,Pfad,Domäne,sicher)
Parameter | beschreiben |
---|---|
Name | Erforderlich. Gibt den Namen des Cookies an. |
Wert | Erforderlich. Gibt den Cookie-Wert an. |
erlöschen | Optional. Gibt die Ablaufzeit des Cookies an. time()+3600*24*30 setzt die Cookie-Ablaufzeit auf 30 Tage. Wenn dieser Parameter nicht gesetzt ist, verfällt das Cookie automatisch nach Ende der Sitzung (d. h. wenn der Browser geschlossen wird). |
Weg | Optional. Gibt den Serverpfad für Cookies an. Wenn der Pfad auf „/“ festgelegt ist, ist das Cookie innerhalb des gesamten Domänennamens gültig. Wenn der Pfad auf „/test/“ festgelegt ist, ist das Cookie im Testverzeichnis und allen seinen Unterverzeichnissen gültig. Der Standardpfadwert ist das aktuelle Verzeichnis, in dem sich das Cookie befindet. |
Domain | Optional. Gibt den Domänennamen des Cookies an. Damit das Cookie in allen Subdomains von example.com gültig ist, müssen Sie den Domainnamen des Cookies auf „.example.com“ setzen. Wenn Sie den Domänennamen des Cookies auf www.example.com festlegen, ist das Cookie nur in der Subdomäne www gültig. |
sicher | Optional. Gibt an, ob Cookies über eine sichere HTTPS-Verbindung übertragen werden müssen. Auf TRUE setzen, wenn Cookies über eine sichere HTTPS-Verbindung übertragen werden müssen. Der Standardwert ist FALSE. |
Tipp: Auf den Wert des Cookies mit dem Namen „user“ kann über $HTTP_COOKIE_VARS[“user“] oder $_COOKIE[“user“] zugegriffen werden.
Hinweis: Beim Senden eines Cookies wird der Cookie-Wert automatisch URL-codiert. Die URL-Dekodierung erfolgt automatisch beim Empfang. Wenn Sie dies nicht benötigen, können Sie stattdessen setrawcookie() verwenden.
Cookies setzen und versenden:
<?php$value = "my cookie value";// sende ein einfaches cookiesetcookie("TestCookie",$value);?><html><body>......
<?php$value = "my cookie value";// ein Cookie senden, das in 24 Stunden abläuftsetcookie("TestCookie",$value, time()+3600*24);?><html><body>... ...
Verschiedene Möglichkeiten, den Cookie-Wert abzurufen (nachdem das Cookie gesetzt wurde):
<html><body><?php// Einzelne Cookies druckenecho $_COOKIE["TestCookie"];echo "<br />";echo $HTTP_COOKIE_VARS["TestCookie"];echo "<br />";// Drucken alle Cookiesprint_r($_COOKIE);?></body></html>
Der obige Code gibt Folgendes aus:
mein Cookie-Wertmein Cookie-WertArray ([TestCookie] => mein Cookie-Wert)
Löschen Sie ein Cookie, indem Sie das Ablaufdatum auf ein Datum/eine Uhrzeit in der Vergangenheit setzen:
<?php// Setzen Sie das Ablaufdatum auf eine Stunde vorsetcookie ("TestCookie", "", time() - 3600);?><html><body>......
Erstellen Sie eine Reihe von Cookies:
<?phpsetcookie("cookie[drei]","cookiedrei");setcookie("cookie[zwei]","cookietwo");setcookie("cookie[one]","cookieone");// Cookies drucken (nach Seite wird neu geladen)if (isset($_COOKIE["cookie"])) { foreach ($_COOKIE["cookie"] as $name => $value) { echo "$name : $value <br />" } }?><html><body>......
Der obige Code gibt Folgendes aus:
drei: cookiedreizwei: cookietwoone: cookieone