$HTTP_COOKIE_VARS [obsoleta]

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

$_COOKIE -- $HTTP_COOKIE_VARS [obsoleta]Cookies HTTP


Una variable tipo array asociativo de variables pasadas al script actual a través de Cookies HTTP.

$HTTP_COOKIE_VARS contiene la misma información inicial, pero no es una superglobal. (Note que $HTTP_COOKIE_VARS y $_COOKIE son variables diferentes y que PHP las trata como tal)


Ejemplo #1 Ejemplo de $_COOKIE

echo '¡Hola ' . htmlspecialchars($_COOKIE["nombre"]) . '!';

Asumiendo que la cookie "nombre" ha sido definida anteriormente

El resultado del ejemplo sería algo similar a:

¡Hola Juan!



Esta es una 'superglobal' o una variable automatic global. Significa simplemente que es una variable que está disponible en cualquier parte del script. No hace falta hacer global $variable; para acceder a la misma desde funciones o métodos.

add a note

User Contributed Notes 5 notes

kiril (at) atern (dot) us
6 years ago
To clarify the previously posted note:

Dots (.) and spaces ( ) in cookie names are being replaced with underscores (_).
k dot andris at gmail dot com
7 years ago
beware, dots (.) in cookie names are replaces by underscores (_)
rc at opelgt dot org
1 month 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
   displayed in phpinfo(): door
   displayed in any html page: door

Input string in field "test" (ISO-8859-1 used in form): Tür
   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
   displayed in phpinfo(): ""
   displayed in a UTF-8-html-page: Tür
   (displayed in a ISO-8859-1-html-page: Tür)
user at NOSPAM dot example dot com
1 month 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:
= explode('; ', $_SERVER['HTTP_COOKIE']);
$allCookies = [];

$cookies as $cookie) {
$keyAndValue = explode('=', $cookie);
$allCookies[$keyAndValue[0]] = $keyAndValue[1];

        array(1) {
                string(5) "value"

echo $allCookies['testing.dots'];
axodjakov at gmail dot com
1 year ago
$_COOKIE returns an array if there are more than one cookie saved under the given key.
To Top