$_COOKIE

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_COOKIEHTTP Cookies

Beschreibung

Ein assoziatives Array von Variablen, die dem aktuellen Skript mittels HTTP-Cookies übergeben werden.

Beispiele

Beispiel #1 $_COOKIE-Beispiel

<?php
echo 'Hello ' . htmlspecialchars($_COOKIE["name"]) . '!';
?>

Angenommen der Cookie "name" wurde bereits früher gesetzt:

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Hello Hannes!

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

add a note

User Contributed Notes 4 notes

up
79
kiril (at) atern (dot) us
9 years ago
To clarify the previously posted note:Dots (.) and spaces ( ) in cookie names are being replaced with underscores (_).
up
78
k dot andris at gmail dot com
10 years ago
beware, dots (.) in cookie names are replaces by underscores (_)
up
9
rc at opelgt dot org
2 years ago
The values of $_COOKIE in general are not identic with the values in $_SERVER["HTTP_COOKIE"]!In phpinfo() $_SERVER["HTTP_COOKIE"] shows the actual value stored in the cookie by the browser in 7bit.In $_COOKIE is this value after a 7bit to 8bit conversion.When all characters in $_SERVER["HTTP_COOKIE"] are in ASCII = 7bit, $_COOKIE is displayed in phpinfo(). When one single character is not in ASCII, phpinfo() shows no value!Although in $_COOKIE is still the 8bit conversion of $_SERVER["HTTP_COOKIE"]!The reason: the 8bit conversion alone is not enough to say what characters are meant.For that the used character-set is necessary.phpinfo() does not know the character-set and better says nothing.When using $_COOKIE in a php-generated web page the environment has the info of used character-set and so the meant characters can be displayed.Three illustrating examples===========================A HTML-form is used to get the content which shall be stored in a cookie named "test".Input string in field "test": door$_SERVER["HTTP_COOKIE"]: test=door$_COOKIE["test"]   displayed in phpinfo(): door   displayed in any html page: doorInput string in field "test" (ISO-8859-1 used in form): Tür$_SERVER["HTTP_COOKIE"]: test=T%FCr$_COOKIE["test"]   displayed in phpinfo(): ""   displayed in a ISO-8859-1-html-page: Tür   (displayed in a UTF-8-html-page: T�r)Input string in field "test" (UTF-8 used in form): Tür$_SERVER["HTTP_COOKIE"]: test=T%C3%BCr$_COOKIE["test"]   displayed in phpinfo(): ""   displayed in a UTF-8-html-page: Tür   (displayed in a ISO-8859-1-html-page: Tür)
up
1
user at NOSPAM dot example dot com
2 years ago
PHP replaces dots (.) with underscores (_). To find all original cookie names (and value) you can use $_SERVER['HTTP_COOKIE'].For example to retrieve a cookie set with <?php setcookie('testing.dots', 'value'); ?> you may use:<?php    $cookies = explode('; ', $_SERVER['HTTP_COOKIE']);    $allCookies = [];    foreach($cookies as $cookie) {        $keyAndValue = explode('=', $cookie);        $allCookies[$keyAndValue[0]] = $keyAndValue[1];    }    var_dump($allCookies);    /*        array(1) {            ["testing.dots"]=>                string(5) "value"        }    */    echo $allCookies['testing.dots'];?>
To Top