En este tema, aprenderemos sobre dos mecanismos fundamentales para mantener el estado en aplicaciones web: las sesiones y las cookies. PHP proporciona soporte nativo para ambos, lo que facilita su implementación y uso.

¿Qué son las Sesiones?

Las sesiones permiten almacenar información en el servidor para ser utilizada en múltiples páginas. Esto es útil para mantener datos del usuario mientras navega por una aplicación web.

Cómo Iniciar una Sesión

Para iniciar una sesión en PHP, utilizamos la función session_start(). Esta función debe ser llamada al inicio de cada script que utilice sesiones.

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

// Almacenar datos en la sesión
$_SESSION['username'] = 'JohnDoe';
$_SESSION['email'] = '[email protected]';

echo 'Sesión iniciada y datos almacenados.';
?>

Acceder a Datos de la Sesión

Una vez que los datos están almacenados en la sesión, podemos acceder a ellos en cualquier página que haya iniciado la sesión.

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

// Acceder a los datos de la sesión
$username = $_SESSION['username'];
$email = $_SESSION['email'];

echo "Usuario: $username, Email: $email";
?>

Destruir una Sesión

Para destruir una sesión y eliminar todos los datos almacenados en ella, utilizamos session_destroy().

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

// Destruir la sesión
session_destroy();

echo 'Sesión destruida.';
?>

¿Qué son las Cookies?

Las cookies son pequeños archivos que se almacenan en el navegador del usuario. Se utilizan para almacenar datos que deben persistir entre visitas al sitio web.

Crear una Cookie

Para crear una cookie en PHP, utilizamos la función setcookie(). Esta función debe ser llamada antes de que se envíe cualquier salida al navegador.

<?php
// Crear una cookie que expira en 1 hora
setcookie('username', 'JohnDoe', time() + 3600);

echo 'Cookie creada.';
?>

Acceder a una Cookie

Podemos acceder a las cookies utilizando la superglobal $_COOKIE.

<?php
// Acceder a la cookie
if (isset($_COOKIE['username'])) {
    $username = $_COOKIE['username'];
    echo "Usuario: $username";
} else {
    echo 'Cookie no encontrada.';
}
?>

Eliminar una Cookie

Para eliminar una cookie, simplemente establecemos su tiempo de expiración en el pasado.

<?php
// Eliminar la cookie
setcookie('username', '', time() - 3600);

echo 'Cookie eliminada.';
?>

Comparación entre Sesiones y Cookies

Característica Sesiones Cookies
Almacenamiento Servidor Navegador del usuario
Seguridad Más seguro (datos no visibles) Menos seguro (datos visibles)
Tamaño Ilimitado (depende del servidor) Limitado (generalmente 4KB)
Persistencia Hasta que se cierre el navegador o se destruya la sesión Puede persistir por un tiempo definido

Ejercicio Práctico

Ejercicio 1: Implementar Sesiones

  1. Crea un script login.php que inicie una sesión y almacene el nombre de usuario.
  2. Crea un script profile.php que acceda y muestre el nombre de usuario almacenado en la sesión.
  3. Crea un script logout.php que destruya la sesión.

Solución

login.php

<?php
session_start();
$_SESSION['username'] = 'JohnDoe';
echo 'Sesión iniciada. <a href="profile.php">Ir al perfil</a>';
?>

profile.php

<?php
session_start();
if (isset($_SESSION['username'])) {
    echo "Usuario: " . $_SESSION['username'];
    echo ' <a href="logout.php">Cerrar sesión</a>';
} else {
    echo 'No hay sesión iniciada.';
}
?>

logout.php

<?php
session_start();
session_destroy();
echo 'Sesión destruida. <a href="login.php">Iniciar sesión</a>';
?>

Ejercicio 2: Implementar Cookies

  1. Crea un script set_cookie.php que cree una cookie con el nombre de usuario.
  2. Crea un script get_cookie.php que acceda y muestre el nombre de usuario almacenado en la cookie.
  3. Crea un script delete_cookie.php que elimine la cookie.

Solución

set_cookie.php

<?php
setcookie('username', 'JohnDoe', time() + 3600);
echo 'Cookie creada. <a href="get_cookie.php">Ver cookie</a>';
?>

get_cookie.php

<?php
if (isset($_COOKIE['username'])) {
    echo "Usuario: " . $_COOKIE['username'];
    echo ' <a href="delete_cookie.php">Eliminar cookie</a>';
} else {
    echo 'Cookie no encontrada.';
}
?>

delete_cookie.php

<?php
setcookie('username', '', time() - 3600);
echo 'Cookie eliminada. <a href="set_cookie.php">Crear cookie</a>';
?>

Conclusión

En esta sección, hemos aprendido cómo utilizar sesiones y cookies en PHP para mantener el estado en nuestras aplicaciones web. Las sesiones son más seguras y se almacenan en el servidor, mientras que las cookies se almacenan en el navegador del usuario y pueden persistir por un tiempo definido. Ambos mecanismos son esenciales para crear aplicaciones web interactivas y personalizadas.

Curso de Programación en PHP

Módulo 1: Introducción a PHP

Módulo 2: Estructuras de Control

Módulo 3: Funciones

Módulo 4: Arrays

Módulo 5: Trabajando con Formularios

Módulo 6: Trabajando con Archivos

Módulo 7: Programación Orientada a Objetos (POO)

Módulo 8: Trabajando con Bases de Datos

Módulo 9: Técnicas Avanzadas de PHP

Módulo 10: Frameworks de PHP y Mejores Prácticas

Módulo 11: Proyecto: Construyendo una Aplicación Web

© Copyright 2024. Todos los derechos reservados