Inicio Apuntes FPApuntes DAW Ejercicio Básico 31 PHP: Seguimiento de las visitas a una página

Ejercicio Básico 31 PHP: Seguimiento de las visitas a una página

Utilicemos cookies o sesiones y arrays

Publicado por entreunosyceros
Publicado el: Última actualización:

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

Una vez más aquí va un nuevo ejercicio de PHP, por aquello de intentar coger un poco de soltura en esto de hacer páginas webs. El ejercicio que voy a plantear hoy, que tiene que ver con las visitas a una página web, tiene diferentes maneras de hacerse (como siempre). Además, los más probable es que la que voy a dejar aquí colgada no será ni la mejor ni la más eficiente, pero como es costumbre, es la que a mi se me ha ocurrido.

Bueno, el ejercicio trata de escribir una página de modo que cada vez que el usuario de turno vuelva a entrar en ella muestre un listado con la hora y la fecha de cada visita previa. El contenido de la página da igual para este ejemplo… Según tengo entendido esto se puede conseguir guardando en una variable de sesión, un array al que se le irán añadiendo los datos (función time) de cada visita. Pero al desarrollar esta aplicación me he ido un poco por las ramas y también he realizado el ejercicio sin arrays.

En el primero de los código que vamos a ver, las fechas se guardan en cookies a las que se le añade al nombre el número que produce la variable de sesión ($_SESSION) y sigo utilizando la función time() combinada con la función date() para conseguir la fecha y la hora de cada visita. Bueno sin más tonterías, vamos al turrón …

Seguimiento de las visitas con cookies

En este ejemplo, cada vez que el usuario visita la página, se incrementa el número de visitas en la sesión. La fecha y hora de cada visita se almacenan en una cookie con un nombre único, dependiendo del número de visita. Luego, se muestra un listado con las fechas y horas de visitas anteriores usando las cookies almacenadas.

<?php
// Iniciar sesión
session_start();

// Obtener el número de visitas
if (!isset($_SESSION['visits'])) {
    $_SESSION['visits'] = 1;
} else {
    $_SESSION['visits']++;
}

// Agregar la fecha y hora de la visita actual a una cookie
$cookieName = "visit_" . $_SESSION['visits'];
$visitTime = time();
setcookie($cookieName, $visitTime, time() + 3600 * 24 * 30); // Cookie válida por 30 días

// Mostrar las fechas y horas de visitas anteriores
echo "<h1>Registro de Visitas</h1>";
if ($_SESSION['visits'] > 1) {
    echo "<h2>Visitas anteriores:</h2>";
    echo "<ul>";
    for ($i = 1; $i < $_SESSION['visits']; $i++) {
        $cookieName = "visit_" . $i;
        if (isset($_COOKIE[$cookieName])) {
            $visitTime = $_COOKIE[$cookieName];
            echo "<li>Visita $i: " . date('Y-m-d H:i:s', $visitTime) . "</li>";
        }
    }
    echo "</ul>";
}
?>

<!-- Contenido de la página -->
<p>¡Bienvenido a nuestra página!</p>

Es importante tener en cuenta que el uso de cookies para este propósito puede no ser la forma más robusta de hacerlo, ya que las cookies pueden ser modificadas o eliminadas por el usuario. Usar sesiones y arrays sería una solución más segura y recomendada para el seguimiento de las visitas. Por eso vamos a ver a continuación, como se podría hacer esto mismo utilizando arrays y sesiones.

Seguimiento de visitas utilizando arrays y sesiones

En este ejemplo, utilizamos una variable de sesión llamada $_SESSION['visits'] que es un array donde almacenamos las fechas y horas de las visitas previas. Cada vez que el usuario visita la página, se agrega el tiempo actual al final del array de visitas. Luego, se muestra un listado con las fechas y horas de las visitas anteriores.

<?php
session_start();

if (!isset($_SESSION['visits'])) {
    $_SESSION['visits'] = array();
}

// Agregar la fecha y hora de la visita actual al array de visitas
$visitTime = time();
array_push($_SESSION['visits'], $visitTime);

// Mostrar las fechas y horas de visitas anteriores
echo "<h1>Registro de Visitas</h1>";
if (count($_SESSION['visits']) > 1) {
    echo "<h2>Visitas anteriores:</h2>";
    echo "<ul>";
    foreach ($_SESSION['visits'] as $index => $visitTime) {
        echo "<li>Visita " . ($index + 1) . ": " . date('Y-m-d H:i:s', $visitTime) . "</li>";
    }
    echo "</ul>";
}
?>

<!-- Contenido de la página -->
<p>¡Bienvenido a nuestra página!</p>

Usar sesiones y arrays es más seguro que las cookies, ya que las sesiones están gestionadas por el servidor y no pueden ser modificadas fácilmente por el usuario. Este enfoque también permite un mejor control sobre los datos y es más escalable en comparación con el uso de cookies para este propósito.

Bueno, he tardado, pero al final actualicé este post ;)

También te puede interesar ...

Deja un comentario

* Al utilizar este formulario, aceptas que este sitio web almacene y maneje tus datos.

Resumen de privacidad
cookies entreunosyceros

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible.

La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudarnos a comprender qué secciones de la web encuentras más interesantes y útiles.

Nunca almacenamos información personal de ningún tipo.

Tienes toda la información sobre privacidad, derechos legales y cookies en nuestra página sobre la política de privacidad o en la página sobre nuestra política de cookies.

Cookies necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.

Cookies de terceros

Esta web utiliza las siguientes cookies adicionales:

- Mailchimp: Recordar si ya estás suscrito al boletín de noticias y sino ofrecértelo al salir.

- Accesibilidad: Para saber tus ajustes de accesibilidad en cada visita.

- Comentarios: Saber si has leído y aceptado nuestra política de privacidad a la hora de dejar un comentario en la web.

- Google Analytics: Localización para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

- Goggle Adsense: Anuncios personalizados según tu geolocalización y preferencias.

Dejar estas cookies activadas nos permite mejorar nuestra web.

Adblock Detectado!!

Ayúdanos deshabilitando la extensión AdBlocker de tu navegador para visitar esta web.
Si no sabes hacerlo en Chrome, consulta el siguiente enlace. Si utilizas Firefox, puedes consultar este otro enlace.
Esto mejorará tu experiencia en este sitio web.