Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/ProgramacionWeb/INAEM2021/Cookies/ejercicios»

De WikiEducator
Saltar a: navegación, buscar
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 01:06 15 mar 2022



Ejercicio 0 : Establecer idioma



Icon activity.jpg
Establecer idioma
  • Establecemos un idioma y se adapta un saludo' a ese idioma
  • El idioma se quedará guardado en una cooki, por lo que futuras conexiones de ese servidor se realizarán en el último idioma seleccionado
  • Los idiomas serán frances, inglés y español
  • Solo se adaptará el saludo, tomando los siguientes valores:
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



Icon activity.jpg
Controlando accesos
  • Tenemos una página con formulario para acceder.
  • El usuario puede intentar acceder hasta tres veces seguidas a un sitio web de forma incorrecta
  • Para acceder ha de insertar igual password que usuario (mismo valor)
  • Para controlar los acceso anotaremos en cookies los intentos que lleva (Claramente es un ejercicio forzado, no podría ser en un caso real)
  • Si lleva 3 accesos incorrectos, mostraremos un mensaje de que el acceso ha sido bloqueado y dejaremos un botón para reiniciar los intentos.
  • Una vez que acceda de forma correcta, volverá a tener hasta 3 intentos para la próxima vez que acceda
  • Se mantiene el bloqueo durante 1 minuto.
  • Durante el tiempo de bloqueo si intento acceder me dice que estoy bloqueado y el tiempo que me quda de bloque en segundos




Ejercicio 2 : Monitorizar accesos por usuario



Icon activity.jpg
Horas de acceso por usuario
  • Realiza una aplicación con un formulario con un único input que sea 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).




Ejercicio 3 : Secciones de un periódico



Icon activity.jpg
Secciones de un periódico
  • Crea una pagina que simule ser la de un periódico. La misma debe permitir configurar que tipo de titular deseamos que aparezca al visitarla, pudiendo ser:
  1. Noticia política.
  2. Noticia económica.
  3. Noticia deportiva.
  • Mediante tres objetos de tipo radio, permitir seleccionar que titular debe mostrar el periódico.
  • Almacenar en una cookie el tipo de titutar que desea ver el cliente.
  • La primera vez que visita el sitio deben aparecer los tres titulares.