Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá amigos,
Tenho um site de um cliente que é um jornal. Lá ele possui diversos anunciantes. Ele quer fazer a contagem de cliques dos anúncios, mas gostaria que fosse limitado para que a mesma pessoa não pudesse ficar clicando sem parar.
Fiz assim... armazenei o IP do usuário em um cookie e o ID do anuncio em outro cookie.. quando ele efetua o clique eu comparo... se o ip OU o id forem diferentes, ele efetua a contagem do clique... se ambas forem iguais, ele não soma o clique na contagem.
O único problema é que se o usuario ficar clicando alternadamente (clica em um anuncio, depois em outro, depois no primeiro novamente, e no segundo novamente) ele conta os cliques, pois o ID do anuncio mudou. Como faço para ele manter de TODOS os ids de anuncio que ele clicou? Eu vou manter durante 24 horas, mas isso eu sei como fazer. Só não sei como armazenar diversos IDs no cookie. Alguém sabe?
Xan, ajudou sim, pois eu não sabia de IP vindo de proxy, e isso fez melhorar minha segurança.
Mas meu problema continua... não sei a lógica que devo fazer para que, quando o usuário clique em uma palavra, armazene um cookie de 24 horas que não seja mais contabilizado cliques naquela palavra com aquele IP.
utiliza o mesmo sistema de cookies
Utilizar mesmo sistema de cookies? Mas no exemplo que você passou, não existem cookies. Mas se você está se referindo a utilizar a mesma lógica do exemplo para eu criar minhas cookies, eu não sei como fazer isso com cookies. hehe
Mas então... eu imagino que tenha que ser algo com arrays mesmo. Mas será que é a melhor forma?
E se for, como eu faria no caso de cookies?
assim, você irá inserir um cookie no user , com o valor de X horas e quando logar você lê o cookie e faz as devidas verificações, procure no fórum que existe um tutorial sobre como usar cookies, é só implementar no code...
Mas, xan... o problema não é sobre criar cookies... isso eu sei fazer... eu não estou conseguindo criar cookies dinâmicas. ISSO eu não sei fazer...
Minha verificação, hoje em dia, está assim:
If Request.Cookies("SITE")("IP") <> varIP or Request.Cookies("SITE")("ANUNCIO") <> idAnuncio Then
Ou seja... se a cookie de IP for diferente do IP do usuario OU a cookie do anuncio for diferente do ID do anuncio clicado, ele prossegue.
O problema é que se ele ficar alternando entre anúncios, o cookie do ID do site vai ser sempre diferente, então ele vai prosseguir.
Eu gostaria que fosse criado um cookie para cada anuncio e que ele comparasse todos antes de prosseguir. ISSO que não sei fazer.
Eu não saberia como criar cookies dinamicamente, embutí-las em um array e depois não saberia tbm como recuperá-las para comparação. Quem pode me ajudar?
você pode usar um contador (incrementar) uma variavel, para senmpre somar 1 a mais, ou uma dica que acho que ficará melhor é sempre randomizar, ou seja, criar numeros aleatórios para cada acesso e depois faz um if simples para verificar seu critério
Esse do número aleatório seria algo como pegar o IP do usuário, tratar para ficar apenas numeros, concatenar com o ID da palavra e embutir numa cookie com algum valor tipo "YES". Daí quando o usuário clicar, basta ele comparar com esse cookie com esse nome e se o conteudo for vazio, ele soma no contador, senão não. É isso? Vou testar aqui...
essa é um aboa lógica...
testa ae, e qualquer coisa posta aqui...
abraços
Po, isso mesmo! hehe funcionou!! O cookie armazena IP e ID como seu proprio nome e coloca um valor qualquer dentro dele. Se o usuário clicar num anúncio que ele já clicou dentro de 24 horas, não contará o clique. Se não, contará normalmente. Muito bom!
Obrigado pela lógica, xan! Não tinha pensando nessa! Mais fácil do que criar arrays e etc!
parabéns...
olha este exemplo, pode te ajudar