php

Contador de visitas muy simple en PHP

Hoy voy a mostrarte cómo contar las visitas de usuarios usando PHP. Será un contador sin bases de datos ni dependencias, usando solo PHP.

Contador de visitas simple con PHP

Te aviso desde ahora que es algo muy simple y sencillo. Más adelante te traeré un ejemplo más avanzado y preciso, pero por ahora lo vamos a dejar muy simple usando archivos texto.

No vamos a usar bases de datos de ningún tipo. Será un contador de visitas con PHP puro y archivos de texto.

Actualización: si quieres algo más avanzado con gráficas, reporte de páginas más vistas y otras mejoras puedes ver la versión avanzada del contador.

¿Qué es una visita?

Definir el término es algo complejo. Pero en modo simple, es cuando alguien hace una petición HTTP a nuestro servidor. Justo aquí radica el problema, pues el previsualizador de Facebook hace una petición, así como los bots y el indexador de Google.

Por lo tanto debemos saber separar los usuarios reales de los robots, pero eso será en otro post más avanzado. Lo único que haremos será usar PHP para aumentar un contador de visitas cada que alguien visite nuestra página.

Vamos a dejar el código en un archivo de fácil inclusión para poder reutilizarlo en distintas páginas.

Contando la visita

Entonces veamos el código que hará que la visita quede registrada. Básicamente leerá las visitas actuales, las aumentará en uno y las guardará. El código PHP queda así:

<?php
/*
    El contador de visitas más simple
    https://parzibyte.me/blog
*/$nombreArchivo = "contador.txt";
# Si no existe, lo creamos
if (!file_exists($nombreArchivo)) {
    touch($nombreArchivo);
}
# Obtenemos su contenido
$contenido = trim(file_get_contents($nombreArchivo));
# Si está vacío, lo igualamos a cero
if ($contenido == "") {
    $visitas = 0;
} else {
    # Si no, las visitas son lo que tenga el archivo
    $visitas = intval($contenido);
}
# Ya sea que las visitas son 0 o las que hayamos leído, las aumentamos
$visitas++;
# Y volvemos a escribir el valor en el archivo
file_put_contents($nombreArchivo, $visitas);

El algoritmo es básicamente leer el contenido del archivo. Si el mismo está vacío, entonces suponemos que no hay visitas, así que las iniciamos en 0. En caso de que ya haya visitas, convertimos la lectura a entero.

De cualquier modo, aumentamos el contador y lo guardamos en el archivo. De este modo no importa que sea la primera vez que se visita la página o si ya se ha visitado anteriormente.

Usando contador de visitas en PHP

Ahora solo resta incluir ese archivo en todas las páginas en donde necesitemos registrar las visitas. Para ello se puede usar include_once. Por ejemplo, se puede poner en la página de inicio:

<?php
# Incluir el contador de visitas
include_once "contar_visita.php";
?>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Bienvenido a la página</title>
</head>

<body>
    Hola, bienvenido a mi página web.
    <br>
    <a href="contacto.php">Contacto</a>
    <br>
    <a href="acerca_de.php">Acerca de</a>
    <br>
    <a href="ver_visitas.php">Ver contador de visitas</a>
</body>

</html>

Y también en la página de contacto:

<?php
# Incluir el contador de visitas
include_once "contar_visita.php";
?>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Contacto</title>
</head>

<body>
    Esta es la página de contacto
    <br>
    <a href="index.php">Inicio</a>
</body>

</html>

Fíjate en que lo que tienen esas páginas en común son las primeras 4 líneas en donde incluimos el contador de visitas.

Reporte de visitas

Como tal no existe el reporte, pero si queremos ver las visitas podemos abrir el archivo y ver el número que tiene en él. O también podemos usar el siguiente script:

<?php
$visitas = file_get_contents("contador.txt");
printf("Hasta ahora van %d visitas", $visitas);

Poniendo todo junto

Contador de visitas simple con PHP

Lo único que necesitas es incluir el script de PHP al inicio de todas las páginas. Recuerda que este script es muy simple pero a su vez no es preciso ni completamente confiable, así que contará las visitas de bots como si fueran de usuarios.

En próximos tutoriales te traeré algo más avanzado. Mientras tanto te dejo el código completo en mi GitHub. También te dejo con unos enlaces de interés para aprender más sobre PHP.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

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.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

  • Por favor ...como pongo en mi blog un contador diario, es decir que el número de edición (es un portal de noticias) cambie a diario ?
    Muchas gracias.

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

9 horas hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

7 días hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

7 días hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

7 días hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

7 días hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

7 días hace

Esta web usa cookies.