Crea un contador de visitas paso a paso

Los contadores de visitas web o webcounters registran las veces que se visita una página, presentando esta cifra en el borde inferior de la página principal generalmente y, mientras que su visualización obedece sobre todo a una finalidad representativa, muchos administradores también la utilizan en el marco del análisis web. La mayor parte de los propietarios de páginas web recurren a las funciones de webcounter que incluyen los sistemas de gestión de contenidos y los website builders o los adquieren de alguno de los diversos proveedores disponibles online. Estas soluciones, utilizando a menudo los web bugs frecuentes en el análisis de archivos de registro (logfile analysis) o aplicaciones JavaScript similares, registran datos específicos sobre cada usuario, que se suman a la simple cifra de visitas.

Si prefieres no depender de un proveedor externo y mantener un control más férreo sobre tus datos, puedes optar por crear un contador de visitas tú mismo e integrarlo en tu proyecto. Lo único que necesitas es una base de datos y conocimientos básicos de PHP.

Descargar un contador de visitas: soluciones gratis y de pago

La opción más sencilla a la hora de instalar un contador de visitas en tu web es, sin duda, descargar una solución ya codificada, que puede ser gratuita o de pago. La principal diferencia entre un modelo y el otro radica en su abanico de funciones. Si se opta por una solución de pago suelen obtenerse a cambio estadísticas en formato gráfico con datos que van más allá de la mera cifra de tráfico. El grado de exhaustividad de esta información depende de si el registro de la actividad de los usuarios tiene lugar exclusivamente del lado del servidor o también del lado del cliente. Con todo, en ambos casos se recaban de forma estándar los siguientes parámetros fundamentales:

  • Momento del acceso a la página
  • Dirección IP del usuario
  • Cliente del usuario
  • URL de origen

En función de cómo esté configurado, el servidor puede asignar a cada visitante un identificador inequívoco, una cookie de sesión, la primera vez que entra en una página, de forma que en la estadística pueda diferenciarse si se trata de la primera página que abre un usuario o ya ha visitado otras antes. Con recursos del lado del cliente como JavaScript o Adobe Flash se puede obtener aún más información. Gracias a las tecnologías de rastreo puede saberse, por ejemplo, el sistema operativo o las extensiones del navegador que utiliza el usuario o incluso la resolución de pantalla de su equipo, información que puede desempeñar un papel decisivo en la optimización de la página para dispositivos móviles.

Normalmente, los proveedores permiten escoger entre una gran variedad de diseños y tamaños. Cuando has escogido el modelo adecuado solo tienes que generar el código HTML para el contador de visitas, para luego insertarlo en el lugar que has reservado para él en la página web.

Crear un contador de visitas: manual paso a paso

Antes de comenzar con el diseño en sí del contador de visitas, se ha de crear la estructura necesaria para ello. No hay que olvidar que los datos que recaba un webcounter, como los accesos a la página, se han de almacenar en algún lugar para que más tarde pueda mostrar la cifra actualizada y entregar estadísticas fiables. Los proyectos pequeños suelen tener suficiente con un archivo de texto alojado en el servidor e identificado específicamente en el script como su lugar de almacenamiento, pero a medida que aumenta tanto el tamaño de la página como su tráfico se hace conveniente utilizar una base de datos como MySQL para guardar toda esta información. Por eso, antes de comenzar con el script en sí, el siguiente apartado se ocupa de la configuración de la base de datos.

Configurar una base de datos MySQL para un contador de visitas

Enlazar a un contador de visitas con una base de datos conlleva la generación de más peticiones y por este motivo es mucho más complejo que tomar la información de un simple archivo de texto, lo que obliga a evaluar de antemano si su uso es útil en el proyecto o un freno innecesario.

