PHP setcookie()Funktionen


PHP HTTP 参考手册Vollständiges PHP HTTP-Referenzhandbuch

Definition und Verwendung

Die Funktion setcookie() sendet ein HTTP-Cookie an den Client.

Ein Cookie ist eine Variable, die vom Server an den Browser gesendet wird. Ein Cookie ist normalerweise eine kleine Textdatei, die der Server auf dem Computer des Benutzers speichert. Dieses Cookie wird gesendet, wann immer derselbe Computer eine Seite über einen Browser anfordert.

Ein Cookie wird automatisch einer Variable mit demselben Namen zugewiesen. Wenn beispielsweise ein Cookie namens "user" gesendet wird, wird automatisch eine Variable namens $user erstellt, die den Wert des Cookies enthält.

Das Cookie muss gesetzt werden, bevor eine andere Ausgabe an den Client gesendet wird.

Gibt bei Erfolg TRUE zurück, bei Fehlschlag FALSE.

Syntax

setcookie(name,value,expire,path,domain,secure)

Parameters Beschreibung
name Erforderlich. Gibt den Namen des Cookies an.
value Erforderlich. Gibt den Wert des Cookies an.
expire Optional. Gibt die Ablaufzeit des Cookies an.

time()+3600*24*30 legt fest, dass das Cookie in 30 Tagen abläuft. Wenn dieser Parameter nicht gesetzt ist, läuft das Cookie automatisch ab, wenn die Sitzung endet (d. h. wenn der Browser geschlossen wird).

path Optional. Gibt den Serverpfad des Cookies an.

Wenn der Pfad auf "/" gesetzt ist, ist das Cookie in der gesamten Domäne gültig. Wenn der Pfad auf "/test/" gesetzt ist, ist das Cookie im Testverzeichnis und in allen seinen Unterverzeichnissen gültig. Der Standardwert für den Pfad ist das aktuelle Verzeichnis, in dem sich das Cookie befindet.

domain Optional. Gibt die Domäne des Cookies an.

Damit das Cookie in allen Subdomains von example.com gültig ist, müssen Sie die Domäne des Cookies auf ".example.com" setzen. Wenn Sie die Domäne des Cookies auf www.example.com setzen, ist das Cookie nur in der Subdomain www gültig.

secure Optional. Gibt an, ob eine sichere HTTPS-Verbindung erforderlich ist, um das Cookie zu übertragen. Setzen Sie auf TRUE, wenn das Cookie über eine sichere HTTPS-Verbindung übertragen werden muss. Standard ist FALSE.


Tipps und Hinweise

Tipp:Sie können auf den Wert eines Cookies mit dem Namen "user" über $HTTP_COOKIE_VARS["user"] oder $_COOKIE["user"] zugreifen.

Hinweis:Beim Senden eines Cookies wird der Wert des Cookies automatisch URL-kodiert. Beim Empfangen wird er automatisch URL-dekodiert. Wenn Sie das nicht benötigen, können Sie stattdessen setrawcookie() verwenden.


Beispiel 1

Cookie setzen und senden:

<?php
$value = "my cookie value";

// einen einfachen Cookie senden
setcookie("TestCookie",$value);
?>

<html>
<body>

...
...

<?php
$value = "my cookie value";

// einen Cookie senden, der in 24 Stunden abläuft
setcookie("TestCookie",$value, time()+3600*24);
?>

<html>
<body>

...
...


Beispiel 2

Verschiedene Möglichkeiten, einen Cookie-Wert abzurufen (nachdem der Cookie gesetzt wurde):

<html>
<body>

<?php
// einzelne Cookies ausgeben
echo $_COOKIE["TestCookie"];
echo "<br />";
echo $HTTP_COOKIE_VARS["TestCookie"];
echo "<br />";

// alle Cookies ausgeben
print_r($_COOKIE);
?>

</body>
</html>

Der obige Code gibt Folgendes aus:

mein Cookie-Wert
mein Cookie-Wert
Array ([TestCookie] => mein Cookie-Wert)


Beispiel 3

Löschen Sie ein Cookie, indem Sie sein Ablaufdatum auf ein vergangenes Datum/eine vergangene Uhrzeit setzen:

<?php
// Setze das Ablaufdatum auf eine Stunde zuvor
setcookie ("TestCookie", "", time() - 3600);
?>

<html>
<body>

...
...


Beispiel 4

Ein Array-Cookie erstellen:

<?php
setcookie("cookie[three]","cookiethree");
setcookie("cookie[two]","cookietwo");
setcookie("cookie[one]","cookieone");

// Cookies ausgeben (nach dem Neuladen der Seite)
if (isset($_COOKIE["cookie"]))
{
foreach ($_COOKIE["cookie"] as $name => $value)
{
echo "$name : $value <br />";
}
}
?>

<html>
<body>

...
...

Der obige Code gibt Folgendes aus:

three : cookiethree
two : cookietwo
one : cookieone


PHP HTTP 参考手册Vollständiges PHP-HTTP-Referenzhandbuch Weitere Erweiterungen