En este post de programación con PHP te enseñaré cómo comprobar si es la primera vez que un usuario entra a nuestra web. Es decir, saber si el usuario visita la página por primera vez o si ya la ha visitado antes.
Para esto vamos a usar cookies y la función setcookie
de PHP.
Básicamente las cookies son valores que se guardan en el lado del cliente (pero podemos establecer con PHP del lado del servidor) y nos permiten identificar o dejar ciertos valores para rastrear a los usuarios.
Con esto no estoy diciendo que son un riesgo de seguridad; siempre dependerá de los datos que guardemos. En este caso solo vamos a evaluar si un usuario ya ha entrado a nuestra página web o si es la primera vez.
Para saber si el usuario ha visitado nuestra web vamos a intentar leer la cookie. Si ya existe, entonces sabemos que no es la primera vez que visita nuestra página.
Caso contrario, si la cookie no existe, indicamos que es la primera vez que visita la web y además creamos la cookie para futuras lecturas.
Nota: aquí el valor de la cookie es true
, podría ser cualquier valor y de hecho no importa, pues solo estamos leyendo la presencia de la cookie, no su contenido.
<?php
$nombreCookie = "mi_cookie_visitas";
if (isset($_COOKIE[$nombreCookie])) {
echo "Ya has visitado anteriormente esta página";
# Enlace para ir al archivo que borra la cookie
echo "<br><a href='borrar.php'>Borrar la cookie</a>";
} else {
# Establecemos la cookie para marcar que ya ha venido. Recuerda que debes establecerla
# antes de imprimir cualquier valor
# Cuándo expira la cookie? debe expirar en algún momento del futuro. Yo la pondré a 30 días
$tiempoExpiracion = time() + 60 * 60 * 24 * 30;
setcookie($nombreCookie, true, $tiempoExpiracion);
echo "Esta es la primera vez que visitas la página";
}
Con lo que te expliqué anteriormente y los comentarios se explica el código de PHP. Solo presta atención al tiempo de expiración, en este caso debemos establecer un tiempo de expiración. Para el ejemplo lo puse en 30 días, podrían ser más o menos dependiendo de tus necesidades.
Además, en el caso de que el usuario ya haya visitado la página, le mostramos una página para borrar esa cookie. Esto es opcional, pero la he puesto para depurar.
El código que borra la cookie queda así:
<?php
$nombreCookie = "mi_cookie_visitas";
# Para eliminar una cookie, se pone la fecha de expiración en una fecha anterior
$tiempoExpiracion = time() - 1;
setcookie($nombreCookie, "", $tiempoExpiracion);
# Y redireccionamos a index.php
header("Location: index.php");
Para borrar el registro de que el usuario ha visitado la página web, establecemos una cookie con un tiempo de expiración que ya haya pasado; y de este modo se elimina.
Finalmente en la línea 7 redireccionamos al index, mismo que debería mostrar el mensaje de que es la primera vez que se visita la página.
Aquí tengo más tutoriales sobre PHP. Si quieres ver el código completo (que en realidad solo son dos archivos) míralos en mi GitHub.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.