Lecciones impartidas en clase (curso 2022/23)

Introducción

Esta lección contiene un índice de las lecciones que impartí en clase durante el primer trimestre (y parte del segundo) del curso 2022/23, así como los ejercicios que realizaron los alumnos.

Este índice se basa en las guías de estudio que ofrecí a mis alumnos de la modalidad semipresencial en la plataforma Moodle de la Conselleria de Educación. El trabajo propuesto a estos alumnos fue el mismo que siguieron en clase mis alumnos de la modalidad presencial, aunque la distribución temporal no fuera exactamente la misma.

La información se ofrece distribuida en semanas, ya que es así como estaba organizada la modalidad semipresencial.

Es importante tener en cuenta que este índice enlaza a las lecciones actuales, no a las lecciones tal y como se encontraban en el curso 2022/23, y en algunos casos estas lecciones y ejercicios pueden haberse reducido o ampliado de forma significativa. Si algunos apartados no enlazan a ninguna lección, es porque por alguna razón he eliminado esa lección de los apuntes actuales.

También se pueden consultar las lecciones impartidas en el curso anterior, 2021/22 y las lecciones impartidas en el curso siguiente, 2023/24.

IAW Semana S01: del 12/09/22 al 18/09/22

Presentación del curso Programación web en PHP

  1. Leed la lección Presentación de los apuntes.

¿Qué es PHP?

  1. Leed la lección Lenguajes de programación.
  2. Leed la lección Qué es PHP.

Instalación de XAMPP

  1. Leed la lección Qué es XAMPP.
  2. Leed la lección Instalación de XAMPP en Windows.
  3. Descargad XAMPP 8.1.6 (165 MB).
  4. Instalad XAMPP 8.1.6 de acuerdo con la lección Instalación de XAMPP en Windows.

    Nota: Una vez instalado XAMPP, haced una copia de seguridad de la carpeta /xampp/apache/conf/ y de los archivos /xampp/php/php.ini y /xampp/phpMyAdmin/config.inc.php por si necesitáis recuperarlos si cometéis errores al configurar XAMPP.

Configuración de Apache y PHP

  1. Leed la lección Configuración de Apache y PHP.

    En esta lección se tratan dos puntos muy importantes:

    1. los Alias de Apache, que utilizaremos durante todo el curso.
    2. las opciones de configuración de PHP, que deben modificarse como se indica en la lección para que el comportamiento sea el mismo en los ordenadores de todos los alumnos.
  2. Configurad php.ini de acuerdo con la lección Configuración de Apache y PHP.
  3. Para familiarizaros con la creación de Alias en Apache, haced los ejercicios Apache (1) 1 y 2.
  4. En la página de soluciones podéis consultar soluciones de los ejercicios.
  5. [Opcional] Para ver más opciones de configuración de Apache, haced los ejercicios Apache (2).

Visual Studio Code

Este curso vamos a utilizar Visual Studio Code (VSCode) como editor para PHP. A lo largo del curso iré completando y ampliando estas lecciones dedicadas a Visual Studio Code

IAW Semana S02: del 19/09/22 al 25/09/22

Visual Studio Code

  1. Para familiarizaros con la configuración de VSCode y con la creación de Alias en Apache, haced los ejercicios Apache 3 y 4.
  2. En la página de soluciones podéis consultar soluciones de los ejercicios.
  3. El ejercicio Apache 5 corresponde a la configuración que recomiendo a los alumnos para tener tanto en clase como en casa.

Comprobación de la configuración de Visual Studio Code, Apache y PHP

  1. Haced los ejercicios Puesta en marcha de VScode, descomprimiendo el fichero de plantillas en la carpeta ejercicios.

    Estos ejercicios están pensados para comprobar que se ha hecho correctamente la configuración tanto de Visual Studio Code como de Apache y PHP. Si algún ejercicio no da el resultado indicado

Cómo hacer los ejercicios (1)

  1. Leed la lección Cómo realizar los ejercicios
  2. Leed la lección Ejemplos de resolución de ejercicios - Sin formularios

