Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
tenho um site que tem suas postagens..
gostaria um contador de visitas para as postagens
eu fiz um script que utiliza cookie (assim se a pessoa ficar atualizando a pagina não aumenta o contador de visitas da postagem)
o problema é que se entrar em uma postagem ele executa o script corretamente
se eu entrar em uma segunda postagem ele já não conta, pois o cookie já foi executado
como posso fazer para o código ser verificado por URL (executar novamente se a URL for diferente)
segue o código que uso
<?php
$biscoito=$_COOKIE[acessada];
if(empty($biscoito)){
setcookie( "acessada", "sim", strtotime( '+1 days' ), '/' ); // 24 horas
//pega o id da pagina
$idDaPagina = $id;
//Busca na tabela o numero de vezes que a página ja foi visitada
$busca = "Select * FROM portfolio WHERE id = {$idDaPagina}";
$exe = mysql_query($busca);
$resultado = (mysql_fetch_array($exe));
//Pega o numero de visistas que consta na tabela, adiciona mais um e atualiza
$visitantes = $resultado['views'] + 1;
$altera = "UPDATE portfolio SET views = '{$visitantes}' WHERE id = '{$idDaPagina}'";
$exe1 = mysql_query($altera);
//Faz uma nova busca e retorna o numero de visitas depois da atualização
$exe = mysql_query($busca);
$total = (mysql_fetch_array($exe));
$visitas = $total['views'];
}
?>
Agradeço desde já
Algo assim pode te ajudar a resolver:
// seta o cookie com um id único pro usuário/visitante
} else {
// seta o cookie pra identificar as páginas que o usuário ta acessando
$id_page = "noticia-de-hoje"; // id/nome da página
setcookie( $id_page, $id_user, strtotime( '+1 days' ), '/' ); // 24 horas
O "problema" é que se o usuário visitar 20 páginas do seu site, serão criados 20 cookies no navegador dele. Pra evitar isso você teria que fazer uma tabela no seu banco de dados pra armazenar as páginas visitadas por esse usuário, armazenar o tempo e armazenar o ID único gerado pra esse usuário, depois é só ir fazendo as consultas conforme ele for visitando outras páginas, aí você só precisaria usar como parâmetro de pesquisa um ID único que foi gerado pra esse usuário através do COOKIE (um ID único usando o uniqid(), por exemplo) e a página visitada que você também armazena no banco, e fazer uma verificação de tempo pra verificar o tempo correspondente ao ID do usuário armazenado nessa tabela com o tempo atual que o usuário ta acessando novamente a página.