Las cookies son pequeños archivos de texto que se almacenan en el navegador del cliente. Son útiles para guardar información específica del usuario y sus preferencias entre diferentes visitas al sitio web.
<?php
// Crear una cookie que expira en 30 días
$nombre = "usuario";
$valor = "Juan";
$expiracion = time() + (86400 * 30); // 86400 = 1 día
setcookie($nombre, $valor, $expiracion, "/");
// Leer una cookie
if (isset($_COOKIE['usuario'])) {
echo "¡Bienvenido de nuevo, " . $_COOKIE['usuario'] . "!";
}
?>
Las cookies deben establecerse antes de enviar cualquier salida al navegador. Es una buena práctica colocar las llamadas a setcookie() al inicio del script.
Las sesiones proporcionan una manera de preservar datos entre múltiples páginas durante la visita de un usuario. A diferencia de las cookies, los datos de sesión se almacenan en el servidor.
<?php
// Iniciar sesión
session_start();
// Almacenar datos en la sesión
$_SESSION['usuario_id'] = 123;
$_SESSION['nombre'] = "Juan Pérez";
$_SESSION['logueado'] = true;
// Verificar si el usuario está logueado
if (isset($_SESSION['logueado']) && $_SESSION['logueado'] === true) {
echo "Usuario autenticado: " . $_SESSION['nombre'];
}
// Cerrar sesión
// session_destroy();
?>
A continuación, veremos un ejemplo básico de cómo implementar un sistema de login usando sesiones:
<?php
session_start();
// Verificar si el formulario fue enviado
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$usuario = $_POST['usuario'] ?? '';
$password = $_POST['password'] ?? '';
// En un caso real, verificarías contra una base de datos
if ($usuario === 'admin' && $password === '123456') {
$_SESSION['logueado'] = true;
$_SESSION['usuario'] = $usuario;
header('Location: dashboard.php');
exit;
} else {
$error = 'Usuario o contraseña incorrectos';
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<form method="post">
<input type="text" name="usuario" placeholder="Usuario" required><br>
<input type="password" name="password" placeholder="Contraseña" required><br>
<button type="submit">Iniciar Sesión</button>
</form>
</body>
</html>
Crea un sistema simple de preferencias de usuario usando cookies que:
<?php
// Tu código aquí
// Sugerencia: Usa setcookie() para cada preferencia
// Verifica si existen cookies antes de mostrar valores por defecto
?>
<form method="post">
<select name="tema">
<option value="claro">Tema Claro</option>
<option value="oscuro">Tema Oscuro</option>
</select>
<select name="idioma">
<option value="es">Español</option>
<option value="en">English</option>
</select>
<button type="submit">Guardar Preferencias</button>
</form>