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.
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.
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.
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.
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.
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);
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.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.
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.