Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/ProgramacionWeb/INAEM2021/Cookies/ejercicios»
De WikiEducator
Línea 44: | Línea 44: | ||
*Cada vez que introduzca un nombre la aplicación almacenará con una cookie la hora a la que ese usuario accedió a la aplicacioń y su nombre | *Cada vez que introduzca un nombre la aplicación almacenará con una cookie la hora a la que ese usuario accedió a la aplicacioń y su nombre | ||
*Además visualizará todos los accesos de ese usuario indicando las horas a las que lo hizo y un listado con el resto de usuarios que se conectando indicando el total de accesos de cada usuario (no la hora). | *Además visualizará todos los accesos de ese usuario indicando las horas a las que lo hizo y un listado con el resto de usuarios que se conectando indicando el total de accesos de cada usuario (no la hora). | ||
+ | }} | ||
+ | {{plegable|hide|Posible solución| | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | |||
+ | |||
+ | $usuarios = unserialize($_COOKIE['usuarios']) ?? []; | ||
+ | $opcion = $_POST['submit']??null; | ||
+ | |||
+ | switch ($opcion) { | ||
+ | case "Acceder": | ||
+ | $nombre = $_POST['nombre']; | ||
+ | $tiempo = time(); | ||
+ | $usuarios[$nombre][] = $tiempo; | ||
+ | $tiempo_cookie = time() + 3600; | ||
+ | break; | ||
+ | case "Borrar": | ||
+ | $tiempo_cookie = time() - 100; | ||
+ | $usuarios=[]; | ||
+ | } | ||
+ | |||
+ | |||
+ | setcookie('usuarios', serialize($usuarios), $tiempo_cookie); | ||
+ | |||
+ | ?> | ||
+ | <!doctype html> | ||
+ | <html lang="en"> | ||
+ | <head> | ||
+ | <meta charset="UTF-8"> | ||
+ | <meta name="viewport" | ||
+ | content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> | ||
+ | <meta http-equiv="X-UA-Compatible" content="ie=edge"> | ||
+ | <title>Document</title> | ||
+ | </head> | ||
+ | <body> | ||
+ | <form action="index.php" method="post"> | ||
+ | Nombre <input type="text" name="nombre" id=""><br/> | ||
+ | <input type="submit" value="Acceder" name="submit"> | ||
+ | <input type="submit" value="Borrar" name="submit"> | ||
+ | </form> | ||
+ | |||
+ | <fieldset> | ||
+ | <legend>Listado de accesos</legend> | ||
+ | <?php | ||
+ | foreach ($usuarios as $usuario => $accesos) { | ||
+ | echo "<h1>Accesos de $usuario</h1>"; | ||
+ | foreach ($accesos as $acceso => $tiempo) | ||
+ | echo "<h3>\t\t\tAcceso $acceso " . date("D-m-Y H:i:s", $tiempo) . "</h3>"; | ||
+ | echo "<hr />"; | ||
+ | |||
+ | } | ||
+ | |||
+ | ?> | ||
+ | </fieldset> | ||
+ | |||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | </source> | ||
+ | |||
}} | }} | ||
<br /> | <br /> |
Revisión de 02:06 15 mar 2022
Ejercicio 0 : Establecer idioma
switch ($idioma){ case "es": $saludo="Hola. bienvenido a este sitio web"; break; case "fr": $saludo="Bonjour. bienvenue sur ce site"; break; case "en": $saludo="Hello. welcome to this website"; break; } Podré borrar la cookie, eliminándose la misma en el cliente y estableciendo la página en el idioma por defecto
|
Ejercicio 1 : Control de accesos
|
Ejercicio 2 : Monitorizar accesos por usuario
|
Posible solución |
---|
<?php $usuarios = unserialize($_COOKIE['usuarios']) ?? []; $opcion = $_POST['submit']??null; switch ($opcion) { case "Acceder": $nombre = $_POST['nombre']; $tiempo = time(); $usuarios[$nombre][] = $tiempo; $tiempo_cookie = time() + 3600; break; case "Borrar": $tiempo_cookie = time() - 100; $usuarios=[]; } setcookie('usuarios', serialize($usuarios), $tiempo_cookie); ?> <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <form action="index.php" method="post"> Nombre <input type="text" name="nombre" id=""><br/> <input type="submit" value="Acceder" name="submit"> <input type="submit" value="Borrar" name="submit"> </form> <fieldset> <legend>Listado de accesos</legend> <?php foreach ($usuarios as $usuario => $accesos) { echo "<h1>Accesos de $usuario</h1>"; foreach ($accesos as $acceso => $tiempo) echo "<h3>\t\t\tAcceso $acceso " . date("D-m-Y H:i:s", $tiempo) . "</h3>"; echo "<hr />"; } ?> </fieldset> </body> </html> |
Ejercicio 3 : Secciones de un periódico
|