Diferencia entre revisiones de «Usuario:ManuelRomero/NewPHP/B2T1/formularios/ejercicios»

De WikiEducator
Saltar a: navegación, buscar
 
(38 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
 
{{:Usuario:ManuelRomero/dwes/B2T1/formularios/nav}}
 
{{:Usuario:ManuelRomero/dwes/B2T1/formularios/nav}}
<br/>
+
__NOTOC__
{{Actividad|Title=Ejercicios de clase|
+
* [[Usuario:ManuelRomero/PHP/Ejercicios/ejercicio1| Contador de accesos]]
+
* [[Usuario:ManuelRomero/PHP/Ejercicios/ejercicio2| Accesos por usuario]]
+
* [[Usuario:ManuelRomero/PHP/Ejercicios/ejercicio3| Recorrer un array complejo]]
+
}}
+
 
=== Contador de accesos===
 
=== Contador de accesos===
 
<br />
 
<br />
 +
 +
{{MRM_Actividad|Title=Tabla de multiplicar|
 +
*Un programa en el que introduzca un número
 +
*Me mostrará la tabla de multiplicar de ese número
 +
*En caso de que no sea número me lo indicará y me mostrará la tabla del 0
 +
}}
 +
 +
{{MRM_Actividad|Title=Conversor numérico|
 +
*Un programa en el que introduzca un número
 +
*El número lo lee en decimal
 +
*Me mostrará la conversión a hexadecimal, octal y binario
 +
*Los mostrará en una tabla
 +
*En caso de que no sea número me lo indicará y me mostrará 0 en todos los valores
 +
}}
 +
 +
{{MRM_Actividad|Title=Mostrar formulario o datos de acceso|
 +
*Realiza un programa que se muestre o bien el formulario o
 +
*bien un mensaje de bienvenida con los datos del usuario
 +
*El usuario y password han de coincidir
 +
*En caso de que  no coincidan se mostrar junto con el formulario un msj de error
 +
}}
 +
 +
 +
*A continuación vamos a ver como usar y leer datos de un formulario.
 +
{{MRM_Actividad|Title = Formulario|
 +
Realiza un formulario donde pidamos al usuario datos para confeccionar una ficha
 +
*Nombre
 +
*Apellidos
 +
*Dirección
 +
*Fecha de nacimiento
 +
*DNI
 +
*Edad
 +
*Idiomas que habla de entre 4 idiomas (Checkbox)
 +
*Si es hombre, mujer o no quiere informar de ello (radio)
 +
*Dirección de correo electrónico.
 +
*Estudios realizados entre ESO, BACHILLER, CICLO FORMATIVO, GRADO UNIVERSITARIO (select)
 +
}}
 +
 +
 +
{{MRM_Actividad|Title=Crear un sitio web|
 +
*Realiza un programa en php que solicite al usuario una serie de parámetros
 +
*Con esos parámetros se construirá una página web según se especifica
 +
[[Archivo:p3_php.png]]
 +
*Donde
 +
* '''A''': altura de la cabecera
 +
<source lang=html5>
 +
  <div style=heigth:A>TITULO DE LA CABECERA</div>
 +
</source>
 +
* '''B''': altura del contenido
 +
<source lang=html5>
 +
  <div style=heigth:B> esto es el contenido (menú y contenido)</div>
 +
</source>
 +
* '''C''': ancho de la parte derecha del contenido
 +
<source lang=html5>
 +
  <div style=width:C>TITULO DE LA CABECERA</div>
 +
</source>
 +
* '''D''': ancho de la parte izquierda del menu
 +
<source lang=html5>
 +
  <div style=width:D>TITULO DE LA CABECERA</div>
 +
</source>
 +
 +
 +
}}
 +
 +
 +
 
{{Actividad|
 
{{Actividad|
 
*Con lo que hemos visto hasta ahora (sin usar cookies, ni sesiones, ni ficheros)
 
*Con lo que hemos visto hasta ahora (sin usar cookies, ni sesiones, ni ficheros)
 
Haz un programa que cuente cuantos accesos hacemos a una página en una misma conexión}}
 
Haz un programa que cuente cuantos accesos hacemos a una página en una misma conexión}}
 +
<!--
 +
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/formularios/Ejercicios/Ejercicio1 | Solución]]</font>
 +
-->
 +
<hr />
 +
{{
 +
Actividad|
 +
*Realiza un programa con una caja de texto y mostraremos el resultado de pasar ese contenido por las funciones '''''htmlspqcialchars()''''' y '''''strip_tag()'''''
 +
*Añadimos un segundo campo de texto para poder pasar un segundo parámetro a la función strip_tag y ver su resultado
 +
*La pequeña aplicación mantendrá el último texto introducido para poder trabajar a partir de él y modificar
 +
}}
  
