O PHP suporta transparentemente cookies HTTP. Cookies são um mecanismo para guardar dados no navegador remoto possibilitando o acompanhamento ou identificação de usuários que retornam. Você pode criar cookies usando a função setcookie() ou setrawcookie(). Os cookies são uma parte do cabeçalho HTTP, logo setcookie() precisa ser chamada antes que qualquer outro dado seja enviado ao navegador. Esta é a mesma limitação que a função header() tem. Você pode usar as funções de output buferizado para atrasar as impressões do script até que você tenha decidido ou não configurar qualquer cookie ou enviar mais headers.
Qualquer cookie enviado por você para o cliente automaticamente será uma variável do PHP assim como dados de postagens GET ou POST, dependendo dos valores de register_globals e variables_order. Se você deseja assimilar vários valores em um único cookie, simplesmente acrescente [] ao nome do cookie.
No PHP 4.1.0 e posteriores, o array superglobal $_COOKIE sempre estará preenchido com quaisquer cookies enviados do cliente. $HTTP_COOKIE_VARS, existente nas versões anteriores do PHP, também, quando a variável de configuração track_vars estiver ativa. (Esta diretiva é obrigatoriamente ligada a partir do PHP 4.0.3)
Para mais detalhes, incluindo comentários sobre problemas de browsers, veja as funções setcookie() e setrawcookie() .