Primeras páginas en PHP

  1. Leed la lección Primeras páginas en PHP
  2. Leed la lección Cadenas
  3. Leed la lección Guía de estilo.

    El estilo que se recomienda en esta lección es el que tenéis que utilizar en vuestros programas.

  4. Haced los ejercicios 1 a 3 de Primeras páginas.

    Estos ejercicios se pueden hacer de muchas maneras, incluyendo más o menos líneas en cada uno de los fragmentos PHP o HTML. Las soluciones propuestas son un ejemplo de solución.

  5. En la página de soluciones podéis consultar soluciones de los ejercicios.
  6. Haced los ejercicios 4 a 8 de Primeras páginas.

    En estos ejercicios se necesita la función rand() que genera números aleatorios que se comenta en la lección Operaciones aritméticas (apartado Números aleatorios).

  7. En la página de soluciones podéis consultar soluciones de los ejercicios.

En la primera parte del curso de PHP vamos a hacer un pequeño repaso general de PHP, tocando los temas vistos el año pasado en el módulo LMSGI: variables, operaciones, if ... else .. y for ... además de las matrices, un tipo de variable que permite almacenar varios datos distintos en una sola variable. Esta parte la he llamado PHP, sin formularios porque las páginas no contienen formularios, por lo que el usuario no puede proporcionar información a los programas. Para que cada vez que se ejecuten los programas los resultados sean distintos, recurriremos a números aleatorios.

Variables

  1. Leed la lección Variables 1

    Esta semana no se realizan ejercicios con variables, pero quiero que leáis esa primera lección.

IAW Semana S03: del 26/09/22 al 02/10/22

Variables y operaciones

  1. Leed los apartados de la lección Tipos de variables: enteras y decimales.
  2. Leed la lección Operaciones aritméticas.
  3. Haced los ejercicios Variables 1.
    1. En estos ejercicios se puede utilizar la función rand() que genera números aleatorios y que se comenta en el apartado Números aleatorios de la lección Operaciones aritméticas.
    2. Los valores aleatorios se utilizan en varios lugares de la página web, por lo que se deben guardar en una variable y después utilizar la variable el número de veces necesario. En algunos ejercicios también es necesario hacer cálculos adicionales con esas variables.
    3. Los dados y las cartas que aparecen en algún ejercicio son imágenes SVG que están incluidas en las plantillas de los ejercicios. El resto de imágenes SVG están incluidas en la propia página web. Recordad que debéis mirar el código fuente del ejemplo de ejercicio.
    4. Los ejercicios 1 al 5 son fáciles, porque en realidad los programas sólo tienen que generar algunos valores numéricos del código SVG.
    5. Los ejercicios 1 al 14 son más difíciles porque se necesita expresar fórmulas para obtener algunos valores del dibujo. En unos ejercicios las fórmulas pueden deducirse del propio dibujo (en la ayuda que acompaña a los ejercicios hay dibujos explicativos) o se pueden deducir por ser fórmulas de sucesiones aritméticas (del estilo de las que vimos en Python en LMSGI el curso pasado, Teoría y ejercicios tipo test).
  4. En la página de soluciones podéis consultar soluciones de los ejercicios.

IAW Semana S04: del 03/10/22 al 09/10/22

Estructuras de control: Sentencia condicional if ... elseif ... else ...

  1. Leed el apartado Variables lógicas de la lección Tipos de variables (solamente el apartado Variables lógicas).
  2. Leed la lección Operaciones lógicas.
  3. Leed los dos primeros apartados (Bloques de instrucciones e if ... elseif ... else ...) de la lección Estructuras de control.
  4. Leed la lección Sentencia condicional if ... elseif ... else ....
  5. Leed la lección HTML Tablas (apuntes HTML/CSS).

    En los ejercicios de esta semana aparecen tablas HTML, así que conviene que conozcáis las etiquetas que las definen. Básicamente, una tabla (<table>) está formada por filas (<tr>) que a su vez están formadas por celdas (<td>), aunque suelen aparecer más etiquetas que se explican en la lección.

  6. Haced los ejercicios if ... else ... (1). Los ejercicios 1, 2 y 3 son fáciles. El 4 y el 5 son más difíciles. Antes de hacer los ejercicios 4 y 5, mirad la solución propuesta del ejercicio 3, en la que se comenta un enfoque del ejercicio 3 que podéis aplicar al ejercicio 5.
  7. En la página de soluciones podéis consultar soluciones de los ejercicios.
  8. Podéis hacer también los ejercicios extra if ... else ... (1). Son cuatro ejercicios que puse en exámenes de años anteriores (por eso no hay soluciones disponibles).

    En estos ejercicios se utilizan entidades numéricas para mostrar emojis, como vimos en el módulo Lenguaje de Marcas. Para refrescar la memoria podéis releer las lecciones UTF-8 y Entidades(en los apuntes HTML/CSS).

Estructuras de control: Bucle for

PHP dispone de varias estructuras de control para definir bucles. Empezaremos por la estructura for y después de ver matrices veremos la estructura foreach. Tened en cuenta que la estructura for de Python que vimos en el módulo de Lenguaje de Marcas se parece más a la estructura foreach de PHP que a la estructura for de PHP.

  1. Leed la lección Bucle for.
  2. Repasad el apartado colores HWB de la lección Colores de los apuntes de HTML/CSS.

    Tradicionalmente los colores en las páginas web se han definido mediante nombres de colores o códigos RGB, pero los navegadores actuales permiten usar códigos HWB que son más intuitivos que los códigos RGB. En esta lección se explica cómo se expresan los colores mediante códigos HWB. El año pasado, en el módulo de Lenguaje de marcas, trabajamos con códigos HSL, muy parecidos a HWB pero algo menos intuitivos. Como este año todos los navegadores ya admiten HWB, he decidido pasar a este formato.

  3. Haced los ejercicios 1 a 5 de Bucle for (1).

    En estos primeros ejercicios, es fácil identificar el papel de los bucles porque la página contiene elementos html repetidos que son precisamente los que tienen que generar los bucles.

  4. Leed la lección Testigos, contadores y acumuladores.
  5. Haced los ejercicios 11 a 15 de Bucle for (1).

    Estos ejercicios son un poco más difíciles porque el papel de los bucles es también el cálculo de contadores y acumuladores, lo que no es tan obvio como la generación de elementos html repetidos.

  6. En la página de soluciones podéis consultar soluciones de los ejercicios.

IAW Semana S05: del 10/10/22 al 16/10/22

Matrices

  1. Leed la lección Matrices.

    Las matrices son un tipo de variable muy flexible que utilizaremos mucho a partir de ahora. En los ejercicios de esta semana, los índices de las matrices son numéricos y correlativos. En las próximas semanas trabajaremos con matrices asociativas, es decir, de índices no numéricos o no correlativos.

  2. Haced los ejercicios del primer apartado ("Sin bucles") de Matrices (1).
    • En estos ejercicios no hace falta utilizar bucles ni if ... else ..., pero sí que hay que definir una o varias matrices.
  3. En la página de soluciones de ejercicios Matrices (1) podéis consultar las soluciones de los ejercicios. En la página de soluciones podéis descargar las soluciones de los ejercicios.

Estructuras de control: Bucle foreach

  1. Leed las lecciones Resumen bucle foreach y Bucle foreach

    Los bucles foreach permiten recorrer estructuras (matrices, recursos, etc) sin preocuparse por el número de elementos, lo que los hace muy útiles cuando se deben recorrer estructuras no generadas por el propio programa, como información proveniente de formularios o consultas a bases de datos.

  2. Haced los ejercicios del segundo apartado ("Con bucles") de Matrices (1).
    • En estos ejercicios se deben utilizar bucles, tanto for como foreach (aunque en varios se podrían utilizar solamente bucles for, por supuesto). La idea es la siguiente:
      • En cada ejercicio hay que crear una o varias matrices para almacenar los datos
      • Para generar las matrices, se deben utilizar bucles for.
      • Para recorrer las matrices creadas (por ejemplo para mostrarlas), se aconseja utilizar bucles foreach. Se podrían utilizar también bucles for, pero los bucles foreach son más sencillos.
      • Para modificar las matrices o para crear nuevas matrices a partir de otras, se suele tener que utilizar bucles for, pero en bastantes casos se pueden utilizar bucles foreach. En caso de que la situación lo permita, se aconseja utilizar bucles foreach.
  3. En la página de soluciones de ejercicios Matrices (1) podéis consultar las soluciones de los ejercicios. En la página de soluciones podéis descargar las soluciones de los ejercicios.

Funciones de matrices

  1. Leed la lección Funciones de matrices.

    Esta lección comenta algunas de las funciones disponibles en PHP para trabajar con matrices. Estas funciones simplifican mucho la manipulación de matrices.

  2. Haced los ejercicios Matrices (3): Funciones.
    • Cada ejercicio ilustra el funcionamiento de una o varias de las funciones de matrices disponibles en PHP.
    • Estos ejercicios se pueden hacer también sin recurrir a las funciones, pero en algunos casos (por ejemplo, cuando se debe ordenar una matriz) el ejercicio sería bastante más difícil.
  3. En la página de soluciones de ejercicios Matrices (3) podéis consultar las soluciones de los ejercicios. En la página de soluciones podéis descargar las soluciones de los ejercicios.

[opcional] Ejercicios de examen

Normalmente, el primer ejercicio de examen consiste en la realización de una página sin formularios. En el apartado de Exámenes de los apuntes, tenéis exámenes de los últimos tres cursos, que podéis hacer como ejercicios y como preparación de cara al examen. Por cierto, en los apuntes no se incluyen soluciones de ejercicios de examen.


[opcional] Ejercicios de ampliación: Bucles for con fórmulas

En estos ejercicios se necesita escribir fórmulas para generar series de números que permiten crear dibujos. Mirando el código fuente de los programas de ejemplo se pueden ver los números, pero las fórmulas se os tienen que ocurrir a vosotros. En realidad, es más fácil de lo que parece, porque las series de números forman sucesiones aritméticas por lo que las fórmulas son (casi) siempre del tipo a * x + b, donde a y b son números enteros.

  1. Leed la lección Sucesiones aritméticas (esta lección está en los apuntes Temas de informática).
  2. Practicad la deducción de fórmulas haciendo los ejercicios Sucesiones aritméticas

    Son ejercicios que podéis repetir las veces que queráis. El primero es trivial, pero el segundo exige bastante cálculo mental (aunque podéis empezar haciéndolo con papel y lápiz y calculadora), sobre todo si se elige el mayor nivel de dificultad.

  3. Haced los ejercicios Bucle for (2). El más difícil es el ejercicio 3, porque en las fórmulas aparecen dos variables. Lo podéis dejar para el final.
  4. En la página de soluciones podéis consultar soluciones de los ejercicios.

[opcional] Ejercicios de ampliación: Matrices de dos dimensiones

  1. Haced los ejercicios Matrices (2).

    En estos ejercicios aparecen matrices de dos dimensiones. No son ejercicios muy difíciles, pero cuando se trabaja por primera vez con matrices de varias dimensiones, es fácil liarse. Normalmente, os ayudará pensar las matrices de dos dimensiones como tablas de bases de datos, en las que el primer índice indica el registro y el segundo índice indica la columna.

  2. En la página de soluciones podéis consultar soluciones de los ejercicios.

IAW Semana S06: del 17/10/22 al 23/10/22

Esta semana y la próxima vamos a ver el uso de formularios en PHP. Lo haremos en dos pasos:

  1. Recogida de datos sin comprobación posterior

    En esta parte se trata de aprender a utilizar formularios y a recoger los datos introducidos en ellos, pero no haremos ninguna comprobación sobre los datos recogidos.

  2. Recogida de datos con comprobación posterior

    En esta parte veremos cómo comprobar los datos recibidos y cómo mostrar mensajes al usuario en caso de que no sean correctos.

Formularios (1)

El mecanismo de HTML para recoger información del usuario son los formularios, que nos permitirán crear páginas web interactivas.

  1. Leed la lección Formularios (1) (apuntes HTML/CSS).

    Esta lección forma parte de los apuntes de HTML y trata los aspectos de los formularios relacionados con la presentación del formulario. Comenta las etiquetas y atributos más básicos y que más vamos a utilizar.

  2. Leed la lección Formularios (2) (apuntes HTML/CSS).

    Esta lección completa la lección anterior. Comenta etiquetas y atributos que vamos a utilizar mucho menos, pero que ocasionalmente podéis encontrar en algún ejercicio.

  3. Leed la lección Formularios.

    Esta lección es una presentación de los formularios desde el punto de vista de PHP, es decir, cómo llegan los datos desde un formulario a un programa PHP y qué consideraciones de seguridad tenemos que tener en cuenta.

  4. Leed la lección Controles en formularios.

    Esta lección trata los aspectos de los formularios relacionados con el tratamiento de los datos. Faltan por contar los tipos de controles nuevos en HTML 5, pero su tratamiento no difiere de los controles de HTML 4.

  5. Leed la lección Recogida de datos.

    Esta lección es bastante densa porque aborda los problemas y riesgos de los programas que recogen datos. El problema consiste básicamente en que no podemos saber a priori qué datos van a llegar al programa y probablemente llegarán datos con mala intención. La solución es que los programa no trabajen directamente con $_REQUEST, sino con variables que contengan los datos recibidos una vez "limpiados" y comprobados. Para ello, usaremos una función recoge().

    En resumen, todo lo que se cuenta en esta lección es para justificar el uso de la función recoge() que se encuentra al final del tema. Al final de la lección hay otras funciones recoge(), pero para la práctica totalidad de los ejercicios utilizaremos la primera función recoge().

  6. Leed los dos primeros apartados (Estructura general y Sin comprobación de datos) de la lección Ejemplo de ejercicio.

    En esta lección se explica cómo realizar los ejercicios con formularios. El ejemplo del apartado recogida de datos sin comprobación os puede servir de guía para la página de ejercicios de esta semana.

  7. Haced los ejercicios Controles en formularios (1).
  8. En la página de soluciones de los ejercicios Controles en formularios (1) podéis consultar soluciones de los ejercicios.

IAW Semana S07: del 24/10/22 al 30/10/22

Formularios (2)

  1. Leed la lección Funciones de comprobación de datos

    En esta lección se comentan varias familias de funciones de comprobación de datos, pero tened en cuenta que de todas las funciones que se comentan en esta página, las que vamos a utilizar principalmente son is_numeric() y ctype_digit() y en algún caso filter_var().

  2. Leed la lección Comprobación de datos

    En esta lección se comenta la estructura general que quiero que deis a los programas que reciben datos desde formularios, con ejemplos concretos.

  3. Leed la lección Ejemplo de resolución de ejercicio (con comprobación de datos)

    En los ejercicios de esta semana ya hace falta incluir el tratamiento de errores de los datos recogidos del formulario. En esta lección se explica también el modelo de resolución de ejercicio, con las diferentes partes de la página (recogida de datos, tratamiento de errores, generación del resultado). Es muy importante entender la estructura propuesta porque se utilizará en todos los ejercicios posteriores.

  4. Haced los ejercicios Controles en formularios (2).

    En el último ejercicio aparecen muchos controles. Si habéis hecho el resto, no es necesario hacerlo.

  5. Haced los ejercicios Selección (1).

    Estos ejercicios, salvo el último, son una selección de ejercicios de las páginas que he incluido esta semana como Ejercicios de ampliación. Es decir, que con que hagáis los que están en la página Selección (1) es suficiente, pero si queréis podéis hacer el resto.

[opcional] Ejercicios de ampliación

Antes del curso 2016/17 no daba ejercicios sin formularios y por eso tenía muchos ejercicios con formularios. Ahora no tiene sentido que os pida hacer todos los ejercicios con formularios, pero podéis hacer los que os parezcan interesantes como ejercicios de ampliación:

  1. Ejercicios Operaciones aritméticas
  2. Ejercicios if else
  3. Ejercicios for 3

En los apuntes hay otras páginas de ejercicios que preparé en cursos anteriores que podéis hacer también como ejercicios de ampliación, pero son más difíciles (o bastante distintos a lo que estamos viendo este año):

  1. Ejercicios for 1
  2. Ejercicios for 2
  3. Ejercicios for 4
  4. Ejercicios for 5
  5. Ejercicios Matrices 1

Podéis hacer tantos como queráis. Normalmente los primeros de cada página son más fáciles y se van complicando.

En la página de soluciones podéis consultar soluciones de los ejercicios.

IAW Semana S08: del 31/10/22 al 06/11/22

Cabeceras

  1. Leed la lección El protocolo HTTP

    Esta lección es un resumen brevísimo, ya que no necesitamos profundizar en este tema. En el módulo de Servicios de red veréis el tema con más detalle.

  2. Leed la lección La función header()

    En esta lección se comenta las dos cabeceras que vamos a utilizar: Location para redireccionar páginas y Content-type para definir tipos MIME.

    Si queréis hacer pruebas con el BOM, podéis instalar Notepad++ y el plug-in HEX-Editor (bien la extensión Hex Editor de VSCode). En la lección otros programas > Notepad++ tenéis instrucciones detalladas.

  3. Haced los ejercicios Cabeceras.

    Los ejercicios del primer apartado (redirecciones) nos permiten mejorar los formularios. Cuando la página a la que el formulario envía los datos detecta un error, se redirige automáticamente a la primera, para que se vuelva a mostrar el formulario con los errores detectados. Cada ejercicio se basa en el anterior. Para hacerlos se recomienda ir paso a paso:

    1. primero se completa la primera página (si es necesario), generando el formulario, sin preocuparse todavía por los avisos
    2. después se hace la segunda página, para validar el formulario, de manera similar a los ejercicios de la semana pasada, pero cuando se encuentran errores, en vez de mostrar un aviso, se redirige a la primera página enviando la información necesaria
    3. por último, se completa la primera página de manera que recoja los datos que le puede enviar la segunda página y se incluyen en el formulario
    4. tened en cuenta que la semana que viene veremos las sesiones, el mecanismo que permite compartir datos entre páginas web, por lo que no será necesario enviar los datos en la barra de dirección al hacer redirecciones.
  4. En la página de soluciones podéis consultar soluciones de los ejercicios.

[opcional] Repaso: Sin formularios

  1. El examen constará de tres ejercicios, un ejercicio sin formularios, un ejercicio con formularios y un ejercicio con sesiones.
  2. Como preparación para el examen de los ejercicios sin formularios, podéis hacer los primeros ejercicios de cualquiera de los exámenes de los tres últimos cursos, disponibles en la página de exámenes. En el caso de los exámenes parciales y convocatoria ordinaria del curso 21/22, todos los ejercicios sin formularios están agrupados.
  3. Podéis descargar las plantillas de cada uno de los exámenes en la misma página.

IAW Semana S09: del 07/11/22 al 13/11/22

Sesiones

  1. Leed la lección Sesiones

    Las sesiones nos permiten compartir variables entre diferentes páginas web, lo que permite crear verdaderas aplicaciones web.

  2. Haced los ejercicios Sesiones (1).

    La parte de teoría es bastante sencilla, pero las aplicaciones son infinitas. Para hacer los ejercicios, os recomiendo que vayáis escribiendo el programa siguiendo el orden de utilización de la aplicación. En las soluciones de Sesiones (1) he indicado precisamente ese orden, para que os resulte más fácil entenderlas. Que no os importe mirar las soluciones al hacer los dos o tres primeros ejercicios.

  3. Haced los ejercicios Minijuegos (1).
  4. En la página de soluciones podéis consultar soluciones de los ejercicios.

[opcional] Repaso: Con formularios

  1. El examen constará de tres ejercicios, un ejercicio sin formularios, un ejercicio con formularios y un ejercicio con sesiones.
  2. Como preparación para el examen de los ejercicios con formularios, podéis hacer los segundos ejercicios de cualquiera de los exámenes de los tres últimos cursos, disponibles en la página de exámenes. En el caso de los exámenes parciales y convocatoria ordinaria del curso 21/22, todos los ejercicios con formularios están agrupados.
  3. Podéis descargar las plantillas de cada uno de los exámenes en la misma página.

IAW Semana S10: del 14/11/22 al 20/11/22

Sesiones (2)

  1. Haced los ejercicios Sesiones (2).

    Son ejercicios similares a los ejercicios Sesiones (1) de la semana pasada, pero con más páginas cada uno.

  2. Haced los ejercicios Matrices (1).

    En estos ejercicios se deben guardar matrices en $_SESSION. Son complicados porque en ellos aparecen todo lo que hemos visto en el curso, así que son buenos ejercicios de recapitulación.

    • Los ejercicios 1 y 2 utilizan formularios con cajas de texto
    • Los ejercicios 11, 12 y 13 utilizan formularios que únicamente contienen botones submit que contienen entidades numéricas (emojis).
  3. En la página de soluciones podéis consultar soluciones de los ejercicios.

[opcional] Repaso: Con sesiones

  1. El examen constará de tres ejercicios, un ejercicio sin formularios, un ejercicio con formularios y un ejercicio con sesiones.
  2. Como preparación para el examen de los ejercicios con sesiones, podéis hacer los terceros ejercicios de cualquiera de los exámenes de los tres últimos cursos, disponibles en la página de exámenes. En el caso de los exámenes parciales y convocatoria ordinaria del curso 21/22, todos los ejercicios con formularios están agrupados.
  3. Podéis descargar las plantillas de cada uno de los exámenes en la misma página.

[opcional] Matrices en formularios

  1. Haced los ejercicios Matrices (2).

    Estos ejercicios utilizan formularios con un número indeterminado de controles, por lo que los nombres deben tener estructura de matriz.

    He modificado la función recoge() para que recoja correctamente matrices.

    Para generar los formularios de los ejercicios 23 y 25 se necesita escribir un bucle dentro de otro (esta estructura se denomina bucles anidados, en este caso, de variables independientes).

IAW Semana S12: del 28/11/22 al 04/12/22

Ejercicios de ampliación

Estos ejercicios se pueden también considerar ejercicios de recapitulación. Se trata de hacer una aplicación web (en este caso, juegos) más compleja de lo que hemos hecho hasta ahora y para ello los ejercicios están "encadenados". En cada uno se van añadiendo más elementos hasta obtener finalmente la aplicación completa. Cada ejercicio se debe ir haciendo a partir del anterior.

  1. Haced los ejercicios Tragaperras.

    El objetivo de estos ejercicios es obtener finalmente una máquina tragaperras completa. En las plantilla sólo he incluido los dos primeros ejercicios, porque lo mejor a partir del segundo ejercicio es hacer cada ejercicio a partir del anterior

    Para estos ejercicios os he proporcionado tres tipos de ayuda: en la página del enunciado hay un desplegable con los puntos que debe contemplar vuestro programa, en la página de ayuda se muestran trocitos de código correspondientes a los puntos mencionados en la página del enunciado, y en la página de soluciones están las soluciones completas.

  2. Haced Haced los ejercicios Memorión

    El objetivo de estos ejercicios es completar un juego de memoria.

    Para estos ejercicios os he proporcionado tres tipos de ayuda: en la página del enunciado hay un desplegable con los puntos que debe contemplar vuestro programa, en la página de ayuda se muestran trocitos de código correspondientes a los puntos mencionados en la página del enunciado, y en la página de soluciones están las soluciones completas.

  3. Haced Haced los ejercicios Simon

    El objetivo de estos ejercicios es completar una versión simplificada del juego de los 80 Simon.

  4. En la página de soluciones podéis consultar soluciones de los ejercicios.

IAW Semana S13: del 05/12/22 al 11/12/22

Actualizar configuración de la extensión PHP CS Fixer

He modificado el archivo de configuración recomendado para la extensión PHP CS Fixer.

  1. Actualizad el contenido del fichero php-cs-fixer-config.php que se encuentra en la carpeta .vscode de vuestro área de trabajo.
  2. He empezado a redactar la lección Configuración recomendada para CS Fixer, detallando las reglas que he incluido en la configuración recomendada. Espero añadir ejemplos aclarando algunas de las reglas, pero la lección contiene enlaces a la documentación oficial, que ya incluye ejemplos.

Constantes

  1. Leed la lección Constantes

Funciones

  1. Leed la lección Funciones
  2. Leed la lección Bibliotecas
  3. Haced los ejercicios Menús

    El ejercicio 3 es el más complicado al haber formularios y redirecciones.

IAW Semana S14: del 12/12/22 al 18/12/22

Bases de datos

  1. Leed la lección Bases de datos en PHP

    Esta lección es una presentación general a la forma de trabajar con bases de datos en PHP.

  2. Leed la lección Biblioteca PDO

    Esta lección es una introducción a la biblioteca PDO, biblioteca que permite trabajar con diferentes bases de datos. En los ejercicios se trabaja con SQLite, incluida en PHP, o con MySQL/MariaDB, instalada por XAMPP. La lección es densa, pero he incluido muchos ejemplos de código para ayudaros a entender todos los detalles que hay que que considerar al trabajar con bases de datos.

  3. Leed el apartado Utilidades para SQLite de la lección Otros programas
  4. Leed la lección phpMyAdmin de XAMPP
  5. Haced los ejercicios PDO

    Estos ejercicios son para familiarizarse con el uso de la biblioteca PDO. El ejercicio 1 se puede hacer simplemente copiando y pegando los fragmentos de código de ejemplo de la lección PDO. Cada ejercicio se puede hacer a partir de cada ejercicio anterior.

  6. [opcional] Leed la lección Diferencias MySQL/SQLite

    Esta lección pretende ser una recopilación de detalles a tener en cuenta al preparar una aplicación que pueda utilizar tanto MySQL como SQLite, pero está muy incompleta.

  7. [opcional] Leed la lección Inyecciones SQL

    Esta lección está desactualizada, pero os puede servir para haceros una idea de cómo funcionan los ataques de inyección SQL.

IAW Semana S15: del 19/12/22 al 25/12/22

El objetivo de esta semana y la siguiente es crear una aplicación que gestione una tabla de una base de datos.

Escribir desde cero una aplicación de este tipo es un objetivo ambicioso que requiere muchas horas de trabajo y que no es razonable exigiros a alumnos del ciclo ASIR. Pero lo que sí que creo que está a vuestro alcance con el tiempo y conocimientos disponible es entender cómo funciona una aplicación de este tipo y realizar cambios en ella.

