Save visit cookie on page

1
Hello, I am using a php mysql code that counts the visits of each page, however whenever the page is updated it adds one more visit, I would like a help with my code so that it saves the cookie for a certain time before tell a new visit.

PS: Each page is saved in the DB and has different views

Page code:

<?php 
//Aqui pegamos o id da página
$idDaPagina = $explode[1];

//Busca na tabela o numero de vezes que a página ja foi visitada
$busca = "SELECT * FROM contador WHERE idPagina = '$idDaPagina'";
$exe = mysqli_query($conectar,$busca);

$resultado_vist = (mysqli_fetch_array($exe));

//Pega o numero de visistas que consta na tabela, adiciona mais um e atualiza
$visitantes = $resultado_vist['visitas'] + 1;
$altera = "UPDATE contador SET visitas = '$visitantes' WHERE idPagina = '$idDaPagina'";
$exe1 = mysqli_query($conectar,$altera);

//Faz uma nova busca e retorna o numero de visitas depois da atualização
$exe = mysqli_query($conectar,$busca);
$total = (mysqli_fetch_array($exe));
$visitas = $total['visitas'];

?>

No espaço do conteudo dou um <?php echo $visitas; ?>

Thanks in advance.

    
asked by anonymous 02.06.2017 / 23:11

1 answer

2

You can work with cookies, set the time it takes, and when you expire, you add +1 to the counter. It would be the following code:

// Define em horas quanto tempo vai durar cada cookie
$hours = 1;

// Comando para setar o cookie
setcookie("contador", true, time() + (3600 * $hours));

// Verificação do cookie
if (isset($_COOKIE["contador"]) && $_COOKIE['contador'] == true ) {
    // Faz nada...
} else {
    // Logica para adicionar mais 1 a visitas de páginas
}
    
03.06.2017 / 03:12