Contador de acessos em PHP

Ter um contador de acessos em seu site é uma maneira simples e eficaz de acompanhar quantas vezes uma página foi visualizada pelos visitantes. Com o PHP, é possível criar um contador de acessos que armazena e exibe o número de visitas em tempo real. Neste post, vou te mostrar como implementar isso de forma rápida e fácil.

Por que ter um contador de acessos?

Um contador de acessos pode fornecer informações úteis sobre o tráfego de uma página específica do seu site. Ele ajuda a entender o comportamento dos usuários, monitorar a popularidade de conteúdos e até melhorar estratégias de marketing e SEO.

Como funciona o contador de acessos?

A lógica básica por trás de um contador de acessos em PHP envolve:

  1. Armazenar o número de visitas: Esse número pode ser salvo em um arquivo de texto ou em um banco de dados.

  2. Incrementar o contador: Cada vez que a página é carregada, o número de visitas é incrementado.

  3. Exibir o contador: O valor atualizado é exibido ao visitante.

Criando o contador de acessos com arquivo de texto

Para esse exemplo simples, vamos armazenar o número de acessos em um arquivo de texto, que será lido e atualizado a cada visita. Vamos implementar isso passo a passo.

1. Criando o arquivo de texto

Primeiro, crie um arquivo de texto chamado contador.txt no diretório do seu projeto. Inicialmente, coloque o valor 0 dentro dele, que representará o número de acessos.

2. Criando o código PHP

Agora, crie um arquivo PHP que será responsável por ler o valor atual do arquivo, incrementá-lo e exibir o número atualizado de acessos.

<?php
// Caminho para o arquivo de contagem de acessos
$arquivo = "contador.txt";

// Verifica se o arquivo existe
if (file_exists($arquivo)) {
    // Abre o arquivo para leitura e escrita
    $handle = fopen($arquivo, "r+");
    
    // Lê o valor atual do contador
    $visitas = (int)fread($handle, filesize($arquivo));
    
    // Incrementa o contador
    $visitas++;
    
    // Move o ponteiro de volta para o início do arquivo
    rewind($handle);
    
    // Escreve o novo valor no arquivo
    fwrite($handle, $visitas);
    
    // Fecha o arquivo
    fclose($handle);
} else {
    // Se o arquivo não existir, cria o arquivo e define o contador como 1
    $visitas = 1;
    $handle = fopen($arquivo, "w");
    fwrite($handle, $visitas);
    fclose($handle);
}

// Exibe o número de acessos
echo "<h2>Esta página já foi acessada $visitas vezes.</h2>";
?>

Explicação do código:

  1. $arquivo = "contador.txt";: Define o caminho para o arquivo onde o número de acessos será armazenado.

  2. file_exists(): Verifica se o arquivo de contagem de acessos já existe.

  3. fopen($arquivo, "r+");: Abre o arquivo em modo de leitura e escrita.

  4. fread(): Lê o conteúdo do arquivo, que será o número de acessos atual.

  5. Incremento: O valor de acessos é convertido para inteiro, incrementado em 1, e escrito novamente no arquivo.

  6. rewind(): Move o ponteiro para o início do arquivo para que o valor atualizado possa ser gravado.

  7. fwrite(): Escreve o novo valor no arquivo.

  8. fclose(): Fecha o arquivo para liberar o recurso.

  9. Exibição: O número de acessos é exibido ao usuário no formato de uma mensagem.

Exemplo de saída:

Se um visitante acessa a página, ele verá algo assim:

Esta página já foi acessada 5 vezes.

A cada novo carregamento da página, o valor será atualizado e exibido novamente.

Melhorando o contador com sessões

Para evitar que o contador aumente a cada atualização da página pelo mesmo visitante, você pode usar sessões em PHP. Isso garante que o número de acessos seja incrementado apenas uma vez por sessão de usuário.

Veja uma versão aprimorada do contador usando sessões:

<?php
// Inicia a sessão
session_start();

// Verifica se a sessão de contagem já existe
if (!isset($_SESSION['visitou'])) {
    $_SESSION['visitou'] = true;

    // Caminho para o arquivo de contagem de acessos
    $arquivo = "contador.txt";

    if (file_exists($arquivo)) {
        // Abre o arquivo para leitura e escrita
        $handle = fopen($arquivo, "r+");
        
        // Lê o valor atual do contador
        $visitas = (int)fread($handle, filesize($arquivo));
        
        // Incrementa o contador
        $visitas++;
        
        // Move o ponteiro de volta para o início do arquivo
        rewind($handle);
        
        // Escreve o novo valor no arquivo
        fwrite($handle, $visitas);
        
        // Fecha o arquivo
        fclose($handle);
    } else {
        // Se o arquivo não existir, cria o arquivo e define o contador como 1
        $visitas = 1;
        $handle = fopen($arquivo, "w");
        fwrite($handle, $visitas);
        fclose($handle);
    }
} else {
    // Se a sessão já existir, apenas lê o valor atual sem incrementar
    $arquivo = "contador.txt";
    $handle = fopen($arquivo, "r");
    $visitas = (int)fread($handle, filesize($arquivo));
    fclose($handle);
}

// Exibe o número de acessos
echo "<h2>Esta página já foi acessada $visitas vezes.</h2>";
?>

Como funciona?

  • Sessões: Com session_start(), verificamos se o visitante já possui uma sessão ativa. Se não houver uma sessão, o contador é incrementado. Caso contrário, ele apenas lê o número atual sem incrementá-lo.

  • Evita acessos repetidos: Isso previne que a contagem aumente toda vez que o mesmo usuário atualiza a página, mantendo o contador mais preciso.

Criar um contador de acessos em PHP é uma maneira eficiente de monitorar o tráfego de suas páginas. Utilizando arquivos de texto ou um banco de dados, e adicionando sessões, você pode facilmente implementar essa funcionalidade em qualquer site.

Esse exemplo é uma solução simples e prática, mas pode ser expandida para incluir funcionalidades mais complexas, como contagem de acessos únicos por IP, armazenamento de dados em um banco de dados MySQL, e muito mais.

QUER APRENDER PHP ORIENTADO A OBJETOS OU APERFEIÇOAR O QUE JÁ SABE?

Então conheça o curso online que já ajudou milhares de pessoas a aprender a programar e desenvolver seus próprios projetos do ZERO e usando orientação a objetos de uma forma fácil de entender.

CLIQUE NA IMAGEM ABAIXO E SAIBA MAIS:

CLIQUE AQUI E SAIBA MAIS

Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Tags:

Sobre o Autor

Benedito Silva Júnior
Benedito Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *