+2

Trabalhando com Cookies no PHP

criado por Wellington Costa de Almeida em 29/08/2002 4:27pm
Esse artigo comenta um pouco sobre as funções de cookies ensinando como desenvolver um script que mostra quantas vezes um certo usuário já esteve no seu site. São códigos perfeitos para o estudo de iniciantes, desenvolvido da maneira mais simples possível.

Vamos direto ao assunto, como todos os iniciantes em PHP devem saber o cookie funciona como um banco de dados no computador do usuário, e o script que desenvolveremos agora vai fazer exatamente isso. Quando o usuário visitar a pagina, aquele cookie será ativado e somado dando o resultado esperado.

Primeiro criaremos um arquivo, coloque o nome de [cookie.php], e coloque os seguintes códigos nele:

<?php
error_reporting(134);
/*
 * Erro no script
 * Nome do seu Script
 * Por Seu nome ou nick
 * e-mail = seumail@qualquercoisa.com.br
 */
?>

Até agora desenvolvemos um report se ocorrer um erro e adicionamos alguns de seus dados pessoais, agora aprofundando-se mais no script.

<?php
if ($Test != '') {
    $Test++;
    setcookie("Test",$Test, time()+3600000); // selecionar o nome do cokie
} else {
    setcookie("Test",1, time()+3600000);  //Criar o valor 1
    $Test = 1;
}
$numvisits = $Test;
?>

Está aí, esse é o código completo do arquivo (cookie.php), mas agora vamos dar uma estudada no script pra vocês poderem entender melhor.

Logo após as informações pessoais e o reporting, podemos ver que temos o código:

<?php
if ($Test !='') { 
    $Test++;
    setcookie("Test",$Test, time()+3600000);   
}
?>

Essa parte será a resposável pela criação do cookie no computador cliente (do usuário).
o comando else que vem logo após o o codigo acima, é usado para acionar o outro código caso o cookie já exista no cliente.

Seguindo abaixo temos a fase terminal do script que respoderá caso o cookie já exista, retornando o número de vezes que o usuário já esteve no site.

<?php
// ...
} else {
    setcookie("Test",1, time()+3600000);
    $Test = 1;
} 
$numvisits = $Test;
?>

Esse código após verificar o cookie irá respoder quantas vezes o cliente já esteve no site e ambas as partes completarão a função de gravar novamente os novos dados no cookie.

Agora que temos a parte principal completa, iremos fazer uma página que irá exibir os números somados corretos. Crie um arquivo com o nome de (index.php) e coloque o seguinte código:

<?php
include("cookie.php");
echo "Você já esteve aqui $numvisits vezes";
?>

Obs: caso for fazer a execução desse script no seu site, coloque o código acima no local onde gostaria que seja exibido. Os dois arquivos devem estar no mesmo diretório pra funcionar corretamente.

É isso ai galera espero que esse artigo ajude um pouco. Abraços a todos e qualquer coisa enviem um comentário abaixo e ficarei feliz em respoder.

Comentários:

Mostrando 1 - 10 de 16 comentários
Renan Silva disse:
Para destruir um COOKIE é só denominar seu nome sem nenhum valor.
Suponhamos que você tenha feito um cookie com o nome de viva:

setcookie("viva");

Assim ele já é destruído.
Se colocar um valor para ele, ele altera o valor, se não coloca,ele destrói o cookie. Legal, né?
29/03/2007 1:00pm (~17 anos atrás)

Renan Silva disse:
Vocês se esqueceram das 6 horas extras que temos no fim de cada ano. São mais 21600 segundos.
O tempo do cookie deveria estar assim então:
3600 x 24 x 365 + 3600 x 6= 31557600…
HEHEHE
Tô brincando, mas é sério…
29/03/2007 12:56pm (~17 anos atrás)

<?php
// define a data de expiração do cookie para uma hora atrás
setcookie ("Cookie1", "", time() - 3600);
setcookie ("Cookie2", "", time() - 3600, "/pasta_de_escopo_do_cookie/", ".dominio.com", 1);
?>

PS: Os Cookies devem ser excluídos com os mesmos parâmetros que foram criados.
13/08/2005 10:05pm (~19 anos atrás)

Felipe Navas disse:
Até onde eu sei, os cookies suportam apenas uma informação.
O ideal era que vc criasse um cookie pra cada infomação
ou seja...
Setar um cookie pra nome e outro pra e-mail.
Espero ter ajudado
Abraço
23/11/2004 10:17am (~19 anos atrás)

Tem como gravar mais de uma informação em um cookie?
fiz um fórum, e quero que ja apareça o nome e o e-mail do individuo, tem como colocar essas duas informações dentro de um cookie só?
13/10/2004 2:47pm (~19 anos atrás)

como verifico se um cookie foi gravado???
12/09/2003 1:40pm (~20 anos atrás)

Gostari de saber como eu gravo um texto em cookies fazendo com ele fique disponivel até o usuario feche o bwouser?
12/09/2003 11:17am (~20 anos atrás)

Como faço para excluir cookies? A finalidade seria à que o usuário não podesse ir a uma pagina sem passar pelo index, uma questão de segurança.
04/09/2003 1:37pm (~21 anos atrás)

para vocês recuperarem o cookie é o seguinte
vamos dizer que a variável tem o nome de $user = '';
setcookie('usuario','$user'); // isso criar o cookie, aonde o valor da variável $user vai ficar armazenado no cookie usuario.

$_COOKIE['usuario']; // isso recupera o cookie usuario.

echo $user; // isso vai imprimir o usuario que foi posto dentro da variavel $user e a variavel foi posta dentro do cookie 'usuario'
.

o problema do espaço se for o caso ve se funcionar colocar

trim($_COOKIE['usuario']);

o trim tira o espaço das coisas

05/06/2003 11:17am (~21 anos atrás)

Bom vc pode fazer da seguinte forma!

<?php
$id = md5( rand() );
setcookie( "nome do cookie", $id, 0, "/", "", 0 );
?>

onde "$id" é um numero gerado pela função "rand" e depois passado pelo "md5" que gera uma resenha.
Bom, se estiver errado alguém me avise, pois tenho trabalhado desta maneira.
lembrando que o cookie tem que ser gerado no início da página, antes de qualquer código HTML.
Qualquer dúvida é só falar....
28/10/2002 10:00am (~21 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)