CULTURA

Cómo crear un contador de visitantes en PHP

Mantener rastrear el número de usuarios que ven nuestro sitio a diario es esencial para comprender qué páginas atraen a la mayor cantidad de visitantes. El informe de visitas puede brindarnos comentarios valiosos para mejorar el sitio en la medida de lo posible.

Nuestro objetivo será incrementar el contador no en cada carga de página, sino solo en cada nueva visita del usuario. Si nuestro usuario no carga una página nueva durante mucho tiempo y luego lo vuelve a hacer, podemos suponer que fue a hacer otra cosa y luego regresó al sitio, por lo que tiene sentido contar una nueva visita. Sin embargo, podemos establecer arbitrariamente un tiempo razonable más allá del cual se contabiliza una nueva visita, por ejemplo una hora. Pero también podríamos arreglarlo en un día, todo depende de nuestras necesidades.

¿Cómo construir nuestra pequeña aplicación? En primer lugar, las herramientas que necesitamos son una pequeña base de datos para mantener los valores de los contadores y galletas para reconocer a los visitantes y evitar contarlos varias veces.

Cómo crear un contador de visitantes en PHP

Creamos la base de datos MySql (la copia gratuita está disponible en el sitio www.mysql.com con documentación relacionada) conectándose al servidor con el cliente de texto de línea de comandos interno a MySql, con Banco de trabajo MySql o un administrador web como PhpMyAdmin.

Si usamos el cliente de texto de línea de comandos, el código SQL para crear una base de datos «encimera«Es el siguiente:

create database contatore;
use contatore;

Creemos un usuario que pueda acceder de manera segura a esta base de datos con nombre de usuario y contraseña, pero solo desde la misma máquina en la que está instalado el servidor de la base de datos:

Grant all on contatore.*to cont@'localhost' identified by 'passcontatore';

El usuario se llama cont, con contraseña contador de pases. Si el servidor MySql reside en una máquina diferente del servidor web del sitio, reemplace localhost en cont @ ‘localhost’ con la dirección correcta del servidor y asegúrese de que MySql acepte conexiones desde el exterior.

Una vez hecho esto, podemos encargarnos de la conexión a la base de datos creando el archivo Php. El nombre que le daremos es connect.php y tendrá el siguiente código:

<?php
define('MYSQL_HOST','localhost');
define('MYSQL_USER','cont');
define('MYSQL_PASS','passcontatore');
define('MYSQL_DB','contatore');
if(!@mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS)){
//Errore di connessione
die("Errore di connessione al DB");
}elseif(!@mysql_select_db(MYSQL_DB)){
//Errore DB
die("Errore di selezione DB");}
?>

El comando define define una constante, es decir, asigna un valor inmutable a una cadena. Una constante ocupa menos memoria y recursos que una variable.

Si no se recibe ningún error al ejecutar este script, significa que la conexión funcionó y podemos proceder con la creación de las tablas para los datos. La estructura para crear es simple, necesitamos una identificación de página y un campo de contador. La tabla, por lo tanto, se creará con un código SQL de la siguiente manera:

create table conteggi (id_pagina INT NOT NULL PRIMARY KEY, visite INT NOT NULL);
insert into conteggi values(0,0),(1,0),(2,0);(3,0);

Para verificar los datos ingresados ​​simplemente haga:

select * from conteggi;

En la tabla hemos ingresado cuatro datos, uno con id_pagina = 0 que necesitamos para contar las visitas al sitio y tres páginas de las cuales contaremos las cargas. De esta manera, rastreamos tanto las visitas al sitio como la cantidad de veces que se ven páginas individuales. Solo hemos creado tres páginas, pero podemos crear tantas como queramos.

Pasemos a la aplicación real del contador: el código PHP que aumenta los recuentos y nos los muestra en una página de prueba. Creemos tres archivos llamados Page1.php, Page2.php, Page3.php con el siguiente código para Page1.php:

<?php
//includiamo il file di connessione al DB
include connect.php;

//Settiamo l'identificativo di pagina
$id_pagina=1;//modificare il valore in 2 o 3 negli altri files

//Aggiorniamo sempre il numero di visite a questa pagina
mysql_query("UPDATE conteggi SET visite=visite+1 WHERE id_pagina=$id_pagina");

//Aggiorniamo le visite solo se il cookie è scaduto
if(!isset($_COOKIE['visitemiosito'])){
mysql_query("UPDATE conteggi SET visite=visite+1 WHERE id_pagina=0");}

//Aggiorniamo il cookie della durata di un'ora
setcookie('visitemiosito',1,time()+3600);

//Carichiamo e visualizziamo le visite al sito
$res=mysql_query("select visite from conteggi where id_pagina=0");
$cont=mysql_fetch_array($res);
echo "Visite al sito:".$cont['visite'];

//Carichiamo e visualizziamo le visite alla pagina
$res=mysql_query("select visite from conteggi where id_pagina=$id_pagina");
$cont=mysql_fetch_array($res);
echo "- Visite alla pagina $id_pagina: ".$cont['visite'];
?>

Subimos los archivos al servidor web y los probamos. Accediendo a las tres páginas veremos como se actualizan los contadores de páginas, mientras que el del sitio se actualiza solo en la primera página cargada. Para verlo aumentar, puede hacer una prueba reduciendo el número de segundos en setcookie () de 3600 a 10, por lo que después de solo 10 segundos de inactividad, verá que se actualiza el contador del sitio.

Por supuesto, existen muchas herramientas gratuitas para el análisis de acceso, pero crear un contador personalizado podría ser útil para nuestras necesidades. Las herramientas que podemos integrar en nuestro sitio están disponibles en línea y son:

Si no tenemos una base de datos MySql, aún es posible crear un contador simple, usando un archivo de texto. Creamos el archivo vacío en nuestro sitio. counter.txt con permisos de escritura para cualquiera y, en el mismo directorio, creamos el siguiente archivo php:

<?php
$filename="contatore.txt";

//Legge il numero di visite
$fd=fopen($filename,"r") or die ("Impossibile aprire $filename);
$fstring=fread($fd,filesize($filename));
echo "Visite al sito: "."$fstring";
fclose($fd);

//Verifica nuova visita ed eventualmente aggiorna il contatore
if(!isset($_COOKIE['visitemiosito'])){
$fd=fopen($filename,"w") or die ("Impossibile aprire $filename");
$fcounted=$fstring +1;
$fout=fwrite($fd,$fcounted);
fclose($fd);}

//Imposta il cookie di un'ora
setcookie('visitemiosito',1,time()+3600);
?>

Cargámoslo en el navegador y veremos que el contador empieza desde uno y luego se actualiza tras una hora de inactividad.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar