Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/ProgramacionWeb/INAEM2021/Cookies/ejercicios»
De WikiEducator
(Página creada con «{{:Usuario:ManuelRomero/ProgramacionWeb/CertificadoWeb2021/Cookies/nav}}») |
|||
(4 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
{{:Usuario:ManuelRomero/ProgramacionWeb/CertificadoWeb2021/Cookies/nav}} | {{:Usuario:ManuelRomero/ProgramacionWeb/CertificadoWeb2021/Cookies/nav}} | ||
+ | ===[[Usuario:ManuelRomero/ProgramacionWeb/Cookies/ejercicios/ejercicio0|Ejercicio 0 : Establecer idioma ]]=== | ||
+ | <br /> | ||
+ | {{MRM_Actividad|Title=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: | ||
+ | <source lang=php> | ||
+ | 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; | ||
+ | } | ||
+ | </source> | ||
+ | Podré borrar la cookie, eliminándose la misma en el cliente y estableciendo la página en el idioma por defecto | ||
+ | |||
+ | }} | ||
+ | <br /> | ||
+ | ===[[Usuario:ManuelRomero/ProgramacionWeb/Cookies/ejercicios/ejercicio1|Ejercicio 1 : Control de accesos ]]=== | ||
+ | <br /> | ||
+ | {{MRM_Actividad|Title=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 | ||
+ | }} | ||
+ | <br /> | ||
+ | |||
+ | ===[[Usuario:ManuelRomero/ProgramacionWeb/Cookies/ejercicios/ejercicio2|Ejercicio 2 : Monitorizar accesos por usuario ]]=== | ||
+ | <br /> | ||
+ | {{MRM_Actividad|Title=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). | ||
+ | }} | ||
+ | <!-- | ||
+ | {{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"> | ||
+ | <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 /> | ||
+ | |||
+ | ===[[Usuario:ManuelRomero/ProgramacionWeb/Cookies/ejercicios/ejercicio3|Ejercicio 3 : Secciones de un periódico ]]=== | ||
+ | <br /> | ||
+ | {{MRM_Actividad|Title = 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: | ||
+ | #Noticia política. | ||
+ | #Noticia económica. | ||
+ | #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. | ||
+ | <!-- | ||
+ | {{plegable|hide|pendiente de solción funcionando| | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | |||
+ | $preferencia = $_COOKIE['preferencia']??"todas"; | ||
+ | |||
+ | $opcion = $_POST['submit']??null; | ||
+ | switch ($opcion){ | ||
+ | case "Establecer": | ||
+ | $opcion = $_POST['preferencia']; | ||
+ | setcookie('preferencia', $preferencia, time()+60); | ||
+ | |||
+ | break; | ||
+ | case "Eliminar preferencias": | ||
+ | setcookie('preferencia', $preferencia, time()-60); | ||
+ | brea; | ||
+ | } | ||
+ | |||
+ | ?> | ||
+ | <!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> | ||
+ | |||
+ | <fieldset> | ||
+ | <legend>Seleccion sección preferente</legend> | ||
+ | <form action="index.php" method="POST"> | ||
+ | <input type="radio" name="seccion" value="deportes" id="">Deportes<br /> | ||
+ | <input type="radio" name="seccion" value="economia" id="">Economía<br /> | ||
+ | <input type="radio" name="seccion" value="ciencia" id="">Ciencia<br /> | ||
+ | <input type="submit" value="Establecer" name="submit"> | ||
+ | <input type="submit" value="Eliminar preferencias" name="submit"> | ||
+ | |||
+ | |||
+ | </form> | ||
+ | |||
+ | </fieldset> | ||
+ | |||
+ | <h1>Noticias de un periódico</h1> | ||
+ | |||
+ | <?php if ($preferencia=="deportes" OR $preferencia=="todas"):?> | ||
+ | |||
+ | <div> | ||
+ | <h2>Noticias de Deportes</h2> | ||
+ | <pre> | ||
+ | 'Pelo Pincho' es un monstruo con cara de niño. | ||
+ | |||
+ | Alienígena insaciable. Tadej Pogacar, prodigio paranormal | ||
+ | , asombra por su versatilidad. El esloveno es capaz de | ||
+ | imponerse en la nieve de la Tirreno-Adriático, en el | ||
+ | 'sterrato' de la Strade Bianche o en la arena del | ||
+ | desierto del Tour de Emiratos. Escenarios diversos y | ||
+ | estrategias plurales, con ataques a falta de 40 | ||
+ | kilómetros de la meta, con acelerones en rampa a | ||
+ | 200 metros de la llegada o aplastantes ejercicios | ||
+ | cronometrados. Nadie es más completo. | ||
+ | cronometrados. Nadie es más completo. | ||
+ | </pre> | ||
+ | </div> | ||
+ | <?php endif; | ||
+ | if ($preferencia=="economia" OR $preferencia=="todas"):?> | ||
+ | |||
+ | <div> | ||
+ | <h2>Noticias de Econonía</h2> | ||
+ | <pre> | ||
+ | Un BCE peleando contra las subidas de | ||
+ | precios aboca a España a acordar un pacto | ||
+ | de rentas y un equilibrio entre la prudencia | ||
+ | fiscal y el apoyo a | ||
+ | los vulnerables en medio de la guerra de Ucrania | ||
+ | </pre> | ||
+ | </div> | ||
+ | <?php endif; | ||
+ | if ($preferencia=="ciencia" OR $preferencia=="todas"):?> | ||
+ | <div> | ||
+ | |||
+ | <h2>Noticias de Científicas</h2> | ||
+ | |||
+ | |||
+ | <pre> | ||
+ | Los seres humanos envejecen constantemente, | ||
+ | pero cada órgano lo hace a su propio ritmo, según u | ||
+ | n estudio de un equipo científico liderado por expertos | ||
+ | chinos publicado en la revista Cell Reports del que se | ||
+ | hace eco hoy la agencia oficial de noticias Xinhua. | ||
+ | </pre> | ||
+ | </div> | ||
+ | <?php endif;?> | ||
+ | </body> | ||
+ | </html> | ||
+ | |||
+ | </source> | ||
+ | }} | ||
+ | }} | ||
+ | --> | ||
+ | <br /> |
Última revisión de 17:50 17 feb 2023
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
|
Ejercicio 3 : Secciones de un periódico
{{MRM_Actividad|Title = 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:
- Noticia política.
- Noticia económica.
- 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.