Colección de ejercicios prácticos sobre persistencia de datos en PHP.
Este script utiliza una Cookie para recordar cuántas veces ha visitado un usuario la página. Al no especificar tiempo de expiración (o poner uno muy largo), el dato persiste aunque se cierre el navegador.
<?php
// 1. Verificamos si ya existe la cookie 'visitas'
if (isset($_COOKIE['visitas'])) {
// Si existe, recuperamos el valor y sumamos 1
$contador = $_COOKIE['visitas'] + 1;
} else {
// Si no existe, es la primera visita
$contador = 1;
}
// 2. Guardamos la cookie actualizada (Expira en 1 año)
// setcookie(nombre, valor, expiración)
setcookie('visitas', $contador, time() + (365 * 24 * 60 * 60));
// 3. Obtenemos fecha y hora actual
$fecha = date("d-m-Y");
$hora = date("H:i:s");
?>
<!-- Vista HTML -->
<h3>Contador de visitas</h3>
<p>Hola, hoy es <?php echo $fecha; ?> y son las <?php echo $hora; ?>.</p>
<p>Has accedido a esta página <strong><?php echo $contador; ?></strong> veces.</p>
Modificación del ejercicio anterior para que la cookie tenga una vida útil de solo 1 minuto. Si el usuario tarda más de 60 segundos en recargar, el contador volverá a 1.
<?php
if (isset($_COOKIE['visitas_temporales'])) {
$contador = $_COOKIE['visitas_temporales'] + 1;
} else {
$contador = 1;
}
// CAMBIO CLAVE: time() + 60 (60 segundos de vida)
setcookie('visitas_temporales', $contador, time() + 60);
echo "Visitas en el último minuto: " . $contador;
?>
Sistema de login que redirige a diferentes páginas según el usuario:
<!DOCTYPE html>
<html lang="es">
<head><title>Login</title></head>
<body>
<h2>Acceso de Usuarios</h2>
<!-- Muestra error si existe en la URL -->
<?php if(isset($_GET['error'])) echo "<p style='color:red'>Credenciales incorrectas</p>"; ?>
<form action="validar.php" method="POST">
Usuario: <input type="text" name="usuario"><br>
Clave: <input type="password" name="password"><br>
<button type="submit">Entrar</button>
</form>
</body>
</html>
<?php
session_start();
$user = $_POST['usuario'] ?? '';
$pass = $_POST['password'] ?? '';
// Credenciales hardcodeadas para el ejemplo
if ($user == 'admin' && $pass == '123456') {
$_SESSION['usuario'] = 'admin';
header("Location: deportes.php");
} elseif ($user == 'user' && $pass == '123456') {
$_SESSION['usuario'] = 'user';
header("Location: peliculas.php");
} else {
// Si falla, volver al login con error
header("Location: login.php?error=1");
}
?>
Ejemplo de cómo proteger una página para que solo se pueda entrar si se ha iniciado sesión.
<?php
session_start();
// SEGURIDAD: Si no hay usuario en sesión, echarlo fuera
if (!isset($_SESSION['usuario'])) {
die("Acceso denegado. <a href='login.php'>Iniciar Sesión</a>");
}
?>
<h1>Sección de Deportes</h1>
<p>Bienvenido, <?php echo $_SESSION['usuario']; ?></p>
<ul>
<li>Fútbol</li>
<li>Baloncesto</li>
<li>Tenis</li>
</ul>
<a href="logout.php">Cerrar Sesión</a>
<?php
session_start();
session_destroy(); // Destruye la sesión
header("Location: login.php"); // Redirige al inicio
?>