Cómo crear un contador en PHP
Explicamos lo que hay que hacer para crear un contador de visitas en nuestro sitio web. No es necesario utilizar una base de datos, ya que el número de visitas se guardan en archivos de texto.
El crear un contador en PHP es algo que cualquier webmaster puede hacer. Existen unos cuantos sistemas para controlar las visitas a un sitio web, unos instalables en el servidor y otros externos, que solo requieren de un registro y de una porción de código a insertar en las páginas del sitio. En este último grupo, Google Analytics ocupa el primer lugar, en el otro hay varios, con Matomo a la cabeza, al menos para nosotros. Hoy os presentamos algo muy simple, destinado a medir las visitas de cualquier web.
Ya os hemos presentado aquí, en Lecciones, de algunos completos sistemas de estadísticas y también os hemos hablado de un script destinado a tal fin. Así, con respecto al primer grupo, os hemos hablado de Firestats, que ya no funciona, Matomo (antes Piwik) y PHP Web Stat. En el segundo grupo os hemos explicado lo que tenéis que hacer para crear e instalar Un sencillo contador para tu web.
Ahora, vamos a hablaros de nuevo de algo más sencillo, sin que necesitéis, para su instalación y funcionamiento, disponer de una base de datos. Si tienes un sitio web y quieres mostrar a tus visitantes las páginas vistas totales, desde una determinada fecha, y las diarias, te ofrecemos un script en PHP que hace todo el trabajo. Con pequeños ajustes, que te mostramos más abajo, podrás implementarlo fácilmente en tu sitio.
<?php $countfile = "/la_ruta_de_tu_contador/count.dat"; $diafile = "/la_ruta_de_tu_contador/dia.dat"; $countdia = "/la_ruta_de_tu_contador/count_dia.dat"; $arr = getdate(); $since = $arr["mday"]; $exist_file = fopen($countfile, "r+"); $new_count = fgets($exist_file, 255); $new_count++; fseek($exist_file,SEEK_SET); fputs($exist_file, $new_count); fclose($exist_file); $abrir_dia = fopen($diafile, "r+"); $nuevo_dia = fgets($abrir_dia, 255); fclose($abrir_dia); if ($nuevo_dia != $since) { $undia_mas = fopen($diafile, "w"); fputs($undia_mas, $since); fclose($undia_mas); } $visit_dia = fopen($countdia, "r+"); $new_visit = fgets($visit_dia, 255); $new_visit++; if ($nuevo_dia != $since) { fclose($visit_dia); $a_cero = fopen($countdia, "w"); fputs($a_cero, "1"); fclose($a_cero); } else { fseek($visit_dia,SEEK_SET); fputs($visit_dia, $new_visit); fclose($visit_dia); } print("<strong>Visitas desde 11/04/2020</strong>: <font color=red>$new_count</font> | <strong>Visitas hoy</strong>: <font color=blue>$new_visit</font>"); ?>
Los ficheros count.dat, dia.dat y count_dia.dat deben tener atributos de lectura y escritura (CHMOD 775). Debes crearlos, como archivos de texto. Estos ficheros, lo mismo que contador.php (el archivo que alberga el código del script), pueden estar en un directorio que llamaremos contador. La ruta completa de ese directorio en el servidor debe incluirse en todos los lugares en que hemos puesto la_ruta_de_tu_contador.
¿Cómo funciona?
Cada vez que un visitante entra en una página, el script lee sucesivamente el contador de visitas totales (count.dat) y lo incrementa en una unidad, el número guardado como día actual (comprueba si coincide con el real y si no coincide lo cambia) y el contador de visitas diarias (count_dia.dat), que incrementa o pone a uno si el día actual coincide con el día guardado o no. Por último presenta los resultados en un mensaje de texto.
¿Cómo implementarlo?
Sólo habrá que incluir en cada página del sitio, en el lugar que consideremos oportuno, en el que queremos que se muestre el contador, el siguiente código:
<?php @include(getenv('DOCUMENT_ROOT').'/contador/contador.php'); ?>
Si tenemos problemas a la hora de insertar la llamada en PHP, podemos insertar la siguiente:
<img src="https://www.sitioweb.com/contador/contador.php" style="border:0" alt="" />
Solo hay que sustituir https://www.sitioweb.com por la dirección web en la que se aloja el código del contador.
Conclusión
Aunque los datos mostrados no son muy completos, ya que solo se podrá ver el número total de visitas, es un script válido para muchos usuarios. Si no quieres recurrir a uno de los programas que indicamos en el segundo párrafo, ésta es una solución válida.