Las celdas que se configuren en la tabla dependen de los datos que se van a registrar y analizar con el contador de visitas, pero cuatro son especialmente relevantes:

  • id: la primera celda de la tabla conviene que sea “id”, aunque su uso no es obligatorio, y sirve para mantener la claridad y manejar fácilmente los registros cuando sea necesario ordenarlos, por ejemplo. Para que la base de datos ordene los registros que se vayan generando de forma correlativa y solo asigne cada número una única vez se han de indicar los parámetros AUTO_INCREMENT y PRIMARY KEY.
  • access_page: esta columna es imprescindible porque indica el título de la página en la que se inserta el contador de visitas. Con los parámetros NOT NULL y UNIQUE garantizas que no se creen registros duplicados. Como tipo de datos se puede optar por VARCHAR o por TEXT. Se recomienda, además, indicar la codificación utf8_bin para que puedan visualizarse correctamente las diéresis, tildes, puntos, etc.
  • access_counter: el contador de visitas en sí se alberga en la celda INTEGER “access_counter”. Cada vez que se accede a la “Access-page” aumenta el valor de forma automática de uno en uno.
  • access_date: la fecha y la hora de la visita de una página no es un valor imprescindible en la base de datos pero se cuenta normalmente entre los primeros valores que se recaban cuando se instala un webcounter. Utilizando el formato TIMESTAMP con el atributo CURRENT_TIMESTAMP se obtienen registros actuales que contienen tanto la fecha como el momento exacto. Si se añade la regla ON UPDATE CURRENT_TIMESTAMP la base de datos introduce la fecha y la hora de forma autónoma sin requerir más acciones de programación.

Crear la función de PHP para el contador de visitas

El lenguaje de programación PHP se ajusta a la perfección para enviar los datos de los usuarios a la base de datos y seleccionar después los datos que el webcounter necesita. Para poder hacerlo, el script ha de contener una función que sea capaz de llevar a cabo estas tres tareas:

  1. Conectar con la base de datos y poder abrirla.
  2. Supervisar constantemente la tabla para detectar si un registro ya existe y decidir si aumenta el contador en 1 o crea un registro nuevo con el valor 1.
  3. Responder con el valor actual para que el contador de visitas pueda mostrarlo correctamente en la página principal.

Dada la complejidad del script, en los siguientes párrafos se tratará por separado cada paso de la creación de esta función, que en este manual va a llevar el nombre de “Visitante”.

El código de un contador de visitas en PHP comienza con los parámetros necesarios para inicializar la base de datos: servidor y propietario de la base de datos, sus contraseñas y nombres de registro así como nombre de la tabla y las celdas que la componen (access_page, etc.). Para que pueda establecerse la conexión posteriormente es necesario introducir los datos correctos.

<?php
function visitante($record) {
  $db_host = "localhost";
  $db_username = "nombre-de-usuario"; 
  $db_password = "contraseña";
  $db_name = "nombre-de-la-base-de-datos";
  $db_table = "nombre-de-la-tabla";
  $counter_page = "access_page";
  $counter_field = "access_counter";

A este fragmento sigue la instrucción para abrir la base de datos o emitir un mensaje de error si la conexión no se puede establecer:

$db = mysqli_connect($db_host, $db_username, $db_password, $db_name) or die("Host no disponible")
$db = mysql_select_db ($db_name, $link) or die("Base de datos no disponible")

Hecho esto, ahora se trata de ampliar el script con las líneas con las que se cumplimenta la tabla. En este punto es decisiva la declaración “INSERT…ON DUPLICATE KEY UPDATE” que, combinada con el aumento del valor de la celda en 1, se ocupa de que el webcounter se actualice correctamente si ya existe el registro:

$sql_call = "INSERT INTO ".$db_table." (".$counter_page.", ".$counter_field.") VALUES ('".$record."', 1) ON DUPLICATE KEY UPDATE ".$counter_field." = ".$counter_field." + 1"
mysqli_query($db, $sql_call) or die("Error al introducir los datos");

Con todo lo dicho hasta ahora la función cumple ya dos de las tres tareas mencionadas arriba: establecer la conexión con la base de datos y crear el registro correspondiente o actualizar uno ya presente en la tabla. Ahora el script aún tiene que encargarse de una tercera misión consistente en informar a la página web del estado actual del contador de visitas. Para ello debes añadir la petición correspondiente a la base de datos (mysql_query) y definir el orden numérico de los resultados (mysql_fetch_assoc). En el último paso la función ha de cerrar la base de datos y devolver el resultado por return con las siguientes líneas de código:

$sql_call = "SELECT ".$counter_field. " FROM ".$db_table." WHERE ".$counter_page. " = '".$record. "'";
$sql_result = mysqli_query($db, $sql_call) or die("Error en la petición SQL");
$row = mysqli_fetch_assoc($sql_result);
$x = $row[$counter_field];

mysqli_close($db);
return $x;
  }
