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.

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.