PHP soporta transparentemente cookies HTTP. Las Cookies son un mecanismo que sirve para almacenar datos en el navegador del usuario remoto, para así poder identificar al usuario cuando vuelva. Se pueden poner cookies usando la función setcookie(). Las Cookies son parte de la cabecera HTTP, por tanto la función setcookie() debe ser llamada antes de que se produzca cualquier salida al navegador. Esta limitación es la misma a la de la función header(). Se pueden usar las funciones de almacenamiento intermedio del resultado para retrasar el resultado del script hasta que hayas decidido mandar o no una cookie o cabecera.
Cualquier cookie enviada a ti desde el cliente, automáticamente se convertirá en una variable PHP igual que ocurre con los métodos de datos GET y POST, dependiendo de las variables de configuración register_globals y variables_order. Si deseas asignar multiples valores a una cookie simple, añade simplemente [] a el nombre de la cookie.
En PHP 4.1.0 y posteriores, la matriz auto-global $_COOKIE será siempre actualizada con cualquier cookie mandada por el cliente. $HTTP_COOKIE_VARS es tambien actualizada en versiones anteriores de PHP cuando la variable de configuración track_vars esté activada. (Siempre activada a partir de PHP 4.0.3.)
Para más detalles, incluyendo notas o bugs de navegadores, ver la función setcookie() y setrawcookie().