PHP unterstützt transparent HTTP-Cookies. Ein Cookie ist ein Mechanismus, der Daten in einem Remote-Browser speichert, um Benutzer zu verfolgen und zu identifizieren. Cookies können mit den Funktionen setcookie() oder setrawcookie() gesetzt werden. Cookies sind Teil der HTTP-Header, daher muss die Funktion setcookie() aufgerufen werden, bevor andere Informationen an den Browser ausgegeben werden, ähnlich den Einschränkungen bei der Funktion header(). Mithilfe von Ausgabepufferungsfunktionen kann die Ausgabe eines Skripts verzögert werden, bis alle Cookies oder andere HTTP-Header wie erforderlich gesetzt wurden.
Beispiel #1 setcookie()-Verwendungsbeispiel
<?php $value = 'something from somewhere'; //设置Cookie setcookie("TestCookie", $value); setcookie("TestCookie", $value, time()+3600); /* expire in 1 hour */ setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1); //删除Cookie setcookie ("TestCookie", "", time() - 3600); setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", "example.com", 1); ?>
Wenn „C“ in „variables_order“ enthalten ist, werden alle vom Client gesendeten Cookies automatisch in das automatische globale Array „$_COOKIE“ aufgenommen. Wenn Sie mehrere Werte für eine Cookie-Variable festlegen möchten, müssen Sie nach dem Cookie-Namen das Symbol [] hinzufügen.
<?php // set the cookies setcookie("cookie[three]", "cookiethree"); setcookie("cookie[two]", "cookietwo"); setcookie("cookie[one]", "cookieone"); // after the page reloads, print them out if (isset($_COOKIE['cookie'])) { foreach ($_COOKIE['cookie'] as $name => $value) { $name = htmlspecialchars($name); $value = htmlspecialchars($value); echo "$name : $value <br />\n"; } } ?>
Gemäß der Einstellung von register_globals können gewöhnliche PHP-Variablen aus Cookies erstellt werden. Es wird jedoch nicht empfohlen, sich auf diese Funktion zu verlassen, da diese Option aus Sicherheitsgründen normalerweise deaktiviert ist. Wenn in früheren Versionen von PHP die Konfigurationsoption track_vars aktiviert war (diese Option war seit PHP 4.0.3 immer aktiviert), wurde auch $HTTP_COOKIE_VARS festgelegt.
<?php // Print an individual cookie echo $_COOKIE["TestCookie"]; echo $HTTP_COOKIE_VARS["TestCookie"]; // Another way to debug/test is to view all cookies print_r($_COOKIE); ?>