Portada » Lenguaje PHP » Contador de visitas Web con PHP y MYSQL

Contador de visitas Web con PHP y MYSQL

Contador de visitas Web con PHP y MYSQL. En este artículo vamos a explicar cómo añadir un contador de visitas y la base de datos como medio de almacenamiento con el objetivo de tener un control de las visitas diarias en tu sitio Web y en cualquier página que tengamos, ya sea estática o dinámica.

El contador de visitas será transparente y de fácil aplicación. Se tratará de insertar un código que nos permitirá tener un control de las visitas que recibimos en nuestra Web teniendo en cuenta el día y la dirección URL para evitar duplicaciones en el contador.

Sin embargo, necesitaremos añadir una nueva tabla en la base de datos, para guardar los registros de visitas. La puedes llamar tabla “visitas”.

Los campos utilizados en la tabla serán los siguientes:

  • Idvisitas
  • enlace
  • visitas

Contador de visitas Web con PHP y MYSQL

base-de-datos
Vista de los datos almacenados en la base de datos

base

Los Resultados del contador en la página web lo veremos ver como funciona. Si la página es única se incrementarán las visitas, y si visitan otra URL se guardarán en un nuevo campo como la imagen de arriba.

resultado-de-visitas

 

Ahora crear un archivo llamado visitas.php

En el cual se procesará las visitas todo esto en PHP, si el enlace existe se incrementará las visitas, utilizará cookies para no contabilizar impresiones.

 <?php
ob_start();
header("Content-type: text/javascript");

// Creamos la conexion con la base de datos
$con = @mysqli_connect('localhost', 'USUARIO_BD', 'PASSWORD_BD', 'NOMBRE_BD') or die("document.write('Error');");

// Obtenemos, y validamos enlace actual
$enlace = $_SERVER['HTTP_REFERER'];
if (!$enlace || $enlace == '') {
    die();
}

// Obtenemos los datos de la base de datos
$sql = "SELECT visitas FROM visitas WHERE enlace='$enlace'";
$query = mysqli_query($con, $sql);
$row = mysqli_fetch_assoc($query);

/*creamos los codigos querys verificando primero las cookies, para contar visitas y no impresiones web*/
if (isset($_COOKIE[md5($enlace)])) {
    // si existe la cookie solo le damos el valor a $visitas
    $visitas = $row['visitas'];
    echo "document.write($visitas);";
} elseif (!isset($_COOKIE[md5($enlace)])) {
    // Comprobamos si el enlace ya esta en la base de datos
    $rows = mysqli_num_rows($query);
    if ($rows > 0) {
        // Cuando exista lo enlace actualizamos
        $SQL = "UPDATE visitas SET visitas=visitas+1 WHERE enlace='$enlace'";
        if (mysqli_query($con, $SQL)) { // Si se inserta la visita
            $visitas = ($row['visitas']) + (1); // Le sumamos uno para mostrar la visita actual
            echo "document.write($visitas);";
            setcookie(md5($enlace), '_vStD', time() + 86400); // Y creamos la cookie de 1 dia
        } else { // Si no se inserta la visita
            $visitas = $row['visitas']; // Solo obtenemos las visitas
            echo "document.write($visitas);";
        }
    } elseif ($rows == 0) {
        // Cuando no existe el enlace en la base de datos la insertamos
        $SQL = "INSERT INTO visitas (enlace,visitas) VALUES ('$enlace',1)";
        if (mysqli_query($con,$SQL)) { // Si se inserta la nueva enlace
            echo "document.write(1);";
            setcookie(md5($enlace), '_vStD', time() + 86400); // Y creamos la cookie de 1 dia
        } else { // Si no se inserta mostramos
            echo "document.write(0);";
        }
    }
}

// Por ultimo cerramos la conexion, y cerramos el script
ob_end_flush();
mysqli_close($con);
die();
?>

Y los más principal como insertar en contador en todas nuestras aginas para que se registren las visitas de manera eficiente.

Visitas: <script src="https://localhost/base/conta/misvisitas.php"></script>

Espero que les haya servido, muchas gracias.

Contador de Visitas web
Contador de Visitas web

 

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 4 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Scroll al inicio
Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Privacidad