Cookies em PHP
24 Feb 2012Cookie são arquivos de texto que são armazenados na máquina do cliente. São muito úteis pois através deles é possível armazenar preferências e outros dados na máquina do cliente, para que possam serem recuperados na próxima vez que aquele usuário acessar o site.
Para trabalhar com cookies no PHP, utilizaremos a função setcookie().
A função setcookie tem a seguinte definição:
bool setcookie(string $name, string $value, int $expire = 0, string $path, string $domain, bool $secure, bool $httponly = false);
Onde:
$name -> Nome do cookie.
$value -> Valor do cookie.
$expire -> Validade do cookie. Deve ser informado um valor no formato unix. Ex.: time() + 3600 equivale a 1 hora.
$path -> Pasta do servidor onde o cookie é valido. Deve ser usado ‘/’ para que o cookie seja válido em todas as pastas.
$domain -> Domínio em que o cookie será válido.
$secure -> Se seu valor for 1, o cookie será enviado somente se a conexão for segura (https).
$httponly -> Se for TRUE, o cookie poderá ser acessado somente pelo protocolo http, evitando que ele seja acessado por outros meios, como JavaScript por exemplo. (obs.: nem todos os browsers suportam esta funcionalidade).
Todos os cookies, estão disponíveis através da superglobal $_COOKIE. Este é um array associativo, onde o nome de cada cookie é um indíce.
Vamos a um exemplo prático:
<?php
/* ** Define o cookie cookie_teste com o valor “valor_do_cookie_teste”.
* O cookie tem validade de 30 segundos e é valido em todos os diretorios do servidor.
* E valido no dominio exemplo.com, nao sera transmitido por uma conexao segura
* e nao deve ser acessado apenas por HTTP, permitindo seu acesso atraves
* de outros meios, como javascript por exemplo.
*/
setcookie(“cookie_teste”, “valor_do_cookie_teste”, time() + 30, ‘/’, ‘exemplo.com’, 0, FALSE);/* Se o cookie existir, exibe seu valor */
if (isset($_COOKIE[‘cookie_teste’])){
echo $_COOKIE[‘cookie_teste’];
}?>
Para excluir um cookie, basta chamar a função setcookie() passando como parâmetro apenas o nome do cookie.
Obs.:
- Apenas o primeiro parâmetro da função setcookie é obrigatório.
- Os cookies devem ser enviados antes de qualquer outra informação ou dado.
- Se a diretiva register_globals estiver marcada como on, o nome do cookie será uma variável dentro do script.
- A função setcookie() retorna TRUE caso seja executada com sucesso e FALSE caso ocorra algum erro. Mesmo retornando TRUE, não quer dizer que o cookie enviado foi aceito pelo usuário.
Até a próxima! 😉