Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leandro Vieira Pinho

Controlando o contador de clicks pelos cookies

Recommended Posts

Olá Pessoal,Tenho uma página de artigos que realiza a contagem de clicks para cada notícia, mas, se entro na página 1000 vezes é contado 1000 cliques.Então fiz um script tipo assim:Criei um cookie chamado: NoticiaLida e o valor deste é o ID da notícia.Mas o problema é que, se entro na página com o ID 10, então vou ter o cookie NoticiaLida com valor 10, mas, se entro novamente com outra notícia de valor 20 irá sobrepor o anterior.Teria como usar um sistema de array ou algo?PS. por um lado evita o problema de ficar contado os reloads, heheh

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, mas, como vou verificar o cookie depois? Como vou saber o nome dos cookies criados?Por exemplo assim, NoticiaLida=id eu posso verificar assim:if(isset($_COOKIE['NoticiaLida']))....e o nome do cookie sendo o Id, como farei a verificação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ué, cookie tambem é um arrayse você fizer:foreach($_COOKIE as $c=>$v)vai retornar todos os valores ^^[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente red,usando o foreach assim:foreach($_COOKIE as $c=>$v)ele me relata todos os cookies relativos ao domínio.então agora como eu verificaria com o isset se o cookie X foi setado tipo assim:if(isset($_COOKIE['25']));onde 25 seria o ID da notícia, mas, como são diversos como verificarei?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@adailtonsim, session é um jeito ^^, (nao precisa pedir licensa nao, pode postar ai cara ^^)@Leandro Vieira Pinhovocê ja tentou assim:foreach($_COOKIE as $c=>$v){if(isset($_COOKIE[$c])) ?ou for($i=0;$i<count($_COOKIE);$i++){if(isset($_COOKIE[$i]))?[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou lhe explicar o que está acontecendo:Se eu utilizar este código por exemplo:

foreach($_COOKIE as $artigo_chave=>$value) {echo "Cookie: $value;<br />";}
vai me listar isto:

Cookie: Lido;Cookie: 5bd4e3487c9516dcab940c8701244f96;Cookie: 75;

Ou seja todos os cookies existentes do domínio.No primeiro listado: Cookie: Lido é o mesmo que:leandro_vieira: lido, ou seja, leandro_vieira é o nome do cookie e lido é o valor.Então a notícia entitulada como Leandro Vieira já foi lida.Cada leitura seta um cookie com nome diferente e valor igual (Lido).Então como vou sabe se o cookie leandro_vieira ou outro foi setado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois é cara, para isso você precisaria seguir um padrao... ex:NoticiaID = lidoai dentro do for:for($i=0;$i<count($_COOKIE);$i++){if(isset($_COOKIE["Noticia" . $i])){// sim existe esse cookie}}[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara acabei de encontrar um pequeno bug no script que fiz.É o seguinte.Primeiro, esses cookies serve somente para evitar de ficar contando toda vez que ficam apertando o F5 por sacanagem.Mas o bug é o seguinte,Por exemplo tenho um cookie com este nome:Artigo_fantásticoAí a url vai estar assim:/artigos.php?artigo=fant%E1sticoPara verificar se o cookie foi setado estou fazendo assim:if(!isset($_COOKIE["Artigo_".$artigo_chave])){onde $artigo_chave = $_GET['artigo'];Então o problema é que devido ao acento "á" o nome do cookie fica diferente e a verificação falha.seria possível resolver isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

para te falar a verdade nao entendi muito bem sua duvida nao :P

 

o artigo é um cookie ou uma querystring? o.o

 

tpo, é facil resolver isso, encoda a string quando for mandar, e desencoda quando receber...

 

você poderia usar:

 

http://br.php.net/urlencode

http://br.php.net/base64_encode

 

ve se era isso que queria

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

tpoele serve para encodar, encriptografar, uma string, assim ele vai mostrar os acentos como codigos, e você nao tera mais esse problemaentendeu?[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.