Reporte de visitas y visitantes en PHP - Contador de visitas web

PHP – Contador de visitas avanzado con gráficas y reporte

Hace un tiempo te mostré un contador de visitas simple en PHP. Ahora te traigo una versión avanzada que brinda además gráficas y reportes.

Reporte de visitas y visitantes en PHP - Contador de visitas web
Reporte de visitas y visitantes en PHP – Contador de visitas web

Como bien sabes, anteriormente hicimos un script para contar los visitantes y visitas, pero fue algo muy simple y no contaba con total precisión.

En el sistema que te mostraré ahora se van a contar las visitas y visitantes, además de mostrar una gráfica con la cantidad de visitas y visitantes que se hayan tenido en un período.

Del mismo modo se van a mostrar las páginas más vistas según determinada fecha, y del mismo modo vamos a ver cómo han visitado determinada página en un rango de fechas.

Todo el sistema que te presentaré es gratuito y open source, así que a través del post colocaré el código fuente.

Reporte de visitas

Reporte de visitas y visitantes en PHP - Contador de visitas web
Reporte de visitas y visitantes en PHP – Contador de visitas web

Comencemos viendo el dashboard en donde podemos ver un resumen de las visitas de los usuarios. Tenemos una gráfica que muestra, a lo largo de un período de tiempo, las visitas y visitantes que hemos tenido.

Nosotros podemos cambiar el período de tiempo ya que por defecto el período es el mes actual de inicio a fin.

Además de ello, tenemos una segunda tarjeta en donde se muestran las páginas más visitadas en una fecha (por defecto hoy) junto con el total de visitas y visitantes. Igualmente podemos cambiar esta fecha para ver el reporte de otro día.

Si queremos podemos ver las estadísticas de una página en específico, filtrando además por fecha:

Visitas y visitantes de una página - Contador de visitas con PHP y JavaScript
Visitas y visitantes de una página – Contador de visitas con PHP y JavaScript

Registrar visita

Para registrar una visita y contarla con PHP vamos a usar un poco de JavaScript. Los bots que indexan el contenido o generan la vista previa no ejecutan JavaScript, pero los usuarios legítimos sí. Así que vamos a hacer que el conteo se haga con JavaScript.

Lo único que tienes que hacer es incluir el siguiente código en todos los lugares donde quieras llevar el registro. Solo recuerda configurar correctamente la URL en donde se encuentra registrar_visita.php.

El código hace una petición al servidor con PHP para registrar la visita, usando la función nativa fetch.

En mi caso tengo el script de JS y el contador de PHP en el mismo directorio, por lo que puedo referirme al directorio hermano con ./.

Lo que se está guardando en nuestra base de datos es la IP del usuario, la fecha de la visita, el título de la página visitada y la URL de la misma. Pero no todos los datos vienen de un solo lugar.

Del lado del cliente tomamos el título y la URL, pero en el servidor guardamos la fecha junto con la IP del usuario en el siguiente script:

Y la función registrarVisita es la siguiente:

Ejemplo para contar visita

Por si no quedó claro, te muestro un ejemplo. Yo tengo el código de JavaScript en un archivo llamado contador.js. Luego, en mi página en donde quiero llevar el registro, lo incluyo:

Y de este modo se va a registrar la visita cada que un usuario la visite, suponiendo que usa JavaScript y un navegador web decente.

Reportes de visitas y visitantes con PHP

Ya vimos cómo registrar la visita, ahora veamos lo necesario para obtener los datos. Lo único que necesitamos es hacer consultas a la tabla que registra las visitas. A continuación veremos las funciones que permiten:

  • Obtener el conteo de visitas y visitantes
  • Saber cuáles son las páginas más visitadas en un período de tiempo
  • Conocer cuántas visitas y visitantes hay en un período de tiempo, día con día
  • Obtener el registro de visitantes y visitas de una página específica dentro de un período de fechas

Repito que todos son consultas usando GROUP BY, COUNT, ORDER BY y consultas para filtrar las fechas lexicográficamente.

Como puedes ver en este código de PHP, tenemos varias consultas (ya sea INSERT o SELECT) a MySQL / MariaDB. Además, existen algunas funciones ayudantes que leen variables del archivo de entorno o trabajan con fechas.

Por cierto, cada IP distinta cuenta como un visitante distinto. Ya que un visitante siempre puede visitar distintas páginas, pero seguirá siendo un solo visitante aunque lleve varias visitas.

Código fuente del dashboard

La página principal en donde se muestra el reporte de visitas y visitantes está hecha con Bulma. El código es el siguiente:

Para lograr que se muestre la gráfica y la lista de páginas visitadas estamos invocando a las funciones definidas en el archivo presentado con anterioridad y renderizando los datos a partir de lo que los métodos devuelvan.

Por cierto, el código que muestra las estadísticas de visitas de una página en un período de tiempo es el siguiente:

Instalación del software

Te dejo el código fuente completo en GitHub. Lo verdaderamente importante es el script que hace el registro de la visita y todo lo que está dentro de la carpeta llamada contador.

Una vez que tengas el código, las instrucciones son:

  1. Dentro de contador, crea el archivo llamado env.php basándote en el archivo env.ejemplo.php
  2. Crea una base de datos en MySQL / MariaDB y ten a la mano el usuario y contraseña para acceder a la misma
  3. Coloca las credenciales de acceso a la base de datos dentro de env.php
  4. Importa las tablas que están en esquema.sql y crea los índices
  5. Ahora solo tienes que incluir a contador.js en cualquier lugar en donde quieras llevar registro de las visitas y visitantes. Recuerda configurar la ruta en caso de que coloques los archivos de manera distinta
  6. Disfruta

Por aquí te dejo con más contenido sobre PHP, JS y MySQL.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

2 comentarios en “PHP – Contador de visitas avanzado con gráficas y reporte”

Dejar un comentario