*Usa campos ocultos para pasar información
+
===Contador de accesos con nombre===
====Planteando una posible solución ====
+
Se trata de modificar el ejercicio uno.
La idea es la siguiente
+
{{Actividad|
*Cada vez que yo cargo una página php, el servido la ejecuta como si fuera la primera vez que la solicito.
+
;En este caso tendremos un formulario con un campo de texto y un botón submit
*No hay memoria entre una llamada y otra.
+
#Cada vez que se inserte un nombre en el campo de texto y se haga click en el submit, se contabilizará como que el usuario cuyo nombre hemos insertado se ha conectado una vez.  
*Las solicitudes al servidor son solicitudes usando el protocolo http.
+
##Si el campo de texto está vacío no se contabilizará un usuario llamado "vacío".
*Este hecho deja patente y clara la idea de que '''''http''''' es un protocolo sin estado.
+
#Futuras conexiones del mismo usuario incrementarán el número de accesos de ese usuario
*En el ejemplo vemos como cada acceso es como si fuera el primero. Cada vez que se ejecuta el script en el servidor es como se se ejecuta la primera vez
+
#Futuras conexiones de otro usuario contabilizarán las conexiones del nuevo formulario
[[Archivo:EjerccioAcceso1.png]]
+
#En todo momento la aplicación nos mostrará un listado con todas las conexiones de cada usuario.
*El siguiente código no tiene sentido
+
}}
<source lang=php>
+
....
+
$acceso ++
+
...
+
echo "Actualmente llevamos $acceso accesos";
+
</source>
+
*Cada vez que se ejecute $accesos valdrá 0.
+
SOLUCION
+
*Debemos mantener un histórico de cada acceso
+
*El servidor lee la información que le envía el cliente de los input de su formulario
+
*Debemos ir poniendo en un campo oculto esa información y que el servidor
+
#Lea ese valor (los accesos que lleva, al principo valdrá 0)
+
#La incremente en una unidad
+
#La vuelva a enviar al cliente, y así el cliente la próxima vez se la envía al servidor (Un efecto de pelota contra la pared)
+
[[Archivo:EjerccioAcceso2.png]]
+
====Un posible código====
+
;Código
+
<source lang=php>
+
<!DOCTYPE html>
+
<html>
+
    <head>
+
        <meta charset="ISO-8859-1">
+
        <title></title>
+
    </head>
+
    <body>
+
        <?php
+
  
        //Esta parte del código solo quiero que se ejecute
+
===Texto en idiomas===
        //Si se ha cargado el formulario
+
{{Actividad|
        if ( isset($_POST['enviar'] ) ) {
+
;Haz un programa donde aparezca un formulario que pida nombre, passs y un botón de acceder.
            $accesos = $_POST[ 'accesos' ];
+
*Además tendré tres radio buttons para seleccionar el idioma (Castellano, Francés o Inglés).
        }else
+
*Tendré otro botón submit para seleccionar el idioma
            $accesos=0;
+
*Si cambio el idioma cambiarán las palabras al idioma seleccionado
        //Visualizo los accesos si los hay
+
*Si accedo, voy a una página donde podrá una bienvenida en el idioma seleccionado
        echo "Accesos : $accesos";
+
}}
        $accesos ++;
+
  
        ?>
+
#Cada vez que se inserte un nombre en el campo de texto y se haga click en el submit, se contabilizará como que el usuario cuyo nombre hemos insertado se ha conectado una vez.
        <form action="." method=POST>
+
##Si el campo de texto está vacío no se contabilizará un usuario llamado "vacío".
            <input type="submit" value="Acceder al sitio web" name="enviar" />
+
#Futuras conexiones del mismo usuario incrementarán el número de accesos de ese usuario
            <input type="hidden" value="<?php echo $accesos ?>" name="accesos" />
+
#Futuras conexiones de otro usuario contabilizarán las conexiones del nuevo formulario
        </form>
+
#En todo momento la aplicación nos mostrará un listado con todas las conexiones de cada usuario.
    </body>
+
}}
</html>
+
<!--
</source>
+
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/formularios/Ejercicios/Ejercicio2 | Solución]]</font>
 +
-->
 +
 
 +
 
 +
<hr />
 +
<!--
 +
<hr />
 +
{{MRM_Actividad|Title=Juego de adivinar números|
 +
*Haz un programa que tu piensas un número de 0 al 1024 y el programa te lo adivina
 +
*El programa te preguntará si es mayor menor o acertado
 +
*Deberá de adivinarlo en un máximo de 10 intentos}}
 +