Estas son las actividades a realizar durante esta semana.

Bases de datos

  1. Si disponéis de tiempo, lo ideal sería realizar los ejercicios Bases de datos (1), pero si no es así, descargad las soluciones y con ayuda de los comentarios de los enunciados, intentad comprender el funcionamiento de los programas.

    Estos ejercicios son una serie de ejercicios encadenados para terminar obteniendo una aplicación que gestiona una tabla de una base de datos. Cada ejercicio se hace a partir del anterior.

  2. Para comprobar el correcto funcionamiento de los ejercicios 1 B y 2 B, podéis utilizar SeleniumID.
    • Leed la lección Selenium IDE.
    • Comprobad el funcionamiento de los ejercicios abriendo los ficheros .side en Selenium y ejecutando el test "*** Test completo ***".
  3. Haced los ejercicios Bases de datos (1 B)

    En estos ejercicios se parte de la aplicación obtenida en el último ejercicio de los ejercicios Bases de datos (1) y se trata simplemente de ampliar el número de columnas de la tabla.

    Estos ejercicios sí que los podréis realizar fácilmente y su objetivo es ayudaros a comprender la aplicación aunque no la hayáis programado vosotros.

  4. Si disponéis de tiempo, lo ideal sería realizar los ejercicios Bases de datos (2), pero si no es así, descargad las soluciones y consultando la página de ayuda de los ejercicios Bases de datos (2), intentad comprender el funcionamiento de los programas.

    Los dos ejercicios amplían la aplicación obtenida en el último ejercicio de los ejercicios Bases de datos (1), añadiendo mejoras relacionadas principalmente con la usabilidad de la aplicación.

  5. Haced los ejercicios Bases de datos (2 B)

    En estos ejercicios se parte de la aplicación obtenida en el último ejercicio de los ejercicios Bases de datos (2) y se trata simplemente de ampliar el número de columnas de la tabla.

    Estos ejercicios sí que los podréis realizar fácilmente y su objetivo es ayudaros a comprender la aplicación.

  6. En la página de soluciones podéis descargar soluciones de los ejercicios.

IAW Semana S16: del 09/01/23 al 15/01/23

Bases de datos

  1. Si disponéis de tiempo, lo ideal sería realizar los ejercicios Bases de datos (3), pero si no es así, descargad las soluciones y consultando la página de ayuda de los ejercicios Bases de datos (3), intentad comprender el funcionamiento de los programas.

    Los ejercicios amplían la aplicación obtenida en el último ejercicio de los ejercicios Bases de datos (2), añadiendo un sistema de gestión de usuarios. Como la semana pasada, estos ejercicios están encadenados para que sea más fácil alcanzar el objetivo final. Cada ejercicio se hace a partir del anterior.

    • En el ejercicio 1 se añade a la aplicación Agenda de la semana pasada la identificación de los usuarios, mediante el uso de sesiones. En este ejercicio, la identificación es automática y sólo requiere visitar una página, pero es necesario identificarse para poder acceder a la agenda.
    • En el ejercicio 2 se añade a la identificación un formulario en el que se debe escribir un nombre de usuario y contraseña. La aplicación sólo tiene definido un usuario, cuyos datos se guardan en el fichero de configuración de la aplicación.
    • En el ejercicio 3 se añade a la aplicación una segunda tabla, la tabla de usuarios, por lo que pueden ser varios los usuarios los que utilicen la aplicación de Agenda.
    • En el ejercicio 4 se añade un campo a la tabla de usuarios que indique la categoría del usuario. En este ejercicio se distingue entre usuarios administradores, que tienen acceso a todas las páginas de la aplicación, y usuarios básicos, que sólo tiene acceso a la agenda, pero no a la tabla de usuarios.
    • En el ejercicio 5 se añaden varias funcionalidades a la aplicación anterior. El resultado lo podremos emplear como base para muchos programas.
  2. En la página de soluciones podéis descargar soluciones de los ejercicios.

IAW Semana S17: del 16/01/23 al 22/01/23

Bases de datos

  1. Haced los ejercicios Bases de datos (3 B)

    Son ejercicios seleccionados entre los ejercicios de examen del pasado curso 2021/22 y consisten en ampliar de distintas formas las funcionalidades de la aplicación obtenida en el ejercicio Bases de datos (3) 5.

  2. [opcional] Haced los ejercicios de la página Bases de datos (3 C).
  3. En la página de soluciones podéis descargar soluciones de los ejercicios.