A função setcookie() envia um cookie HTTP para o cliente.
Um cookie é uma variável enviada ao navegador pelo servidor. Os cookies são normalmente pequenos arquivos de texto que um servidor incorpora no computador do usuário. Este cookie é enviado cada vez que o mesmo computador solicita uma página através do navegador.
O nome do cookie é atribuído automaticamente a uma variável com o mesmo nome. Por exemplo, se o cookie enviado tiver o nome "usuário", será criada automaticamente uma variável chamada $usuário contendo o valor do cookie.
O cookie deve ser atribuído antes de qualquer outra saída ser enviada ao cliente.
Se for bem-sucedido, a função retornará TRUE. Retorna FALSE em caso de falha.
setcookie(nome,valor,expirar,caminho,domínio,seguro)
parâmetro | descrever |
---|---|
nome | Obrigatório. Especifica o nome do cookie. |
valor | Obrigatório. Especifica o valor do cookie. |
expirar | Opcional. Especifica o tempo de expiração do cookie. time()+3600*24*30 definirá o tempo de expiração do cookie para 30 dias. Se este parâmetro não for definido, o cookie expirará automaticamente após o término da sessão (ou seja, quando o navegador for fechado). |
caminho | Opcional. Especifica o caminho do servidor para cookies. Se o caminho estiver definido como "/", o cookie será válido em todo o nome de domínio. Se o caminho estiver definido como "/test/", o cookie será válido no diretório de teste e em todos os seus subdiretórios. O valor do caminho padrão é o diretório atual onde o cookie está localizado. |
domínio | Opcional. Especifica o nome de domínio do cookie. Para que o cookie seja válido em todos os subdomínios de example.com, você precisa definir o nome de domínio do cookie como ".example.com". Quando você define o nome de domínio do cookie como www.example.com, o cookie só é válido no subdomínio www. |
seguro | Opcional. Especifica se os cookies precisam ser transmitidos por uma conexão HTTPS segura. Defina como TRUE se os cookies precisarem ser transmitidos por uma conexão HTTPS segura. O padrão é FALSO. |
Dica: O valor do cookie denominado "usuário" pode ser acessado via $HTTP_COOKIE_VARS["user"] ou $_COOKIE["user"].
Nota: Ao enviar um cookie, o valor do cookie é automaticamente codificado em URL. A decodificação de URL é realizada automaticamente no momento do recebimento. Se não precisar disso, você pode usar setrawcookie().
Definir e enviar cookies:
<?php$value = "my cookie value";// envia um simples cookiesetcookie("TestCookie",$value);?><html><body>......
<?php$value = "my cookie value";// envia um cookie que expira em 24 horassetcookie("TestCookie",$value, time()+3600*24);?><html><body>... ...
Diferentes maneiras de recuperar o valor do cookie (após a configuração do cookie):
<html><body><?php// Imprimir cookies individuaisecho $_COOKIE["TestCookie"];echo "<br />";echo $HTTP_COOKIE_VARS["TestCookie"];echo "<br />";// Imprimir todos os cookiesprint_r($_COOKIE);?></body></html>
O código acima irá gerar:
meu valor de cookiemeu valor de cookieArray ([TestCookie] => meu valor de cookie)
Exclua um cookie definindo a data de expiração como uma data/hora no passado:
<?php// Defina a data de expiração para uma hora agosetcookie ("TestCookie", "", time() - 3600);?><html><body>......
Crie uma série de cookies:
<?phpsetcookie("cookie[três]","cookietrês");setcookie("cookie[dois]","cookietwo");setcookie("cookie[um]","cookieone");// imprime cookies (após recarregando página)if (isset($_COOKIE["cookie"])) { foreach ($_COOKIE["cookie"] as $name => $value) { echo "$name : $value <br />" }; }?><html><corpo>......
O código acima irá gerar:
três: cookietrêsdois: cookietwoone: cookieone