?>

Script de PHP para un contador de visitas: código completo

Hasta este punto se ha explicado cada uno de los fragmentos de la función PHP por separado. En este apartado se muestra el script completo con el que añadir un contador de visitas gratis a una página web.

<?php
function visitante($record) {
  $db_host = "localhost";
  $db_username = "nombre-de-usuario"; 
  $db_password = "contraseña";
  $db_name = "nombre-de-la-base-de-datos";
  $db_table = "nombre-de-la-tabla";
  $counter_page = "access_page";
  $counter_field = "access_counter";
  $db = mysqli_connect ($db_host, $db_username, $db_password, $db_name) or die("Host o base de datos no disponible");

  $sql_call = "INSERT INTO ".$db_table." (".$counter_page.", ".$counter_field.") VALUES ('".$record."', 1) ON DUPLICATE KEY UPDATE ".$counter_field." = ".$counter_field." + 1"; 

  mysqli_query($db, $sql_call) or die("Error al introducir los datos");

$sql_call = "SELECT ".$counter_field. " FROM ".$db_table." WHERE ".$counter_page. " = '".$record. "'";
$sql_result = mysqli_query($db, $sql_call) or die("Error en la petición SQL");
$row = mysqli_fetch_assoc($sql_result);
$x = $row[$counter_field];

mysqli_close($db);
return $x;
  }
?>

Integra el script en el documento HTML

Antes de instalar tu contador de visitas PHP en una página, la hoja HTML requiere de algunas modificaciones. La primera de ellas consiste en sustituir la terminación .html por .php. En segundo lugar, la variable de PHP $page_name en el encabezado de la página ha de recibir un nombre suficientemente explícito:

<?php
  $page_name = "Nombre de la página";
?>

Este nombre, que es el que aparecerá en la celda Access_page de la base de datos, puede convertirse en el título de la página con ayuda de la función PHP echo:

<title><?php echo $page_name  ?></title>

Para integrar el script del contador de visitas, llamado aquí webcounter.php, escribe el comando PHP include en la posición de la web donde tenga que situarse. Al mismo tiempo, envía el contenido de la variable $page_name a la función “Visitantes”:

<?php
include "webcounter.php";
$número_accesos = visitantes($page_name);
?>

Tan pronto como el código se encuentra integrado en la página, el script de PHP entra en acción creando el registro correspondiente si el título de la página (el contenido de la función $page_name) no existe en la tabla de la base de datos. La celda access_counter acepta el valor 1 y la función informa a la web de que se ha producido un acceso. Si ya figura un registro, el counter de la base de datos aumenta en 1.

Presentación de las cifras de tráfico en la página web

Cuando ya has creado el contador de visitas y este ha comenzado a registrar las visitas de tus usuarios, puedes mostrar la cifra actualizada en la web. La opción más sencilla es una notificación en el pie de la página. Para ello solo es necesario un elemento Footer. Mediante un comando echo se añade al texto el valor actual de la variable $número_accesos:

< footer>
  <p>
<?php
    echo "¡Eres el visitante ", $anzahl_zugriffe, ". en esta página!";
    ?>
</p>
</footer>