<!--
 +
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/formularios/Ejercicios/Ejercicio3 | Solución]]</font>
 +
-->
 +
<hr />

Última revisión de 18:58 21 oct 2019



Contador de accesos




Icon activity.jpg
Tabla de multiplicar
  • Un programa en el que introduzca un número
  • Me mostrará la tabla de multiplicar de ese número
  • En caso de que no sea número me lo indicará y me mostrará la tabla del 0





Icon activity.jpg
Conversor numérico
  • Un programa en el que introduzca un número
  • El número lo lee en decimal
  • Me mostrará la conversión a hexadecimal, octal y binario
  • Los mostrará en una tabla
  • En caso de que no sea número me lo indicará y me mostrará 0 en todos los valores





Icon activity.jpg
Mostrar formulario o datos de acceso
  • Realiza un programa que se muestre o bien el formulario o
  • bien un mensaje de bienvenida con los datos del usuario
  • El usuario y password han de coincidir
  • En caso de que no coincidan se mostrar junto con el formulario un msj de error




  • A continuación vamos a ver como usar y leer datos de un formulario.


Icon activity.jpg
Formulario

Realiza un formulario donde pidamos al usuario datos para confeccionar una ficha

  • Nombre
  • Apellidos
  • Dirección
  • Fecha de nacimiento
  • DNI
  • Edad
  • Idiomas que habla de entre 4 idiomas (Checkbox)
  • Si es hombre, mujer o no quiere informar de ello (radio)
  • Dirección de correo electrónico.
  • Estudios realizados entre ESO, BACHILLER, CICLO FORMATIVO, GRADO UNIVERSITARIO (select)






Icon activity.jpg
Crear un sitio web
  • Realiza un programa en php que solicite al usuario una serie de parámetros
  • Con esos parámetros se construirá una página web según se especifica

P3 php.png

  • Donde
  • A: altura de la cabecera
  <div style=heigth:A>TITULO DE LA CABECERA</div>
  • B: altura del contenido
  <div style=heigth:B> esto es el contenido (menú y contenido)</div>
  • C: ancho de la parte derecha del contenido
  <div style=width:C>TITULO DE LA CABECERA</div>
  • D: ancho de la parte izquierda del menu
  <div style=width:D>TITULO DE LA CABECERA</div>







Icon activity.jpg

Actividad

  • Con lo que hemos visto hasta ahora (sin usar cookies, ni sesiones, ni ficheros)

Haz un programa que cuente cuantos accesos hacemos a una página en una misma conexión





Icon activity.jpg

Actividad

  • Realiza un programa con una caja de texto y mostraremos el resultado de pasar ese contenido por las funciones htmlspqcialchars() y strip_tag()
  • Añadimos un segundo campo de texto para poder pasar un segundo parámetro a la función strip_tag y ver su resultado
  • La pequeña aplicación mantendrá el último texto introducido para poder trabajar a partir de él y modificar





Contador de accesos con nombre

Se trata de modificar el ejercicio uno.


Icon activity.jpg

Actividad

En este caso tendremos un formulario con un campo de texto y un botón submit
  1. Cada vez que se inserte un nombre en el campo de texto y se haga click en el submit, se contabilizará como que el usuario cuyo nombre hemos insertado se ha conectado una vez.
    1. Si el campo de texto está vacío no se contabilizará un usuario llamado "vacío".
  2. Futuras conexiones del mismo usuario incrementarán el número de accesos de ese usuario
  3. Futuras conexiones de otro usuario contabilizarán las conexiones del nuevo formulario
  4. En todo momento la aplicación nos mostrará un listado con todas las conexiones de cada usuario.





Texto en idiomas

Icon activity.jpg

Actividad

Haz un programa donde aparezca un formulario que pida nombre, passs y un botón de acceder.
  • Además tendré tres radio buttons para seleccionar el idioma (Castellano, Francés o Inglés).
  • Tendré otro botón submit para seleccionar el idioma
  • Si cambio el idioma cambiarán las palabras al idioma seleccionado
  • Si accedo, voy a una página donde podrá una bienvenida en el idioma seleccionado





  1. Cada vez que se inserte un nombre en el campo de texto y se haga click en el submit, se contabilizará como que el usuario cuyo nombre hemos insertado se ha conectado una vez.
    1. Si el campo de texto está vacío no se contabilizará un usuario llamado "vacío".
  2. Futuras conexiones del mismo usuario incrementarán el número de accesos de ese usuario
  3. Futuras conexiones de otro usuario contabilizarán las conexiones del nuevo formulario
  4. En todo momento la aplicación nos mostrará un listado con todas las conexiones de cada usuario.

}}