memoria web cole

281
PROYECTO FINAL DE CARRERA DESARROLLO DE UN SITIO WEB PARA UN COLEGIO EMILIO LLUCH (NÁQUERA) CURSO 2006/2007 Código proyecto: DISCA-24 Autores Vicente Sancho Guijarro Vicente Blasco Sánchez Director Félix Buendía García

Upload: leslie-benavides

Post on 19-Jan-2016

14 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Memoria Web Cole

PROYECTO FINAL DE CARRERA

DESARROLLO DE UN SITIO WEB PARA UN COLEGIO

EMILIO LLUCH (NÁQUERA)

CURSO 2006/2007

Código proyecto: DISCA-24

Autores Vicente Sancho Guijarro Vicente Blasco Sánchez

Director

Félix Buendía García

Page 2: Memoria Web Cole
Page 3: Memoria Web Cole

Vicente Sancho Guijarro - Vicente Blasco Sánchez Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) i

INDICE 1. Introducción.............................................................................................................. 6 2. Especificación de Requisitos .................................................................................... 8 3. Análisis ................................................................................................................... 15

3.1. Diagrama de clases. ........................................................................................ 15 3.2. Diagrama de casos de uso............................................................................... 18

3.2.1. Casos de uso del usuario......................................................................... 19 3.2.2. Casos de uso del usuario registrado........................................................ 20 3.2.3. Casos de uso del administrador .............................................................. 21 3.2.4. Casos de uso del alumno y del progenitor.............................................. 22 3.2.5. Casos de uso del profesor ....................................................................... 23 3.2.6. Casos de uso del equipo directivo .......................................................... 24

3.3. Diagrama de Secuencia .................................................................................. 25 3.3.1. Iniciar sesión........................................................................................... 25 3.3.2. Añadir anuncio al tablón de anuncios .................................................... 26 3.3.3. Consultar horario .................................................................................... 27 3.3.4. Dar de baja alumnos ............................................................................... 28 3.3.5. Mostrar notas .......................................................................................... 29 3.3.6. Poner notas ............................................................................................. 30 3.3.7. Poner faltas de asistencia........................................................................ 31 3.3.8. Reservar equipaciones ............................................................................ 32 3.3.9. Anular reserva de instalaciones .............................................................. 33

4. Diseño..................................................................................................................... 34 4.1. Nivel de presentación ..................................................................................... 34 4.2. Nivel de aplicación ......................................................................................... 39 4.3. Nivel de persistencia....................................................................................... 40

5. Implementación ...................................................................................................... 43 5.1. Tecnologías..................................................................................................... 43

5.1.1. HTML..................................................................................................... 43 5.1.2. XHTML.................................................................................................. 43 5.1.3. CSS ......................................................................................................... 45 5.1.4. JavaScript ............................................................................................... 46 5.1.5. PHP......................................................................................................... 46 5.1.6. MySQL ................................................................................................... 48

5.2. Descripción de la implementación ................................................................. 50 5.2.1. Sección pública....................................................................................... 50 5.2.2. Sección privada ...................................................................................... 52

6. Pruebas ................................................................................................................... 57 6.1 Tamaño de la ventana..................................................................................... 57 6.2 Comprobador de links .................................................................................... 59 6.3 Estándar XHTML........................................................................................... 59 6.4 Estándar CSS .................................................................................................. 61 6.5 Navegadores ................................................................................................... 62

7. Conclusiones........................................................................................................... 66 8. Bibliografía............................................................................................................. 67 9. Anexos .................................................................................................................... 68

A. W3C.................................................................................................................... 68 B. Anexo II (Herramientas usadas) ......................................................................... 70 C. XAMPP .............................................................................................................. 77

Page 4: Memoria Web Cole

Vicente Sancho Guijarro - Vicente Blasco Sánchez Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) ii

D. Plantillas de los casos de uso.............................................................................. 79 E. Guía del usuario.................................................................................................. 87

Usuario anónimo .................................................................................................... 87 Intranet del profesor................................................................................................ 93 Intranet de alumno................................................................................................ 103

F. Código Setup.php (Base de datos).................................................................... 110 Interfaz_db.php..................................................................................................... 137 Connexion_i.php .................................................................................................. 141 Conexión.php........................................................................................................ 142

G. Código PHP ...................................................................................................... 143 Index.php .............................................................................................................. 143

Historia.php .......................................................................................................... 145 Equipodirectivo.php ............................................................................................. 146 Reglamento.php.................................................................................................... 147 Calendarioescolar.php .......................................................................................... 148 Localizacion.php .................................................................................................. 150 Contactar.php........................................................................................................ 151 Enlaces.php........................................................................................................... 153 Prohibido.php ....................................................................................................... 154 Anonimo_inc.php ................................................................................................. 155 Analizadorlogin.php ............................................................................................. 157 Bd.php .................................................................................................................. 158 Cerrar_sesion_alumno.php................................................................................... 160 Cerrar_sesion.php................................................................................................. 160 calendarioscript.php.............................................................................................. 161 Alumno_inc.php ................................................................................................... 166 intranetAlumno.php.............................................................................................. 173 Alumno_horario.php ............................................................................................ 174 Alumno_alumnos.php .......................................................................................... 182 Alumno_profes.php .............................................................................................. 184 Alumno_notas.php................................................................................................ 186 Alumno_faltas.php ............................................................................................... 188 Alumno_menu.php ............................................................................................... 190 Alumno_instalaciones.php ................................................................................... 191 Alumno_reserva.php ............................................................................................ 193 Alumno_reservar_instalacion.php........................................................................ 196 Alumno_tablon.php .............................................................................................. 199 Alumno_tablon_insertar.php ................................................................................ 201 Alumno_anular_reserva.php................................................................................. 202 calendario_faltas.php............................................................................................ 204 calendario_ins.php................................................................................................ 209 profesor_inc.php................................................................................................... 214 intranetProfe.php .................................................................................................. 228 Profesor_alumnos.php .......................................................................................... 230 Profesor_profesores.php....................................................................................... 233 guardar_notas.php ................................................................................................ 235 Profesor_notas.php ............................................................................................... 236 Profesor_faltas.php............................................................................................... 240 poner_faltas.php ................................................................................................... 245 Profesor_instalaciones.php................................................................................... 247

Page 5: Memoria Web Cole

Vicente Sancho Guijarro - Vicente Blasco Sánchez Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) iii

Profesor_reservar_instalacion.php ....................................................................... 249 Profesor_reserva.php ............................................................................................ 252 Profesor_anular_reserva.php ................................................................................ 255 Profesor_equipaciones.php................................................................................... 257 Profesor_reservar_equipacion.php ....................................................................... 259 Profesor_tablon.php.............................................................................................. 262 Profesor_tablon_insertar.php................................................................................ 264

H. Código CSS ...................................................................................................... 265 Calendario.css....................................................................................................... 265 general.css ............................................................................................................ 267 principal.css .......................................................................................................... 270 Professor.css ......................................................................................................... 271

I. JavaScript ......................................................................................................... 272 fecha.js.................................................................................................................. 272 profesor.js ............................................................................................................. 273 reservas.js ............................................................................................................. 278

Page 6: Memoria Web Cole

Vicente Sancho Guijarro - Vicente Blasco Sánchez Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) iv

INDICE DE FIGURAS Figura 1 Diagrama de Clases de la aplicación................................................................ 16 Figura 2 Actores del sistema .......................................................................................... 18 Figura 3 Caso de uso para Usuario................................................................................. 19 Figura 4 Caso de uso Usuario Registrado ...................................................................... 20 Figura 5 Caso de uso del Administrador ........................................................................ 21 Figura 6 Caso de uso del Alumno y del Progenitor........................................................ 22 Figura 7 Caso de uso para Profesor ................................................................................ 23 Figura 8 Caso de uso para Equipo Directivo.................................................................. 24 Figura 9 Diagrama de secuencia: Iniciar sesión ............................................................. 25 Figura 10 Diagrama de secuencia: Añadir anuncio........................................................ 26 Figura 11 Diagrama de Secuencia: Consultar Horario................................................... 27 Figura 12 Diagrama de Secuencia: Dar de baja alumnos............................................... 28 Figura 13 Diagrama de Secuencia: Mostrar notas.......................................................... 29 Figura 14 Diagrama de Secuencia: Poner notas ............................................................. 30 Figura 15 Diagrama de Secuencia: Poner faltas de asistencia........................................ 31 Figura 16 Diagrama de Secuencia: Reservar equipación ............................................... 32 Figura 17 Diagrama de secuencia: Anular reserva de instalaciones. ............................. 33 Figura 18 - Arquitectura a tres capas.............................................................................. 34 Figura 19 Captura de la página de inicio........................................................................ 35 Figura 20 Cabecera de la página. ................................................................................... 35 Figura 21 Menú del sitio web. ........................................................................................ 36 Figura 22 Formulario de inicio de sesión ....................................................................... 36 Figura 23 Zona de información de la página de inicio. .................................................. 36 Figura 24 Captura de la página donde se muestra el calendario escolar. ....................... 37 Figura 25 Captura del horario de clase en la zona privada de un alumno...................... 37 Figura 26 Captura del formulario de notas de la zona privada del profesor. ................. 38 Figura 27 Capas del proyecto ......................................................................................... 39 Figura 28 Diagrama entidad-relación. ............................................................................ 41 Figura 29 - Cabecera del sitio web. ................................................................................ 51 Figura 30 Menú de la zona anónima. ............................................................................. 52 Figura 31 Formulario de identificación. ......................................................................... 52 Figura 32 Página principal con la zona de noticias en la parte inferior.......................... 56 Figura 33 Resolución a 600x480.................................................................................... 57 Figura 34 Resolución 800x600....................................................................................... 58 Figura 35 Resolución 1024x768..................................................................................... 58 Figura 36 XHTML - página con errores......................................................................... 60 Figura 37 XHTML - página válida................................................................................. 60 Figura 38 xhtml .............................................................................................................. 61 Figura 39 Resultado de la validación CSS ..................................................................... 61 Figura 40 Explorer 6 - Problemas visualización ............................................................ 62 Figura 41 Explorer 7 - página inicial.............................................................................. 63 Figura 42 Opera - página inicial ..................................................................................... 64 Figura 43 Mozilla - página inicial .................................................................................. 65 Figura 44 B.1 - Logotipo de StarUML........................................................................... 70 Figura 45 B.2 - Logotipo de Dreamweaver 8................................................................. 71 Figura 46 B.3 Pantalla inicial Eclipse 3.2 ...................................................................... 73 Figura 47 B.4 Eclipse - Pantalla principal...................................................................... 74

Page 7: Memoria Web Cole

Vicente Sancho Guijarro - Vicente Blasco Sánchez Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) v

Figura 48 B.5 Eclipse Auto completado de variable ...................................................... 74 Figura 49 B.6 Dia – Pantalla de Inicio ........................................................................... 75 Figura 50 B.7 Dia – Eligiendo tipo de diagrama............................................................ 75 Figura 51 B.7 Dia – Espacio de trabajo.......................................................................... 76 Figura 52 C.1 - Logotipo de XAMPP ............................................................................ 77 Figura 53 C.2 - Panel de Control de XAMPP ................................................................ 77 Figura 54 C.3 - Logotipo del servidor web Apache ....................................................... 78 Figura 55 C.4 - Logotipo de phpMyAdmin.................................................................... 78 Figura 56 Usuario anónimo – inicio............................................................................... 87 Figura 57 Usuario anónimo - menú navegacional.......................................................... 88 Figura 58 Usuario anónimo – Historia ........................................................................... 88 Figura 59 Usuario anónimo - Equipo directivo.............................................................. 89 Figura 60 Usuario anónimo - reglamento....................................................................... 89 Figura 61 Usuario anónimo – Calendario ...................................................................... 90 Figura 62 Usuario anónimo – localización..................................................................... 91 Figura 63 Usuario anónimo – contacto .......................................................................... 92 Figura 64 Usuario anónimo – enlaces ............................................................................ 92 Figura 65 Pantalla Inicial................................................................................................ 93 Figura 66 Intranet del profesor ....................................................................................... 94 Figura 67 Menú navegacional ........................................................................................ 94 Figura 68 Intranet Profesor - Alumnos........................................................................... 94 Figura 69 Escogiendo asignatura.................................................................................... 95 Figura 70 Intranet Profesor - datos cargados.................................................................. 95 Figura 71 Intranet Profesor – profesores ........................................................................ 96 Figura 72 Intranet Profesor – Notas ............................................................................... 96 Figura 73 Intranet Profesor - notas - mensaje error........................................................ 97 Figura 74 Intranet Profesor - falta – Calendario............................................................. 98 Figura 75 Intranet profesor – falta.................................................................................. 98 Figura 76 Intranet Profesor – instalaciones .................................................................... 99 Figura 77 Intranet Profesor - reserva de instalaciones. .................................................. 99 Figura 78 Intranet Profesor - reserva confirmada........................................................ 100 Figura 79 Intranet Profesor – equipaciones.................................................................. 100 Figura 80 Intranet Profesor - reserva de equipaciones. ................................................ 101 Figura 81 Intranet Profesor - reserva confirmada........................................................ 101 Figura 82 Intranet Profesor - tablón anuncios .............................................................. 102 Figura 83 Intranet Profesor - Insertar anuncio.............................................................. 102 Figura 84 Pantalla Inicial.............................................................................................. 103 Figura 85 Intranet del alumno ...................................................................................... 103 Figura 86 Menú navegacional ...................................................................................... 104 Figura 87 Intranet alumno – horario............................................................................. 104 Figura 88 Intranet alumno - listado alumno ................................................................. 105 Figura 89 Intranet alumno - listado profesores............................................................. 105 Figura 90 Intranet alumno – notas................................................................................ 106 Figura 91 Intranet alumno - faltas asistencia................................................................ 106 Figura 92 Intranet alumno – menú ............................................................................... 107 Figura 93 Intranet Alumno – instalaciones ................................................................. 107 Figura 94 Intranet alumno - reserva de instalaciones. .................................................. 108 Figura 95 Intranet alumno - reserva confirmada ......................................................... 108 Figura 96 Intranet Profesor - tablón anuncios .............................................................. 109 Figura 97 Intranet Profesor - Insertar anuncio.............................................................. 109

Page 8: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

1. Introducción

Este proyecto trata sobre el desarrollo de un sitio web de un colegio público. El centro sobre el que se basa el sitio es el Colegio Público Emilio Lluch, situado en Náquera (Camp de Túria, Valencia).

El objetivo de este sitio web es dar a conocer el centro a través de Internet, así como

hacer más accesible información personalizada a los componentes del centro, como son los profesores, los alumnos y los padres de los mismos.

El sitio web consta de una parte pública accesible a todos los usuarios que accedan

al portal sin registrarse. Entre la información de la cual consta destaca la información general sobre el centro, así como información de contacto para que los usuarios que no pertenezcan al colegio puedan contactar con él para informarse de una forma más personalizada o con dudas más concretas.

La parte privada del sitio es una intranet para los usuarios que se autentiquen. Ésta

se diferencia según el grupo al que pertenezca el usuario, ya sea profesor o padre/alumno. En ella puede encontrar información personalizada sobre las asignaturas que tiene, horarios, etc. y puede hacer reservas de los equipamientos del centro entre otras cosas.

Por último, el administrador también tiene su propia intranet desde la cual puede

administrar el sitio, pudiendo realizar acciones como dar de alta usuarios o visualizar estadísticas del sitio web.

La motivación de este tipo de proyecto es el seguimiento más activo por parte de los

padres sobre la educación de sus hijos, en un medio muy extendido como es Internet, en el cual la mayoría de colegios e institutos ya tienen su sitio web. También los profesores podrán agilizar sus trámites como son las faltas de asistencia o poner las notas, habiendo una comunicación más constante con los padres. Por ello, lo consideramos un proyecto motivador para que los alumnos del colegio puedan tener una buena educación con la supervisión más activa de los padres, y a la vez favorecer la comunicación tanto con los profesores de sus hijos como con los padres de los compañeros de clase de sus hijos. Será un proyecto muy bien acogido, ya que será muy usado por los profesores y los padres de los alumnos.

Muchos colegios ya tienen su propia web. Para ello, antes de realizar nuestro

proyecto nos fijamos en los sitios web de otros centros como: Colegio Público Llanares http://web.educastur.princast.es/cp/llaranes/ Colegio Público San Blas http://www.educa.madrid.org/portal/web/cp_sanblas_ajalvir Colegio Público Migjorn http://www.cpmigjorn.net/

Page 9: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 7

1.1 Estructura del documento Sobre la estructura de la memoria, podemos decir que se ha dividido en los

apartados que hemos tratado en la realización del proyecto. Para ello, el primer paso fue redactar la especificación de requisitos en la cual redactamos una primera visión del proyecto donde especificamos las funcionalidades y los requisitos que debía tener. La finalidad de este documento es plasmar el acuerdo entre el desarrollador y el cliente acerca de las funcionalidades del proyecto. En nuestro caso el visto bueno nos lo dio el director del proyecto.

La siguiente etapa en la realización del proyecto fue la de análisis. En ella se realizó

un análisis del problema y el modelado conceptual de nuestra solución mediante diagramas. Los diagramas realizados fueron el diagrama de clases y los diagramas de los casos de uso.

Con esto ya tenemos una visión global de cómo va a estar estructurado nuestro

proyecto por lo que ya nos ponemos a realizar el diseño de cómo vamos a implementar el sitio web.

Tras realizar el diseño nos adentramos en la fase de implementación del proyecto a

partir de los diagramas obtenidos en la etapa anterior. Aquí explicamos las tecnologías utilizadas y cómo son usadas.

Tras todo esto, damos por finalizado el proyecto, por lo que ya podemos redactar las

conclusiones sacadas en la realización del mismo. Por último, se han incluido unos anexos que creemos pueden ser interesantes sobre

el desarrollo del proyecto. En el primero de ellos se habla del consorcio llamado W3C, ya que ellos son los que dictan los estándares que hemos usado para desarrollar el proyecto como son HTML y CSS por ejemplo. En otro anexo presentamos brevemente las herramientas usadas para la elaboración del diseño y del desarrollo del proyecto. También dedicamos un anexo para hablar del paquete XAMPP que nos ha sido de gran utilidad para probar el correcto funcionamiento del proyecto en local, antes de subirlo al servidor prestado por el director. Por último, exponemos el código fuente de las páginas desarrolladas.

Page 10: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 8

2. Especificación de Requisitos 2.1 Introducción 2.1.1 Propósito El propósito de la especificación de requisitos expuesta a continuación es mostrar al

usuario cual va a ser la funcionalidad del proyecto. En esta ERS se realizará una descripción general del mismo, así como una especificación de los requisitos que debe cumplir.

1) Ámbito La aplicación que vamos a desarrollar con el nombre WebCole. Será la encargada de

proporcionar información general sobre el colegio Emilio Lluch de Náquera (Valencia) e información más especializada a los usuarios registrados.

De esta forma, el usuario puede obtener información desde su propia casa sobre el

colegio proporcionándole una mayor comodidad. Así los padres podrán tener un mayor control de lo que hacen sus hijos pudiendo consultar por ejemplo sus faltas de asistencia, sus notas, etc. De esta forma, los profesores también pueden agilizar la forma de comunicarles estos datos a los padres de sus alumnos.

2) Definiciones, acrónimos y abreviaturas • Definiciones

Interfaz - Parte del programa informático que permite el flujo de información entre varias aplicaciones o entre el propio programa y el usuario. Navegador - Aplicación software que permite al usuario recuperar y visualizar documentos de hipertexto. Portal Web - Página de inicio que permite el acceso a las distintas secciones de un sitio web. Puede tener servicios como: Chat, e-mail, foros, blogs etc Usuario Administrador - Usuario que se encarga del mantenimiento del portal. Usuario Registrado - Usuario que se ha autentificado en el portal mediante su nombre de usuario y contraseña que previamente se le ha sido asignada. Sitio Web - conjunto de páginas web, típicamente comunes a un dominio de Internet o subdominio en la World Wide Web en Internet.

• Acrónimos HTML - HyperText Markup Language. IEEE - Institute of Electrical and Electronics Engineers. PHP - PHP Hypertext Pre-processor. W3C - World Wide Web Consortium. WWW - World Wide Web.

3) Referencias [1] ANSI/IEEE Std. 830 - 1984. Guía del IEEE para la especificación de

requerimientos software. [2] Ejemplos de otros proyectos. 4) Visión global

Page 11: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 9

Posteriormente en este documento se realizará la descripción general del sistema que va desarrollarse con sus funciones, características del usuario, restricciones generales, supuestos y dependencias. También se expondrá una especificación detallada de los requisitos detectados.

1.2 Descripción general 2.2.1 Perspectiva del producto La aplicación pretende proporcionar información general sobre el centro. Otra parte

de la aplicación suministrará información más específica para cada tipo de usuario que acceda a esta sección del portal.

Nuestra aplicación podrá ser accedida desde cualquier sistema operativo, utilizando

para ello un navegador Web. 2.2.2 Funciones del producto

• Usuarios no registrados Información general

En esta sección se presentará el centro Historia

Se escribirá un pequeño resumen de la historia del colegio (año de fundación, remodelaciones,...) Equipo de dirección

Se dispondrá el organigrama directivo con información de contacto de cada uno de los componentes del equipo directivo (e-mail, etc.) Reglamento de régimen interno

Se expondrá un resumen del reglamento básico del centro Calendario escolar

En esta parte de la aplicación se podrá visualizar el calendario escolar con los festivos del centro y otras actividades que consideren importantes. Localización

Se especificará la dirección y un pequeño mapa de la localización del centro Contactar

En esta sección se proporcionará un pequeño formulario para poder mandar correos electrónicos al centro con consultas y/o sugerencias. Enlaces

Se listarán las direcciones de otros sitios Web que el centro considere de interés.

o Padres y alumnos

Horario En este apartado se mostrará el horario de las clases del alumno. Listado de alumnos

Se mostrará un listado de los alumnos que van a la misma clase que el usuario que esté conectado a la aplicación en esos momentos. Listado de profesores

Los usuarios podrán visualizar un listado de los profesores que imparten clase al alumno Notas

Se mostrarán las calificaciones de las asignaturas matriculadas por el alumno conectado. Faltas de asistencia

Page 12: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 10

Se podrá llevar a cabo un control sobre las faltas de asistencia del alumno conectado Menú semanal

Se podrá consultar el menú del comedor Reserva de instalaciones

En esta sección se podrán realizar reservas de las instalaciones del centro (campo de fútbol sala, gimnasio, etc.) Tablón de anuncios

Desde aquí se podrá acceder al foro donde los usuarios pueden poner anuncios para buscar gente para practicar algún deporte.

o Profesores

Listado de alumnos Los profesores dispondrán de un listado de los alumnos ordenados por grupos Listado de profesores

Se listarán los profesores que imparten clases en el centro Poner notas

En esta sección el profesor podrá calificar a los alumnos de las asignaturas que imparte Poner faltas de asistencia

En este apartado el profesor tutor de cada alumno podrá poner las faltas de asistencia. Reserva de instalaciones

Aquí se podrán realizar reservas de las instalaciones del centro (campo de fútbol sala, gimnasio, aulas, etc.) Reserva de equipamientos

Se podrán efectuar reservas de los equipamientos disponibles en el centro (radio-cd, proyector, etc.) Tablón de anuncios

Desde aquí se podrá acceder al foro donde el usuario redactará anuncios para pedir voluntarios para actividades por ejemplo

o Administrador

Dar de alta usuarios Dar de baja usuarios Modificar usuarios Dar de alta noticias Ver estadísticas de la Web Mantenimiento del foro

2.2.3 Características del usuario Los tipos de usuarios registrados se pueden dividir en los padres y alumnos, los

profesores y el administrador. Por otra parte estarán los usuarios no registrados, que sólo tendrán acceso a la información general del centro, sin poder acceder a la información personalizada.

Los padres y alumnos que podrán consultar información acerca del alumno a través

de la zona privada y hacer reservas de instalaciones del centro en horario extraescolar. Los profesores también tendrán acceso a su zona restringida desde la cual podrán consultar información propia y sobre los grupos de alumnos a los que imparte clases, como la composición, las notas y las faltas de asistencia. También podrá hacer reservas de instalaciones y equipamientos del colegio para su uso en las distintas clases.

Page 13: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 11

El administrador será el que gestiones las altas, las modificaciones y las bajas de los

usuarios registrados. Los usuarios deberán de tener conocimientos mínimos de informática y de

navegación por la Web para poder acceder al sitio Web. 2.2.4 Restricciones generales Se requiere un ordenador con conexión a Internet. 2.2.5 Supuestos y dependencias Se necesita un navegador de Internet, preferiblemente que respete los estándares de

W3C.

2.3 Requerimientos específicos 2.3.1 Interfaces de usuario Habrá dos partes diferenciadas: el portal Web y la intranet. El portal Web será

visible a todos los usuarios, mientras que para acceder a la intranet habrá que identificarse como padre/alumno, profesor o administrador.

2.3.2 Requisitos funcionales 2.3.2.1 Usuarios no registrados 2.3.2.1.1 Información general En está sección se hará una presentación del centro acompañada de una foto. Entre

la información que podemos encontrar estará la dirección, el teléfono y otros datos de interés.

2.3.2.1.2 Historia Se hará un breve resumen de la historia del centro indicando el año de fundación,

acontecimientos que ellos consideren más importantes, anteriores equipos directivos, así como las remodelaciones y traslados que haya podido sufrir el centro en el transcurso de su historia.

2.3.2.1.3 Equipo de dirección Se mostrará el organigrama directivo del centro en el que aparecerá la organización

interna del centro con todos sus componentes como el director, el jefe de estudios, etc. De cada uno se mostrará información como su teléfono interno, su e-mail, su despacho y sus horarios de atención.

2.3.2.1.4 Reglamento de régimen interno Se podrá acceder al reglamento de régimen interno redactado por el centro. Se

dispondrá de varios formatos, uno de ellos para poder visualizarlo desde el navegador mismo y otro para su posible descarga en el ordenador del usuario.

2.3.2.1.5 Calendario escolar Se mostrará el calendario escolar donde se podrán consultar los días festivos y los

no lectivos del centro. En el mismo calendario se podrá ver la fecha de las actividades

Page 14: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 12

realizadas en el centro, así como los periodos de evaluación o de los plazos de matriculación y presentación de becas.

2.3.2.1.6 Localización Aquí se pondrá la dirección del centro acompañada de un mapa para facilitar la

localización. También se podrán consultar las rutas de autobuses existentes para recoger a los alumnos. Además se colocarán los diferentes accesos por carretera al colegio, así como líneas de transporte público.

2.3.2.1.7 Contactar Se dispondrá de un pequeño formulario a través del cual se pueden hacer llegar las

dudas o consultas por e-mail al centro. También se mostrarán los teléfonos del centro para los usuarios que prefieran ponerse en contacto con el centro por teléfono. La dirección completa también se podrá consultar en este apartado.

2.3.2.1.8 Enlaces Aquí aparecerán enlaces a otras webs de interés para el usuario, como pueden ser las

webs del Ministerio de Educación, la Conselleria de Educación, webs de recursos educativos y los que el colegio considere oportunos. Estos enlaces estarán ordenados por área de interés.

2.3.2.2 Usuarios registrados como alumno/padre Las funcionalidades descritas a continuación sólo son accesibles para los usuarios

que se identifiquen como alumno/padre que hayan sido dados de alta por el administrador previamente.

2.3.2.2.1 Horario Aquí se mostrará el horario de clases correspondiente al grupo en el cual está

matriculado el alumno. 2.3.2.2.2 Listado de alumnos Se mostrará una lista con los alumnos del mismo grupo al que pertenece. Los datos

mostrados serán nombre y apellidos del alumno, su dirección de correo electrónico. 2.3.2.2.3 Listado de profesores Se mostrará una lista con los profesores que imparten clase al alumno. Los datos

mostrados serán nombre y apellidos del alumno, su dirección de correo electrónico y su despacho.

2.3.2.2.4 Notas Aquí se podrán consultar las notas obtenidas por el alumno en las asignaturas en las

que esté matriculado. También aparecerá la nota media del grupo para poder tener una idea de la marcha del grupo en general.

2.3.2.2.5 Faltas de asistencia En este apartado habrá constancia de las faltas de asistencia a clases que ha tenido el

alumno a lo largo del curso. También se podrá diferenciar entre las justificadas y las no justificadas.

2.3.2.2.6 Menú semanal

Page 15: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 13

En esta sección aparecerá el menú del comedor escolar. También aparecerá el nombre del encargado del comedor para poder consultar con él cualquier tipo de duda o queja. Así como la normativa vigente del comedor. Además aparecerán los precios del comedor diferenciados por días, semanas o meses según se quiera consultar.

2.3.2.2.7 Reserva de instalaciones Desde aquí se podrán reservar las instalaciones del centro, como pueden ser la pista

de fútbol, el gimnasio, el aula de usos múltiples, etc. También se podrá anular reservas. Las reservas sólo pueden hacerse en horario extraescolar. Además se dispondrá de las normas a la hora de usar las instalaciones y de hacer la reserva.

2.3.2.2.8 Tablón de anuncios Aquí se publicarán anuncios en general. Por ejemplo, un alumno puede publicar un

anuncio para buscar gente para practicar algún deporte. También podrán eliminar mensajes creados por ellos mismos.

2.3.2.3 Usuarios registrados como profesores A continuación describimos las funcionalidades accesibles desde la intranet de los

usuarios identificados como profesores que hayan sido dados de alta por el administrador previamente.

2.3.2.3.1 Listado de alumnos Se mostrará una lista de los alumnos a los que imparte clase ordenados por el grupo

al que pertenecen. Los datos mostrados serán nombre y apellidos del alumno, su dirección de correo electrónico incluido el teléfono de contacto de los padres.

2.3.2.3.2 Listado de profesores Se mostrará un listado del resto de profesores que imparten clase en el centro. Los

datos mostrados serán nombre y apellidos del profesor, su dirección de correo electrónico y su despacho.

2.3.2.3.3 Poner notas Desde aquí se podrá introducir las notas de cada alumno que podrán ser visualizadas

posteriormente por los alumnos desde su intranet. Los alumnos aparecerán ordenados por grupos. En esta sección también se podrán modificar notas que hayan sido previamente introducidas.

2.3.2.3.4 Poner faltas de asistencia Desde aquí se podrá introducir las faltas de asistencia de cada alumno. También se

podrá justificar las faltas que aún no lo están. En caso de error también estará la posibilidad de poder modificar dichas faltas.

2.3.2.3.5 Reserva de instalaciones Desde aquí se podrá reservar las instalaciones del centro, como pueden ser la pista

de fútbol, el gimnasio, el aula de usos múltiples, etc. También se podrá anular reservas. Además se dispondrá de las normas a la hora de usar las instalaciones y de hacer la reserva.

2.3.2.3.6 Reserva de equipamientos

Page 16: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 14

Desde aquí se podrá reservar los equipamientos del centro, tales como el radio-CD, proyectores de diapositivas, etc. En el caso de ya estar reservado en la franja horaria requerida, aparecerá quien lo ha reservado. También se podrán anular reservas que haya efectuado antes el profesor. Además se dispondrá de las normas a la hora de usar las instalaciones y de hacer la reserva.

2.3.2.3.7 Tablón de anuncios Se podrá acceder y publicar anuncios al mismo tablón de los alumnos/padres, con

las mismas funcionalidades que ellos. También podrán eliminar mensajes creados por ellos mismos.

2.3.2.4 Administrador del portal Por último, las siguientes funcionalidades sólo serán accesibles al administrador del

portal. 2.3.2.4.1 Dar de alta usuarios El administrador podrá dar de alta a usuarios de cualquier tipo e introducir su

correspondiente información. Los usuarios a los que podrá dar de alta serán aquellos profesores que estén impartiendo clases en el centro o a aquellos alumnos/padres que estén matriculados en el centro.

2.3.2.4.2 Dar de baja a usuarios El administrador podrá eliminar usuarios para que ya no puedan acceder a su

correspondiente información personalizada, ya sea porque se han dado de baja en el centro en el caso de los alumnos o porque ya no trabajen allí en el caso de los profesores.

2.3.2.4.3 Modificar usuarios Podrá modificar atributos a los usuarios. Esto es útil para cambios de domicilio,

teléfono, etc. o por errores a la hora de dar de alta a algún usuario. Otra opción desde esta sección es poder sancionar a usuarios restringiéndole el acceso al tablón de anuncios si éste pone anuncios obscenos o de otra índole que no se considere apropiada para los alumnos o quitar el permiso de reservar instalaciones o equipaciones si este hace una reserva pero no la lleva a cabo.

2.3.2.4.4 Dar de alta noticias Se podrá introducir noticias nuevas que serán visibles en la página principal del

portal. 2.3.2.4.5 Ver estadísticas de la Web Aquí aparecerán estadísticas de la Web, como el número de accesos. 2.3.2.4.6 Mantenimiento del foro Aquí el administrador podrá eliminar los anuncios del foro que el considere

inapropiados. Al comienzo de cada curso el administrador podrá eliminar todos los anuncios del curso pasado del foro.

Page 17: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 15

3. Análisis Para realizar el análisis de esta aplicación Web se ha optado por seguir las recomendaciones definidas por UML (Unified Modeling Language o Lenguaje Unificado de Modelado en castellano). Este modelo dispone de multitud de diagramas que nos ayudarán a comprender la complejidad del futuro sistema, permitiéndonos plasmar en un lenguaje estándar aquellas funcionalidades, requisitos y demás características que hemos detectado en el sistema. Los resultados producidos por UML son el equivalente a los planos con los que trabajan los arquitectos, por ejemplo. Estos modelos nos permitirán comprender mejor la aplicación, especialmente en grandes aplicaciones, lo que nos facilitará la tarea de implementación, así como la ampliación del sistema si fuera necesario. Aunque UML define una gran cantidad de diagramas para representar los distintos aspectos del desarrollo de la aplicación, en nuestro caso nos centraremos en tres tipos de diagrama:

• Diagrama de clases • Diagrama de casos de usos • Diagrama de secuencia

Cada uno de estos diagramas pertenece una clase de diagramas (de estructura, de comportamiento y de interacción respectivamente), lo que nos permitirá cubrir los distintos aspectos del desarrollo.

3.1. Diagrama de clases. El diagrama de clases nos permite visualizar las relaciones que involucran el

sistema. También nos permitirá conocer a grandes rasgos las clases u objetos de nuestro sistema.

A continuación describiremos brevemente dichas clases para conocer mejor la

aplicación. Usuario Registrado: Esta clase representa a aquellos usuarios que pueden

acceder a la intranet de la aplicación y que podrán interactuar con el sistema, en la medida de los permisos que les concedamos. Tiene una serie de atributos que permite definirlos, siendo los más importantes, desde el punto del sistema, el “login” que deberá ser único dentro del sistema y la “contrasenya” ya que serán necesarios a la hora de poder acceder a la intranet del colegio. De esta clase se derivan las siguientes sub-clases: Alumno, Profesor, Progenitor, Equipo directivo y Administrador.

Instalación: Este objeto representa aquellas infraestructuras del colegio que

pueden ser reservadas, en principio por todos los usuarios registrados. Un posible ejemplo de infraestructura reservable podría ser el caso de un aula informática, que pueda ser reservada por un profesor para realizar una clase especial en ella.

Page 18: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 16

Figura 1 Diagrama de Clases de la aplicación

Anuncio: Esta clase representa aquellos mensajes que pueden publicar los

usuarios registrados en el sitio Web. Estos mensajes serán públicos para todos los usuarios registrados de la aplicación.

Page 19: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 17

Progenitor: Esta entidad identifica a los padres, madres o tutores de los alumnos del centro que pueden acceder a la sección privada del sitio. Esta clase se deriva de Usuario Registrado.

Alumno: Una de las clases derivadas de Usuario Registrado es alumno. Esta clase representa a aquellos alumnos matriculados en el centro que pueden acceder a la intranet de la aplicación.

Grupo: Este objeto contendrá la información necesaria para identificar a los

distintos grupos de alumnos que conforman el colegio. Seguirá la distribución normal de los colegios, separando los grupos tanto por el curso como por una letra.

Profesor: Esta clase, derivada también de la súper clase Usuario Registrado,

representa a aquellos profesores del colegio que acceden a la sección privada de la aplicación.

Asignatura: Esta clase representa a las materias que se imparten en el centro y a

las que asisten los alumnos y que son impartidas por los profesores del centro. Falta de asistencia: Este objeto permitirá identificar las ausencias de los

alumnos en horario escolar, ya sean sin justificar o justificándolas más adelante. De esta forma se podrá llevar un control de las asistencias de los alumnos a clase y que podrá ser consultado por sus padres o tutores. Esta clase solamente podrá ser modificada por los profesores al poner las faltas.

Equipación: Esta clase al igual que las instalaciones, permite realizar reservadas

de objetos del colegio, aunque en este caso únicamente podrá realizar la operación profesores. Un ejemplo de equipación que puede ser reservado sería un radio-cd o televisor.

Equipo directivo: De esta clase se derivarán otras tres (director, jefe estudios,

secretario) Dichas clases representarán a dichos cargos en la aplicación. Administrador: Esta clase representa a aquellos usuarios que administrarán el

sitio Web del colegio y que tendrá los permisos suficientes para realizar cualquier acción.

Evento: Esta clase identificará aquellas noticias que el colegio considere de

interés para el conjunto del colegio. Este objeto podrá contener tanto eventos que se producen en el centro, por ejemplo excursiones, exámenes, etc, como eventos de un mayor alcance, por ejemplo, fiesta locales, autonómicos y nacionales, etc. Esta clase solamente podrá ser modificada por los usuarios que pertenezcan a la clase Equipo directivo o a la clase de Administradores.

Page 20: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 18

3.2. Diagrama de casos de uso Los diagramas de casos de uso nos permitirán conocer los distintos tipos de

actores que podrán acceder y/o utilizar nuestra aplicación. También nos servirá para especificar las acciones que tendrán dichos usuarios dentro de nuestra aplicación, así como las relaciones que aparecerán entre los distintos casos de uso.

Para algunos casos de uso, además se incluye su plantilla, que proporciona

información adicional sobre dichos casos de uso. No se han colocado todas las plantillas, ya que muchas prácticamente son idénticas.

Figura 2 Actores del sistema

En la Figura 2 Actores del sistema se puede ver los distintos tipos de actores

(entidades externas al sistema que interactúan con él) que podrán acceder a la aplicación. Todos ellos derivan de Usuario. Este actor representa para la aplicación Web a todos aquellos usuarios que no se han identificado ante el sistema, ya sea porque todavía no hayan iniciado la sesión o porque sean usuarios que estén de paso o buscando información.

Page 21: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 19

3.2.1. Casos de uso del usuario

Figura 3 Caso de uso para Usuario

En la Figura 3 Caso de uso para Usuario se puede ver los casos de usos a los

que podrá acceder el actor Usuario. Dado que este tipo de actor no se ha identificado ante el sistema, las acciones que podrá realizar serán en consecuencia muy limitadas, centrándose en la obtención de información general del centro.

Page 22: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 20

3.2.2. Casos de uso del usuario registrado

Figura 4 Caso de uso Usuario Registrado

En la Figura 4 Caso de uso Usuario Registrado pueden verse todos los casos de usos a los que tendrá acceso el usuario registrado. Como puede verse, este usuario será el que más casos de uso disponga, ya que en realidad, este actor nos permite crear un usuario genérico del que dependerán del resto de usuarios que pueden acceder a la intranet. De esta forma podemos asignar a este actor todos los casos de usos que serán comunes a todos los actores que utilizarán esta aplicación (con excepción del actor usuario).

Page 23: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 21

3.2.3. Casos de uso del administrador

Figura 5 Caso de uso del Administrador

En la imagen anterior, puede verse el caso de uso del actor Administrador. Este

actor será el que más funcionalidades posea, ya que, además de las funcionalidades que posee todo usuario registrado, como administrador tendrá acceso total al sistema.

Page 24: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 22

3.2.4. Casos de uso del alumno y del progenitor

Figura 6 Caso de uso del Alumno y del Progenitor

Este caso de uso, muestra las funcionalidades que tendrán a su disposición tanto

los alumnos como sus padres, madres, o tutores. Los padres podrán acceder a la misma información que sus hijos para así poder realizar un control sobre ciertos aspectos como el control de asistencia a clase.

Page 25: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 23

3.2.5. Casos de uso del profesor

Figura 7 Caso de uso para Profesor

En la Figura 7 Caso de uso para Profesor pueden verse las funcionalidades de las

que dispondrá el profesor. En este caso será el que más pueda modificar el sistema (aparte del administrador), ya que el profesor dispondrá de varios casos de uso que le permitirán modificar la información de los alumnos de sus respectivas asignaturas.

Page 26: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 24

3.2.6. Casos de uso del equipo directivo

Figura 8 Caso de uso para Equipo Directivo

El equipo directivo será el actor que menos casos de usos propios dispone (hay

que recordar que todos los actores a excepción de usuario, heredan los casos de uso del usuario registrado)

Page 27: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 25

3.3. Diagrama de Secuencia Este tipo de diagrama nos ayudará a identificar las comunicaciones que se

producen dentro del sistema y las operaciones de clase. También nos mostrará la secuencia temporal del flujo de mensajes.

No se colocarán todos los diagramas de secuencia, ya que muchos son

prácticamente idénticos unos de otros.

3.3.1. Iniciar sesión

Figura 9 Diagrama de secuencia: Iniciar sesión

En la Figura 9 Diagrama de secuencia: Iniciar sesión se puede ver el diagrama

de secuencia que será más utilizado por los usuarios registrados, ya que éste será el escenario que les permitirá acceder a la intranet del colegio, en el caso de que introduzcan correctamente sus datos (login y password).

Page 28: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 26

3.3.2. Añadir anuncio al tablón de anuncios

Figura 10 Diagrama de secuencia: Añadir anuncio

En este escenario, el Usuario Registrado podrá crear nuevos anuncios que aparecerán en el tablón de anuncios del colegio. El Usuario Registrado deberá proporcionar el título del anuncio y el contenido del mismo.

Page 29: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 27

3.3.3. Consultar horario

Figura 11 Diagrama de Secuencia: Consultar Horario

Este escenario permitirá tanto a los alumnos como a sus tutores consultar el horario de las clases del alumno. El sistema obtendrá los datos del grupo del alumno que solicita el horario. Con los datos del grupo solicitará el horario de cada asignatura que tenga ese grupo en cuestión. Una vez que el sistema tenga los horarios del grupo del alumno, se los devolverá al alumno

Page 30: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 28

3.3.4. Dar de baja alumnos

Figura 12 Diagrama de Secuencia: Dar de baja alumnos

En este escenario el administrador podrá eliminar o dar de baja a alumnos de la

aplicación. En esta situación el administrador solicitará los datos del alumno a eliminar. El sistema le devolverá todos los datos del alumno, si el administrador confirma la eliminación del alumno, el sistema lo intentará suprimir del sistema devolviendo el resultado de la eliminación al administrador.

Page 31: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 29

3.3.5. Mostrar notas

Figura 13 Diagrama de Secuencia: Mostrar notas

En la Figura 13 Diagrama de Secuencia: Mostrar notas podemos ver el diagrama de secuencia necesario para que los alumnos puedan ver las notas de las asignaturas en las que están matriculados. El escenario comienza cuando el alumno desea ver sus notas, el sistema obtendrá los datos del alumno y con éstos los del grupo al que pertenece el alumno. Para cada asignatura que se imparta en ese grupo se obtendrá sus notas correspondientes. Una vez que el sistema haya obtenido todas las notas, se las devolverá al alumno.

Page 32: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 30

3.3.6. Poner notas

Figura 14 Diagrama de Secuencia: Poner notas

Este diagrama representa los pasos que deberá seguir el profesor a fin de poder

calificar a sus alumnos. El profesor pedirá al sistema que le proporcione los alumnos que tiene en cada asignatura que imparte ese profesor. El sistema le devolverá el listado de alumnos para esa asignatura. En este momento el profesor podrá calificar a cada uno de los alumnos. Una vez que haya acabado de puntuar a los alumnos de una asignatura puede pasar a la siguiente asignatura que imparta.

Page 33: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 31

3.3.7. Poner faltas de asistencia

Figura 15 Diagrama de Secuencia: Poner faltas de asistencia

Este diagrama de secuencia es muy parecido al que podía verse en la Figura 14

Diagrama de Secuencia: Poner notas. El profesor solicitará al sistema que le proporcione el listado de alumnos que asisten a la asignatura que el elija (de las que el profesor imparte). Una vez que el sistema le dé el listado de alumnos, el profesor podrá ir indicando al sistema los alumnos que han faltado a la asignatura, para ello deberá indicar la fecha de la falta (por defecto la fecha del sistema) y si ha sido justificada. El profesor podrá repetir este proceso por cada asignatura que imparta.

Page 34: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 32

3.3.8. Reservar equipaciones

Figura 16 Diagrama de Secuencia: Reservar equipación

En este escenario el profesor será capaz de realizar la reserva de equipaciones

del colegio como puedan ser radio-cd, televisores, etc. En el primer paso, el profesor pedirá al sistema que le muestre la disponibilidad de la equipación que está interesado en reservar. El sistema le devolverá un listado con los días en que se puede reservar la equipación. En este momento el profesor deberá escoger una de las fechas disponibles y escribir el motivo de su petición. A continuación el profesor confirmará los datos de la reserva, a lo que el sistema le responderá si fue posible realizar la reserva de la equipación requerida.

Page 35: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 33

3.3.9. Anular reserva de instalaciones

Figura 17 Diagrama de secuencia: Anular reserva de instalaciones.

En el diagrama mostrado en la Figura 17 Diagrama de secuencia: Anular reserva, puede verse los pasos que necesitará seguir un usuario registrado para poder eliminar una reserva que haya efectuado él mismo. El primer paso que seguirá el usuario registrado será pedir al sistema que le proporciones todas las reservas que tiene. Cuando el sistema le devuelva el listado con las reservas del usuario, éste podrá escoger la reserva de la instalación para anular y el sistema quitará la reserva. Como último paso el sistema le proporcionará el listado de reserva actualizado.

Page 36: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 34

4. Diseño Para el diseño del sitio Web se ha escogido una arquitectura de tres capas. Se ha

elegido esta arquitectura debido al desacoplamiento entre las distintas capas. De esta forma se pueden cambiar fácilmente el comportamiento de las clases en el nivel de aplicación sin que ello influya en las otras capas. Estas capas se corresponden con la de presentación, aplicación y persistencia.

Figura 18 - Arquitectura a tres capas.

4.1. Nivel de presentación La primera capa es la de presentación. Esta capa es la encargada de interaccionar

con el usuario a través de una representación visual. En esta capa también se ofrecen servicios al usuario.

A continuación presentamos algunas capturas de pantalla representativas del proyecto.

PRESENTACIÓN

PERSISTENCIA

APLICACIÓN

Page 37: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 35

Figura 19 Captura de la página de inicio.

Esta es la pantalla principal del sitio web. La podemos dividir en varias partes.

• La cabecera, que consta de tres elementos. A la parte izquierda encontramos la zona institucional, con el logotipo del colegio, en la parte central el nombre del colegio (C.P. Emilio Lluch) y debajo de ambos una barra amarilla donde aparece la fecha y la hora actual, la cual se va actualizando cada segundo.

Figura 20 Cabecera de la página.

• En la parte izquierda de la página encontramos la zona de navegación

representada por un menú desde el cual podemos acceder a las diferentes secciones.

Page 38: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 36

Figura 21 Menú del sitio web.

Justo debajo del menú se encuentra una pequeña zona de entrada de datos para que

los usuarios registrados en la base de datos puedan identificarse introduciendo su login y su contraseña y acceder a su zona privada.

Figura 22 Formulario de inicio de sesión

• Por último, en la zona central de la página se haya la zona de información, que a su vez la podemos dividir en dos partes. En la parte superior se ubica la información principal que ofrece la página, mientras que en la parte inferior aparecen las cinco últimas noticias introducidas en la base de datos.

Figura 23 Zona de información de la página de inicio.

A continuación presentamos otros ejemplos de las páginas web implementadas en

nuestro proyecto. La siguiente página se corresponde con la que muestra el calendario escolar. Para ello se ha utilizado un script que forma un calendario, mostrando los sábados y domingos en rojo, así como los festivos marcados como tales en la base de datos. También se marcan de otro color los eventos introducidos por el centro en la base de datos. Si pinchamos en un festivo o un día en el cual hay un evento programado, nos dice de qué se trata en la parte inferior de la página.

Page 39: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 37

Figura 24 Captura de la página donde se muestra el calendario escolar.

La siguiente captura de pantalla se corresponde con un ejemplo de página de la zona

privada del alumno. Para ello el alumno debe haberse identificado antes. En esta pantalla por ejemplo, se muestra el horario de un alumno, leyendo el horario de cada asignatura de la base de datos. Como podemos comprobar, el menú ha cambiado, ofertando ahora las opciones de la zona privada del alumno. También observamos que en la zona donde se ha identificado el usuario, ahora aparece “Bienvenido” seguido de su nombre de pila. También da la opción de cerrar sesión, volviendo tras ello a la página inicial del sitio web. Otro cambio es que ahora en vez de mostrar en la parte inferior noticias, sólo se muestran los próximos eventos referentes al desarrollo del curso ya que son los que más interés tienen para el alumno, como por ejemplo la fecha de inicio del próximo curso que es lo que hemos puesto en la captura de pantalla adjunta.

Figura 25 Captura del horario de clase en la zona privada de un alumno.

Page 40: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 38

Por último, la siguiente captura de pantalla pertenece a la zona privada del profesor. Al igual que la zona privada del alumno, esta parte del sitio también dispone de su propio menú. En este ejemplo, podemos apreciar la pantalla de la que dispone el profesor para poner calificaciones a los alumnos que imparte clase, pudiendo elegir el trimestre correspondiente y pudiendo guardar cada nota individualmente o todas a la vez.

Figura 26 Captura del formulario de notas de la zona privada del profesor.

Page 41: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 39

4.2. Nivel de aplicación

Esta capa es la encargada de implementar el comportamiento de nuestro sitio web. También sirve de enlace entre las otras dos capas, ya que la capa de presentación no accede a la base de datos directamente, sino que ésta se comunica con la capa de aplicación para demandarle el servicio deseado y la capa de aplicación se comunica con la capa de persistencia para recuperar los datos necesarios.

Figura 27 Capas del proyecto

La capa de aplicación está organizada en cinco componentes. El analizador del login

será el encargado de comprobar el usuario y luego redirigir a su zona privada correspondiente cuando un usuario de identifique desde la zona anónima. Los siguientes

Capa de presentación

Zona anónima Zona alumno Zona profesor

Capa de aplicación

Analizadorlogin Alumno_inc Profesor_inc Anonimo_inc

bd

Capa de persistencia

Base de datos

Page 42: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 40

tres componentes (anonimo_inc, alumno_inc y profesor_inc) son los encargados de implementar la lógica de las zonas correspondientes.

Cuando alguno de estos ficheros necesite acceder a la base de datos ya sea para

realizar una consulta o para modificar datos, lo hará a través de bd. Este componente surge de aplicar el patrón de diseño llamado Fachada o Façade. Este patrón consiste en utilizar la clase bd para todas las operaciones que interactúen con la base de datos. El uso de este patrón es muy útil para actualizar cambios en la base de datos como pueden ser el tipo de base de datos (MySQL, SQL Server, etc.) o el nombre de la base de datos por ejemplo. En nuestro caso nos ha sido muy útil, por ejemplo, para hacer pruebas en nuestro servidor local y luego subirlas al servidor prestado por el director del proyecto, ya que en ambos accedíamos a la base de datos con usuarios distintos. De esta forma, para adaptarnos a la base de datos del servidor simplemente teníamos que cambiar la clase bd sin tener que tocar ningún fichero más.

4.3. Nivel de persistencia

La capa de persistencia es la que dota al sistema de poder mantener los datos de una

forma persistente como su propio nombre indica, es decir, de mantener información de una sesión a otra aunque el sistema no esté en uso.

A continuación mostramos el diagrama entidad-relación utilizado para la

implementación de la base de datos de nuestro proyecto.

Page 43: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 41

Figura 28 Diagrama entidad-relación.

En el diagrama podemos observar los tipos de personal que existen en el colegio,

como son los pertenecientes al equipo directivo, el administrador, el padre, el alumno y

Page 44: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 42

el profesor. Esta especialización de usuario registrado es disjunta, ya que por ejemplo, un profesor puede formar parte del equipo directivo del centro o un profesor puede llevar a su hijo a ese colegio, por lo que también puede ser padre.

Los miembros del equipo directivo, junto con el administrador, son los únicos que

pueden introducir eventos. Estos eventos pueden ser de varios tipos según su atributo evento. Pueden ser del tipo festivo, los cuales se utilizan en el calendario escolar para marcar los festivos en rojo. También podrán ser de tipo noticia, los cuales se muestran en la parte inferior de la zona pública o de tipo evento del curso, los cuales se muestran en las zonas privadas y muestran información de interés a los usuarios registrados, como puede ser el día de inicio de las clases.

Los alumnos están matriculados en un grupo, el cual se caracteriza por su número de

curso y su letra. Uno de ellos, además, será el delegado del mismo. Cada grupo también tendrá un profesor que lo tutorice. Los grupos están compuestos por asignaturas, las cuales son impartidas por un profesor, pudiendo un profesor impartir múltiples asignaturas. Por cada asignatura y curso, el alumno podrá obtener una nota por trimestre. Asimismo, cada vez que falte a una clase se le pondrá una falta de asistencia que estará por defecto sin justificar hasta que los padres la justifiquen al tutor del grupo.

Todos los usuarios identificados en el sistema podrán publicar anuncios en el tablón

de anuncios, así como reservar una instalación del colegio, mientras que los profesores serán los únicos que puedan reservar equitaciones (radio-cd, proyector, .etc.).

Page 45: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 43

5. Implementación

5.1. Tecnologías

Dada la necesidad de crear contenidos dinámicos, debemos utilizar otros lenguajes a

parte de HTML. Para este proyecto se ha optado por el lenguaje PHP acompañado de una base de datos MySQL. Estas tecnologías cumplen sobradamente con nuestras necesidades y están muy extendidas, por lo que no supondrá una dificultad encontrar documentación en la cual apoyarnos durante el desarrollo del sitio web. También cabe destacar el hecho de que sean tecnologías de libre distribución y uso.

5.1.1. HTML El HTML, acrónimo inglés de HyperText Markup Language (lenguaje de marcas

hipertextuales), es un lenguaje de marcación diseñado para estructurar textos y presentarlos en forma de hipertexto, que es el formato estándar de las páginas web. Gracias a Internet y a los navegadores del tipo Internet Explorer, Opera, Firefox o Netscape, el HTML se ha convertido en uno de los formatos más populares que existen para la construcción de documentos y también de los más fáciles de aprender.HTML es una aplicación de SGML conforme al estándar internacional ISO 8879.

El lenguaje HTML puede ser creado y editado con cualquier editor de textos básico,

como puede ser Gedit, el Bloc de Notas de Windows (o Notepad), o cualquier otro editor que admita texto sin formato como GNU Emacs, Microsoft Wordpad, etc. Existen además, otros programas para la realización de sitios Web o edición de código HTML, como por ejemplo Microsoft FrontPage o Macromedia Dreamweaver.

HTML utiliza etiquetas o marcas, que consisten en breves instrucciones de

comienzo y final, mediante las cuales se determinan la forma en la que debe aparecer en su navegador el texto, así como también las imágenes y los demás elementos, en la pantalla del ordenador.

Toda etiqueta se identifica porque está encerrada entre los signos menor que y

mayor que (<>), y algunas tienen atributos que pueden tomar algún valor. En general las etiquetas se pueden aplicar de las siguientes formas:

• Se abren y se cierran, como por ejemplo: <b>negrita</b> que se vería en su navegador como negrita.

• No pueden abrirse y cerrarse, como <hr> que se vería en su navegador como una línea horizontal.

• Otras que pueden abrirse y cerrarse, como por ejemplo <p>.

5.1.2. XHTML

Page 46: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 44

XHTML, acrónimo inglés de eXtensible Hypertext Markup Language (lenguaje extensible de marcado de hipertexto), es el lenguaje de marcado pensado para sustituir a HTML como estándar para las páginas web. XHTML es la versión XML de HTML, por lo que tiene, básicamente, las mismas funcionalidades, pero cumple las especificaciones, más estrictas, de XML. Su objetivo es avanzar en el proyecto del World Wide Web Consortium de lograr una web semántica, donde la información, y la forma de presentarla estén claramente separadas. En este sentido, XHTML serviría únicamente para transmitir la información que contiene un documento, dejando para hojas de estilo y JavaScript su aspecto y diseño en distintos medios (ordenadores, PDAs, teléfonos móviles, impresoras...).

XHTML es el sucesor de HTML. Es por eso que muchos lo consideran la “versión

actual” del HTML, pero es una recomendación aparte y a la vez paralela; la W3C continúa recomendando el uso de XHTML 1.1, XHTML 1.0, y HTML 4.01 para publicar en la web.

La necesidad de una versión más estricta de HTML se sintió principalmente porque

el contenido de la World Wide Web ahora puede visualizarse desde numerosos dispositivos (como móviles) aparte de los ordenadores tradicionales, donde no pueden dedicarse recursos suplementarios para afrontar la complejidad añadida de la sintaxis del HTML.

La mayoría de las versiones recientes de los navegadores web más populares

soportan XHTML adecuadamente, pero algunas versiones más antiguas solo pueden leer el XHTML como si se tratara de HTML. El mayor inconveniente es que el Internet Explorer de Microsoft es incompatible con XHTML, a pesar de que esta empresa sea miembro de la W3C. Por tanto, gran parte de los autores de sitios web se ven forzados a elegir entre la escritura de documentos válidos, respetuosos con los estándares u ofrecer contenido que se visualice correctamente en la mayor parte de los navegadores.

Los cambios de HTML a la primera generación de XHTML (es decir, XHTML 1.x)

son menores ya que, principalmente, están destinados a conseguir la conformidad con XML. El cambio más importante es el requisito de que el documento esté bien formado y que todas las etiquetas estén explícitamente cerradas, como se requiere en XML. Como las etiquetas en XML distinguen entre mayúsculas y minúsculas (case-sensitive), la recomendación XHTML ha definido todos los nombres de etiqueta en minúsculas. En XHTML, los valores de los atributos deben encerrarse entre comillas ('simples' o "dobles", es indiferente). Al contrario ocurría en SGML y por consecuencia en HTML, donde las comillas podían omitirse en algunos casos. Todos los elementos han de ser explícitamente cerrados, incluyendo elementos vacíos como pueden ser img o br. Esto puede hacerse añadiendo una barra a la etiqueta: <img … /> y <br />. La minimización de atributos (como <option selected>) está también prohibida, ya que el atributo “selected” no contiene ningún valor explícito; en lugar de eso, se usa <option selected="selected">.

Page 47: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 45

5.1.3. CSS Las hojas de estilo en cascada (Cascading Style Sheets, CSS) son un lenguaje formal

usado para definir la presentación de un documento estructurado escrito en HTML o XML (y por extensión en XHTML). El W3C (World Wide Web Consortium) es el encargado de formular la especificación de las hojas de estilo que servirá de estándar para los agentes de usuario o navegadores.

La idea que se encuentra detrás del desarrollo de CSS es separar la estructura de un

documento de su presentación. Por ejemplo, el elemento de HTML <H1> indica que un bloque de texto es un encabezamiento y que es más importante que un bloque etiquetado como <H2>. Versiones más antiguas de HTML permitían atributos extra dentro de la etiqueta abierta para darle formato (como el color o el tamaño de fuente). No obstante, cada etiqueta <H1> debía disponer de la información si se deseaba un diseño consistente para una página, y además, una persona que lea esa página con un navegador pierde totalmente el control sobre la visualización del texto.

Cuando se utiliza CSS, la etiqueta <H1> no debería proporcionar información sobre

como va a ser visualizado, solamente marca la estructura del documento. La información de estilo separada en una hoja de estilo, especifica cómo se ha de mostrar <H1> : color, fuente, alineación del texto, tamaño, y otras características no visuales como definir el volumen de un sintetizador de voz (véase Sintetización del habla), por ejemplo.

La información de estilo puede ser adjuntada tanto como un documento separado o

en el mismo documento HTML. En este último podrían definirse estilos generales en la cabecera del documento o en cada etiqueta particular mediante el atributo "style".

Las ventajas de utilizar CSS (u otro lenguaje de estilo) son: • Control centralizado de la presentación de un sitio web completo con lo que se

agiliza de forma considerable la actualización del mismo. • Los Navegadores permiten a los usuarios especificar su propia hoja de estilo

local que será aplicada a un sitio web remoto, con lo que aumenta considerablemente la accesibilidad. Por ejemplo, personas con deficiencias visuales pueden configurar su propia hoja de estilo para aumentar el tamaño del texto o remarcar más los enlaces.

• Una página puede disponer de diferentes hojas de estilo según el dispositivo que la muestre o incluso a elección del usuario. Por ejemplo, para ser impresa, mostrada en un dispositivo móvil, o ser "leída" por un sintetizador de voz.

• El documento HTML en sí mismo es más claro de entender y se consigue reducir considerablemente su tamaño.

Hay varias versiones: CSS1 y CSS2, con CSS3 en desarrollo por el World Wide

Web Consortium (W3C). Los navegadores modernos implementan CSS1 bastante bien, aunque existen pequeñas diferencias de implementación según marcas y versiones de los navegadores. CSS2, sin embargo, está solo parcialmente implementado en los más recientes. Un problema muy conocido de implementación de CSS es el de la versión 5.X del popular navegador Internet Explorer que utiliza un modelo no estándar para el cálculo de las medidas.

Page 48: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 46

5.1.4. JavaScript JavaScript es un lenguaje interpretado, es decir, que no requiere compilación,

utilizado principalmente en páginas web, con una sintaxis semejante a la del lenguaje Java.

Al contrario que Java, JavaScript no es un lenguaje orientado a objetos propiamente

dicho, ya que no dispone de Herencia, es más bien un lenguaje basado en prototipos, ya que las nuevas clases se generan clonando las clases base (prototipos) y extendiendo su funcionalidad. Todos los navegadores interpretan el código JavaScript integrado dentro de las páginas web. Para interactuar con una página web se provee al lenguaje JavaScript de una implementación del DOM.

El lenguaje fue inventado por Brendan Eich en la empresa Netscape

Communications, que es la que fabricó los primeros navegadores web comerciales. Tradicionalmente, se venía utilizando en páginas web HTML, para realizar tareas y operaciones en el marco de la aplicación únicamente cliente, sin acceso a funciones del servidor. JavaScript se ejecuta en el agente de usuario al mismo tiempo que las sentencias van descargándose junto con el código HTML.

Los autores inicialmente lo llamaron Mocha y más tarde LiveScript pero fue

rebautizado como JavaScript en un anuncio conjunto entre Sun Microsystems y Netscape, el 4 de diciembre de 1995.

En 1997 los autores propusieron JavaScript para que fuera adoptado como estándar de la the European Computer Manufacturers' Association ECMA, que a pesar de su nombre no es europeo sino internacional, con sede en Ginebra. En junio de 1997 fue adoptado como un estándar ECMA, con el nombre de ECMAScript. Poco después también lo fue como un estándar ISO.

JScript es la implementación de ECMAScript de Microsoft, muy similar al

JavaScript de Netscape, pero con ciertas diferencias en el modelo de objetos del navegador que hacen a ambas versiones con frecuencia incompatibles. Para evitar estas incompatibilidades, el World Wide Web Consortium (W3C) diseñó el estándar Document Object Model (DOM, ó Modelo de Objetos del Documento en castellano), que incorporan Konqueror, las versiones 6 de Internet Explorer y Netscape Navigator, Opera versión 7, y Mozilla desde su primera versión.

5.1.5. PHP PHP es un lenguaje de programación usado generalmente para la creación de

contenido para sitios web. PHP es un acrónimo recurrente que significa "PHP Hypertext Pre-processor" (inicialmente PHP Tools, o, Personal Home Page Tools), y se trata de un lenguaje interpretado usado para la creación de aplicaciones para servidores, o creación de contenido dinámico para sitios web. Últimamente también para la creación de otro tipo de programas incluyendo aplicaciones con interfaz gráfica usando la biblioteca GTK+.

Page 49: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 47

El fácil uso y la similitud con los lenguajes más comunes de programación estructurada, como C y Perl, permiten a la mayoría de los programadores experimentados crear aplicaciones complejas con una curva de aprendizaje muy suave. También les permite involucrarse con aplicaciones de contenido dinámico sin tener que aprender todo un nuevo grupo de funciones y prácticas. Debido al diseño de PHP, también es posible crear aplicaciones con una interfaz gráfica para el usuario (también llamada GUI), utilizando la extensión PHP-GTK. También puede ser usado desde la línea de órdenes, de la misma manera como Perl o Python pueden hacerlo, esta versión de PHP se llama PHP CLI (Command Line Interface).

Su interpretación y ejecución se da en el servidor, en el cual se encuentra

almacenado el script, y el cliente sólo recibe el resultado de la ejecución. Cuando el cliente hace una petición al servidor para que le envíe una página web, generada por un script PHP, el servidor ejecuta el intérprete de PHP, el cual procesa el script solicitado que generará el contenido de manera dinámica, pudiendo modificar el contenido a enviar, y regresa el resultado al servidor, el cual se encarga de regresárselo al cliente. Además es posible utilizar PHP para generar archivos PDF, Flash, así como imágenes en diferentes formatos, entre otras cosas.

Permite la conexión a diferentes tipos de servidores de bases de datos tales como

MySQL, Postgres, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite; lo cual permite la creación de Aplicaciones web muy robustas.

PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas

operativos tales como UNIX (y de ese tipo, como Linux), Windows y Mac OS X, y puede interactuar con los servidores de web más populares ya que existe en versión CGI, módulo para Apache, e ISAPI.

El modelo PHP puede ser visto como una alternativa al sistema de Microsoft que

utiliza ASP.NET/C#/VB.NET, a ColdFusion de la compañía Macromedia, a JSP/Java de Sun Microsystems, y al famoso CGI/Perl. Aunque su creación y desarrollo se da en el ámbito de los sistemas libres, bajo la licencia GNU, existe además un IDE comercial llamado Zend Optimizer.

Los principales usos del PHP son los siguientes: • Programación de páginas web dinámicas, habitualmente en combinación con el

motor de base datos MySQL, aunque cuenta con soporte nativo para otros motores, incluyendo el estándar ODBC, lo que amplía en gran medida sus posibilidades de conexión.

• Programación en consola, al estilo de Perl o Shell scripting. • Creación de aplicaciones gráficas independientes del navegador, por medio de la

combinación de PHP y GTK (GIMP Tool Kit), lo que permite desarrollar aplicaciones de escritorio en los sistemas operativos en los que está soportado.

Entre las ventajas de PHP podemos encontrar:

• Es un lenguaje multiplataforma. • Capacidad de conexión con la mayoría de los manejadores de base de datos que

se utilizan en la actualidad, destaca su conectividad con MySQL • Leer y manipular datos desde diversas fuentes, incluyendo datos que pueden

ingresar los usuarios desde formularios HTML.

Page 50: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 48

• Capacidad de expandir su potencial utilizando la enorme cantidad de módulos (llamados ext's o extensiones).

• Posee una amplia documentación en su página oficial ([1]), entre la cual se destaca que todas las funciones del sistema están explicadas y ejemplificadas en un único archivo de ayuda.

• Es libre, por lo que se presenta como una alternativa de fácil acceso para todos. • Permite las técnicas de Programación Orientada a Objetos. • Permite crear los formularios para la web. • Biblioteca nativa de funciones sumamente amplia e incluida • No requiere definición de tipos de variables ni manejo detallado del bajo nivel.

5.1.6. MySQL MySQL es un sistema de gestión de base de datos, multihilo y multiusuario con más

de seis millones de instalaciones. MySQL AB desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado lo ofrece bajo la GNU GPL, pero, empresas que quieran incorporarlo en productos privativos pueden comprar a la empresa una licencia que les permita ese uso. Está desarrollado en su mayor parte en ANSI C.

Al contrario de proyectos como el Apache, donde el software es desarrollado por

una comunidad pública, y el copyright del código está en poder del autor individual, MySQL está poseído y patrocinado por una empresa privada, que posee el copyright de la mayor parte del código. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson, y Michael Widenius.

SQL (Lenguaje de Consulta Estructurado) fue comercializado por primera vez en

1981 por IBM, el cual fue presentado a ANSI y desde ese entonces ha sido considerado como un estándar para las bases de datos relacionales. Desde 1986, el estándar SQL ha aparecido en diferentes versiones como por ejemplo: SQL:92, SQL:99, SQL:2003. MySQL es una idea originaria de la empresa opensource MySQL AB establecida inicialmente en Suecia en 1995 y cuyos fundadores son David Axmark, Allan Larsson, y Michael "Monty" Widenius. El objetivo que persigue esta empresa consiste en que MySQL cumpla el estándar SQL, pero sin sacrificar velocidad, fiabilidad o usabilidad.

Michael Widenius en la década de los 90 trató de usar mSQL para conectar las

tablas usando rutinas de bajo nivel ISAM, sin embargo, mSQL no era rápido y flexible para sus necesidades. Esto lo conllevó a crear una API SQL denominada MySQL para bases de datos muy similar a la de mSQL pero más portable.

La procedencia del nombre de MySQL no es clara. Por más de 10 años, las

herramientas han mantenido el prefijo My. También, se cree que tiene relación con el nombre de la hija del cofundador Monty Widenius quien se llama My.

Por otro lado, el nombre del delfín de MySQL es Sakila y fue seleccionado por los

fundadores de MySQL AB en el concurso “Name the Dolphin”. Este nombre fue

Page 51: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 49

enviado por Ambrose Twebaze, un desarrollador de Opensource Africano, derivado del idioma SiSwate, el idioma local de Swaziland y corresponde al nombre de una ciudad en Arusha, Tanzania, cerca de Uganda la ciudad origen de Ambrose.

MySQL es muy utilizado en aplicaciones web como MediaWiki, Amazon, Yahoo,

Flickr o Drupal; en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL. MySQL es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones.

Page 52: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 50

5.2. Descripción de la implementación 5.2.1. Sección pública

La capa de presentación se ha implementado en HTML, aplicando los estilos con

hojas de estilo CSS, y con PHP. Esta capa está representada por los ficheros Alumno_* (menos Alumno_inc.php), Profesor_* (menos Profesor_inc.php), index.php, historia.php, equipodirectivo.php, reglamento.php, calendario.php, localización.php, contactar.php y enlaces.php. Se ha intentado que el uso de las CSS sean lo más compatibles posibles con los diferentes navegadores existentes en el mercado ya que por desgracia no todos siguen completamente los estándares.

La cabecera simplemente se compone de dos imágenes (el logotipo del colegio y el

nombre del colegio). En la parte inferior de la cabecera se ha implementado la fecha y la hora, las cuales se actualizan en tiempo real. Para ello se ha definido una capa en HTML:

<td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> Esta capa es rellenada por el script programado en Javascript llamado fecha.js, el

cual cada segundo lee la fecha del sistema y la plasma en la capa que hemos llamado campoHora. La función encargada de leer la fecha es la siguiente:

function displayTime() { var hora = new Date(); var horas = hora.getHours(); var minutos = hora.getMinutes(); var segundos = hora.getSeconds(); if (segundos < 10) segundos = "0" + segundos; if (minutos < 10) minutos = "0" + minutos; cadena = displayDate() + " " + horas + ":" + minutos + ":" +

segundos; document.getElementById('campoHora').innerHTML = cadena; tiempo = setTimeout("displayTime()",1000); } Esta función obtiene la fecha (obtenida a su vez de la función displayDate()) y la

hora y las guarda en la variable cadena. Para volcar el contenido de esa variable en la capa correpondiente, asignamos dicha variable a la propiedad innerHTML de la capa campoHora. Por último, para que la hora se actualice cada segundo llamamos a la función setTimeout pasándole como parámetros la misma función en la que estamos y un intervalo de 1000 milisegundos.

Finalmente, para que la página HTML ejecute el Javascript al cargarse basta con

poner estas líneas: <head> … <script type="text/javascript" src="./js/fecha.js"> </script>

Page 53: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 51

… </head> <body onload="javascript:displayTime();">

Figura 29 - Cabecera del sitio web.

El menú es una lista desordenada, la cual hemos modificado para que no salga la

viñeta al principio de cada elemento y salga cada uno con borde y fondo verde. Para ello hemos aplicado los siguientes estilos descritos en el fichero general.css. El primero se aplica a los ítems que estén dentro de una lista desordenada, como es el caso de los elementos del menú. El segundo se aplica a los ítems de la lista desordenada que sean enlaces. En estos estilos definimos el color, el tipo de letra, tamaño de la letra, la alineación y el tipo de lista entre otras cosas.

ul li { border: medium ridge #CCFF66; background-color: #99CC00; list-style-type: none; font-family: Verdana, Arial, Helvetica, sans-serif; text-align: left; font-size: 14px; color: #FF66CC; height: 24px; vertical-align: middle; margin-left: -40px; padding-top: 8px; width: 140px; } ul li a { font-family: Verdana, Arial, Helvetica, sans-serif; color: #003399; font-weight: bold; font-size: 13px; }

Cuando pasamos el curso por encima de un elemento podemos observar que cambia

el color de fondo del elemento. Para ello especificamos para el último estilo la propiedad hover, la cual se activa cuando pasamos el cursor por encima del elemento.

ul li:hover { background-color: #CCFFCC; }

Page 54: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 52

Figura 30 Menú de la zona anónima.

5.2.2. Sección privada

El formulario de identificación consta de dos campos. El primero es para introducir el login del usuario, mientras que el segundo es de tipo password que, como su propio nombre indica, es para introducir la contraseña. El código HTML del formulario es el siguiente.

<td><p>Autenticarse</p> <form id="form1" method="post" action="analizadorlogin.php"> <p> <label>Login <input type="text" name="log" /> </label> <br/> <label>Password <input type="password" name="pass" /> </label> <label> <input type="submit" value="Identificarse" name="b" /> </label> </p> </form> <p> Cuando se pulsa sobre identificarse, se redirige al usuario al archivo

analizadorlogin.php, el cual será explicado más abajo, cuando nos centremos en los ficheros correspondientes a la capa de aplicación. Si la autentificación es errónea, se crea una cookie y se devuelve al usuario a index, que al encontrar esta cookie muestra un mensaje advirtiéndolo, como se muestra en el código siguiente.

<?php if($_COOKIE['login'] == "Error") { echo '<span class="fechaNoticia">Autenticación

errónea</span>'; } ?>

Figura 31 Formulario de identificación.

Page 55: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 53

La capa de aplicación se ha desarrollado íntegramente en PHP. Esta capa la forman los ficheros Anonimo_inc.php, Alumno_inc.php, Profesor_inc.php, analizadorlogin.php y bd.php. Los cuatro primeros se comunican directamente con la capa de presentación, mientras que bd.php se comunica con la capa de persistencia, ya que en ella se implementan las funciones necesarias para acceder a la base de datos.

Las funciones implementadas para acceder a la base de datos son las siguientes. Esta función se encarga de realizar la conexión con la base de datos, con el usuario

cole1 y su correspondiente contraseña. Si la conexión falla por cualquier motivo, devuelve un mensaje de error.

function Conectar() //realiza la conexion con la base de datos. { if (!($link=mysql_connect("localhost","cole1","webcole"))) { echo "Error conectando a la base de datos."; exit(); } if (!mysql_select_db("webcole",$link)) { echo "Error seleccionando la base de datos."; exit(); } return $link; } Esta función recibe como parámetros la sentencia sql a ejecutar y la conexión sobre

la cual realizarla. function consulta($sql, $c) { $res = mysql_query($sql, $c); return $res; } Con esta función, al realizar una consulta, avanza al siguiente registro de las filas

devueltas por la consulta. function siguiente($res) { return mysql_fetch_assoc($res); } Por último, con esta función podemos cerrar la conexión con la base de datos

cuando hemos terminado de trabajar con ella. function Desconectar($link) { mysql_close($link); //cierra la conexion } Según avanzamos en el proyecto, también le añadimos funciones para facilitar la

lectura de datos de la base de datos, como por ejemplo funciones para sacar la fecha de los campos de tipo DateTime en el formato deseado o para convertir los caracteres especiales a formato HTML, como son las vocales acentuadas o las eñes.

function sacarFecha($fecha_datetime) { $fecha = split("-",$fecha_datetime); $hora = split(":",$fecha[2]); $fecha_hora=split(" ",$hora[0]);

Page 56: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 54

$fecha_convertida=$fecha_hora[0] . '-' . $fecha[1] . '-' . $fecha[0];

return $fecha_convertida; } //Reemplaza en un texto las tildes y caracteres especiales por su

equivalente en html function tohtml($texto) { $especial=array('á','é','í','ó','ú','ñ','Á','É','Í','Ó','Ú','Ñ',

'à','è','ò','À','È','Ò'); $traducir=array('&aacute;','&eacute;','&iacute;','&oacute;','&ua

cute;','&ntilde;','&Aacute;','&Eacute;','&Iacute;','&Oacute;','&Uacute;','&Ntilde;','&agrave;','&egrave;','&ograve;','&Agrave;','&Egrave;','&Ograve;');

return str_replace($especial,$traducir,$texto); } El fichero analizadorlogin.php es el encargado de redireccionar a un usuario cuando

se identifica a su zona privada. Esta clase utiliza la clase bd para hacer una consulta en la base de datos para cerciorar que el usuario existe, que su contraseña es la correcta y que tipo de usuario es. Para ello consultamos la tabla usuario, donde buscamos si coincide el login y la contraseña. Si ambos coinciden, buscamos en la tabla profesor y en la tabla alumno para comprobar que tipo de usuario es y finalmente lo redirigimos a su zona privada correspondiente mediante la cabecera http llamada Location.

$ok = 0; // se han encontrado en la base de datos session_start(); include("bd.php"); $conn = conectar(); $sql = 'SELECT * FROM usuario'; $resultado = consulta($sql, $conn); while($row = siguiente($resultado)) { if($_POST['pass'] == $row['contrasenya'] && $_POST['log']

== $row['login']) { $ok = 1; //Guardamos el cookie con el nombre del usuario

conectado $_SESSION["id"] = $row["login"]; //Comprobamos si es profesor $sql2 = 'SELECT * FROM profesor'; $resultado2 = consulta($sql2, $conn); while($row2 = siguiente($resultado2)) { if($_POST['log'] == $row2['login']) { //mysql_close($dp); $_SESSION["tipo"] = "Profesor"; header('Location: intranetProfe.php'); break; } } //Comprobamos si es alumno $sql3 = 'SELECT * FROM alumno'; $resultado3 = consulta($sql3, $conn); while($row3 = siguiente($resultado3))

Page 57: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 55

{ if($_POST['log'] == $row3['login']) { $_SESSION["tipo"] = "Alumno"; header('Location: intranetAlumno.php'); } } } } if($ok == 0) { setcookie('login', 'Error', time()+1); header("Location: index.php"); echo '<script language="Javascript"> alert("Autenticación

errónea"); </script>'; } desconectar($conn); Cuando en la zona del alumno se requiere alguna función php para cargar los

contenidos de la base de datos, carga esta función del fichero Alumno_inc.php. Del mismo modo en la zona del profesor los carga del fichero Profesor_inc.php. También la zona del usuario anónimo tiene su fichero de funciones para implementar la capa de aplicación, en este caso es el fichero Anonimo_inc.php.

Un ejemplo de la llamada a estas funciones lo podemos encontrar en todas las

páginas del usuario anónimo. En la parte inferior encontramos las noticias más recientes introducidas en la base de datos. Para esto llama a la función noticias() que se encuentra en el fichero Anonimo_inc.php de la siguiente forma:

<h3>Noticias</h3> <p> <?php require_once ("Anonimo_inc.php"); noticias(); ?> </p> La función noticias() está implementada de la siguiente forma. Primero conecta con

la base de datos y realiza una consulta de todos los eventos de tipo ‘Noticia’ ordenados descendentemente. Luego mediante el bucle for hacemos que lea las cinco primeras noticias que, como están ordenadas en orden descendente, serán las cinco noticias más recientes. Ponemos las noticias en la página y para terminar nos desconectamos de la base de datos.

function noticias() { $conn=Conectar(); $sql="SELECT * FROM evento WHERE titulo = 'Noticia' ORDER BY

idevento DESC"; $res=consulta($sql,$conn); for($i=0; $i<5 && $i<numeroFilas($res);$i++) {

Page 58: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 56

$row = siguiente($res); echo "<p><span

class='fechaNoticia'>".sacarFecha($row["fecha"])." </span>".tohtml($row["descripcion"])." </p>";

} desconectar($conn); }

Figura 32 Página principal con la zona de noticias en la parte inferior.

En este caso, la capa de persistencia viene implementada como una base de datos en

MySQL. Hemos elegido MySQL por tratarse de una base de datos libre y gratuita, así como por su buena integración de su uso con PHP. Se ha cambiado el tipo de tablas por defecto (MyISAM), ya que la original no aceptaba las restricciones que queríamos imponer en las tablas, por lo que hemos puesto tablas de tipo InnoDB. Para ello simplemente hemos tenido que descomentar las líneas referentes a InnoDB del fichero de configuración de MySQL, my.cnf. Para crear la base de datos hemos usado PHPMyAdmin. En el anexo se detalla el fichero de creación de la base de datos, llamado setup.php.

Page 59: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 57

6. Pruebas

Con el fin de comprobar cómo responde nuestra aplicación a las distintas situaciones en las que se puede encontrar hemos decidido realizar una serie de pruebas, que consistirán en las siguientes:

• Tamaño de la ventana. • Comprobador de links

6.1 Tamaño de la ventana Gracias a la página Web http://www.anybrowser.com/ podemos ver como

quedaría nuestra Web con distintos tamaños de ventana sin la necesidad de tener que cambiar la resolución de nuestro monitor.

Con una resolución de 600x480 la página inicial de nuestra Web se vería de la siguiente forma:

Figura 33 Resolución a 600x480

Como podemos ver se aprecian problemas con la cabecera, aunque hay que

señalar de desde tiempo estas resoluciones tan bajas son cada vez menos frecuentes.Con una resolución de 800x600, se puede ver que si se representa adecuadamente.

Page 60: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 58

Figura 34 Resolución 800x600

A partir de esta resolución (800x600) la Web se desplegará adecuadamente en

los navegadores.

Figura 35 Resolución 1024x768

Page 61: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 59

6.2 Comprobador de links Debido a que en aplicación la mayoría de las páginas están en la intranet (con

acceso restringido, solamente realizaremos esta prueba sobre la parte pública de nuestra Web. Siendo el resultado obtenido el siguiente:

http://pion.disca.upv.es/webcole/:

• View http://pion.disca.upv.es/webcole/css/general.css: OK • View http://pion.disca.upv.es/webcole/js/fecha.js: OK • View http://pion.disca.upv.es/webcole/css/principal.css: OK • View http://pion.disca.upv.es/webcole/#: OK • View http://pion.disca.upv.es/webcole/historia.php: OK • View http://pion.disca.upv.es/webcole/equipoDirectivo.php: OK • View http://pion.disca.upv.es/webcole/reglamento.php: OK • View http://pion.disca.upv.es/webcole/calendario.php: OK • View http://pion.disca.upv.es/webcole/localizacion.php: OK • View http://pion.disca.upv.es/webcole/contactar.php: OK • View http://pion.disca.upv.es/webcole/enlaces.php: OK • View http://pion.disca.upv.es/webcole/analizadorlogin.php: OK

Total Number of links for this page: 13

Con lo que todos los enlaces de la sección pública son válidos.

6.3 Estándar XHTML Para comprobar si nuestra aplicación cumplía con dicho estándar utilizamos una

aplicación en línea proporcionado por el World Wide Web Consortium (W3c), que fueron los responsables del estándar. Esta aplicación se puede encontrar en la siguiente dirección: http://validator.w3.org/

Como esta aplicación no podía entrar en la intranet del colegio, tuvimos que entrar en cada página y copiar el código fuente de la página para introducirlo en el validador.

Page 62: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 60

Figura 36 XHTML - página con errores

Donde más problemas tuvimos fue en la parte del profesor, llegando a ser necesario el pasar del XHTML 1.0 Strict al XHTML 1.0 Transitional, que tiene menos restricciones que el estricto. El principal motivo de este cambio fue hacer posible mantener sin cambios el código javascript que hacia uso de la propiedad “name” en los formularios. Esta propiedad no está permitida en el XHTML 1.0 Strict.

Figura 37 XHTML - página válida

Page 63: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 61

Páginas que cumple con el XHTML 1.0 Transitional:

Profesor_equipaciones.php Profesor_faltas.php Profesor_instalaciones.php Profesor_notas.php Profesor_reserva_instalacion.php Profesor_reserva_equipacion.php Alumno_reserva_instalacion.php

Figura 38 xhtml

Esta imagen indica que ha superado el estándar XHTML 1.0, y por tanto podría

colocarse esta imagen en el sitio Web

6.4 Estándar CSS Los css nos permiten cambiar el estilo de las distintas etiquetas que se

encuentran en las páginas HTML, siempre que estas páginas agreguen las css. En este caso, al igual que en el estándar XHTML, se ha utilizado una aplicación online del w3c. La dirección para acceder a esta aplicación es la siguiente: http://jigsaw.w3.org/css-validator/ . El resultado obtenido al pasarle el css de la Web se puede ver en la siguiente imagen.

Figura 39 Resultado de la validación CSS

Page 64: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 62

6.5 Navegadores

Esta prueba consiste en comprobar el correcto funcionamiento en los navegadores más utilizados. En concreto comprobaremos los siguientes navegadores:

• Firefox 2 • Explorer 6 • Explorer 7 • Opera 9 • Mozilla 1.7

6.5.1 Firefox 2

Durante el desarrollo de la aplicación se utilizó Firefox como navegador predeterminado con lo que todas las funcionalidades del sistema son correctas en este navegador, así como su visualización. 6.5.2 Explorer 6

En este navegador se pueden ver algunos problemas con la cabecera de la página.

Figura 40 Explorer 6 - Problemas visualización

Page 65: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 63

En cuanto a la capacidad de ejecutar las funcionalidades que hacen uso de Javascript, Explorer 6 se queda a medias, siendo capaz de ejecutar algunas de ellas y dando errores en otras. Se han encontrado problemas para ejecutar las siguientes páginas:

• Página de inserción de notas (Intranet de profesores) • Página de inserción de faltas de asistencia (Intranet de profesores). No se pueden

poner ni quitar faltas a alumnos aislados, sin embargo si se pueden poner falta a varios alumnos utilizando el botón “Poner faltas a todos”

• Página de reservas de instalaciones (Intranet de profesores y alumnos), página de reservas de equipaciones (Intranet de profesores). No se pueden anular las reservas

• No se pueden realizar nuevas reservas de instalaciones y equipaciones. 6.5.3 Explorer 7

A diferencia de lo que hacia su predecesor, Explorer 7 si representa correctamente la página inicial de la aplicación Web.

Figura 41 Explorer 7 - página inicial

Las limitaciones por el código Javascript son prácticamente las mismas que en la

versión anterior, aunque en esta versión si es posible efectuar las reservas de instalaciones y equipaciones.

Page 66: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 64

6.5.4 Opera 9

La visualización de la página principal es correcta, como puede verse en la siguiente figura.

Figura 42 Opera - página inicial

Como en el caso de Explorer 6, Opera también presenta algunas incompatibilidades con el Javascript, siendo estas las más importantes.

• Página de inserción de notas (Intranet de profesores) • Página de inserción de faltas de asistencia (Intranet de profesores). No se pueden

poner ni quitar faltas a alumnos aislados, sin embargo si se pueden poner falta a varios alumnos utilizando el botón “Poner faltas a todos”

Page 67: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 65

6.5.5 Mozilla 1.7

Como puede verse en la figura, Mozilla interpreta correctamente la página inicial de nuestra aplicación.

Figura 43 Mozilla - página inicial

En este caso no hay ningún tipo de compatibilidad con el Javascript.

Page 68: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 66

7. Conclusiones

La realización de este proyecto de final de carrera nos ha permitido conocer de primera mano los pasos necesarios que deben seguirse para el desarrollo de una aplicación Web. Nos ha dado la oportunidad de iniciar una aplicación desde sus inicios hasta casi su final, obligándonos a tomar decisiones en cuanto al análisis, diseño e implementación de la misma, aunque siempre con la guía de nuestro tutor del proyecto, que nos ayudó señalándonos los fallos que cometimos durante el desarrollo de la aplicación.

Durante el trabajo en este proyecto nos hemos tenido que afrontar una serie de

problemas, tanto de índole teórico, práctico e incluso interpersonal. Los problemas teóricos han sido sobre todo a la hora de aplicar los conocimientos que hemos ido adquiriendo en el transcurso de nuestra carrera como informáticos a un proyecto más cercano a la vida real de lo que habitualmente se puede ver en las distintas asignaturas de la carrera. Los problemas prácticos han aparecido debido a la necesidad que los miembros del proyecto han tenido para aprender un nuevo lenguaje de programación como es php y a la circunstancia de tener que refrescar las nociones que poseíamos de html, css y javascript o de adquirirlos desde cero en algunos casos. En cuanto a las dificultades interpersonales eran debidas a que al inicio del proyecto ningún miembro del equipo conocía a los restantes miembros, lo que nos obligó a hacer un esfuerzo con el fin de adaptarnos unos a otros.

Otro problema con el que hemos tenido que enfrentarnos ha sido al hecho de no

disponer del suficiente tiempo para completar el proyecto como hubiéramos querido, dejándonos ciertas partes del proyecto sin poder implementar. Entre las principales faltas destacan:

• Implementación de la parte del administrador, y del equipo directivo. • Hacer seguro la transmisión de datos sensibles de la aplicación como puedan

ser las contraseñas, mediante técnicas de encriptación de datos utilizando protocolos como ssl.

Como conclusión final podemos decir que la realización de este proyecto nos ha

permitido crecer profesionalmente y también en ciertos aspectos personalmente, lo que nos ayudará en nuestro futuro como profesionales del sector de la informática.

Page 69: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 67

8. Bibliografía

• PHP 5. Sitios web dinámicos. Johann-Christian Hanke. PC Cuadernos

• Los secretos de PHP y MySQL. Johann-Christian Hanke PC Cuadernos

• Proyectos Profesionales PHP 5.

Francisco Charte Ojeda ANAYA Multimedia

• JavaScript Tom Negrino, Dori Smith Prentice Hall

• Apuntes de BDA, DBD, CDH • Wikipedia, la enciclopedia libre

www.es.wikipedia.org

• Página oficial de PHP www.php.org

Page 70: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 68

9. Anexos

A. W3C

Figura A.1 - Logotipo de la W3C El World Wide Web Consortium, abreviado W3C, es un consorcio internacional que

produce estándares para la World Wide Web. Está dirigida por Tim Berners-Lee, el creador original de URL (Uniform Resource Locator, Localizador Uniforme de Recursos), HTTP (HyperText Transfer Protocol, Protocolo de Transferencia de HiperTexto) y HTML (Lenguaje de Marcado de HiperTexto) que son las principales tecnologías sobre las que se basa la Web.

Un estándar pasa por los siguientes estados : • Working Draft (Borrador de trabajo) • Last Call (Última convocatoria) • Proposed Recommendation (Propuesta de recomendación) y • Candidate Recommendation (Recomendación candidata)

Finaliza con la aprobación de la "Recomendación", lo que equivale a una

homologación de la propuesta, es decir, un nuevo estándar público y abierto para la Web. La mayoría de estas recomendaciones son secundadas por los fabricantes de herramientas (navegadores, editores, buscadores) y tecnologías (servicios Web, directorios, registros). Esta competencia en exclusiva del W3C para crear estándares abiertos es crucial, pues de ella depende que ningún fabricante alcance nunca el monopolio de explotación de la Web.

Algunas importantes recomendaciones son: • HTML • Hojas de Estilo en Cascada o Cascading Style Sheets (CSS) • DOM • RDF Marco de Descripción de Recursos • SOAP Simple Object Access Protocol • SVG • XForms • XML • WSDL Web Services Description Language

Figura A.2 - Logotipos que la W3C le concede a las páginas web que cumplen con los estándares XHTML 1.0 y CSS respectivamente. En el sitio web del consocio se pueden validar páginas web para comprobar si cumplen los estándares.

Page 71: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 69

La W3C fue creada el 1 de octubre de 1994 por Tim Berners-Lee en el MIT, actual sede central del consorcio. Uniéndose posteriormente en abril de 1995 INRIA en Francia, reemplazado por el ERCIM en el 2003 como el huésped europeo del consorocio y Universidad de Keio (Shonan Fujisawa Campus) en Japón en septiembre de 1996 como huésped asiatico. Estos organismos adminstran el consorcio el cual está integrado por:

• Miembros del W3C. A septiembre de 2006 contaba con 417 miembros (lista completa)

• Equipo W3C (W3C Team) 65 investigadores y expertos a través del mundo (Directorio)

• Oficinas W3C (W3C Offices). Centros regionales establecidos en Alemania y Austria (oficina cojunta), Australia, Benelux (oficina conjunta), China, Corea del Sur, España, Finlandia, Grecia, Hong Kong, Hungría, India, Israel, Italia, Marruecos, Suecia y Reino Unido e Irlanda (oficina conjunta) (Oficinas W3C)

La oficina española del W3C, establecida en el 2003, esta albergada por la Fundación CTIC en el Parque Científico Tecnológico de Gijón (Principado de Asturias).

Más información: • www.w3c.org - World Wide Web Consortium • www.w3c.es - Oficina española del consorcio

Page 72: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 70

B. Anexo II (Herramientas usadas)

• StarUML

Figura 44 B.1 - Logotipo de StarUML

StarUML es un proyecto de software libre disponible para Windows. Se trata de una

herramienta CASE (Computer-Aided Software Engineering) de modelado similar a otros como Rational Rose. Dispone de una serie de módulos para tener funcionalidad añadida, aunque su funcionalidad básica es muy completa.

StarUML es capaz de generar código fuente a partir de diagramas en los siguientes

lenguajes: C/C++, Java, Visual Basic, Delphi, JScript, VBScript, C#, VB.NET, etc. Esta aplicación ha sido utilizada en el desarrollo del proyecto en la fase de análisis,

más concretamente para la realización del diagrama de clases. La hemos elegido debido a que es una aplicación libre y cumplía a la perfección con nuestras necesidades, al mismo tiempo que es sencilla de utilizar y pese a ser usuarios nuevos en la aplicación no nos ha costado adaptarnos a la manera de trabajar con ella para la realización del diagrama de clases. Su sitio web oficial es: www.staruml.com

Page 73: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 71

• Dreamweaver

Figura 45 B.2 - Logotipo de Dreamweaver 8

Adobe Dreamweaver es un editor WYSIWYG (What You See Is What You Get,

lo que ves es lo que obtienes) de páginas web, creado por Adobe (anteriormente por Macromedia). Es el programa de este tipo más utilizado en el sector del diseño y la programación web, por sus funcionalidades, su integración con otras herramientas como Adobe Flash y, recientemente, por su soporte de los estándares del World Wide Web Consortium. Tiene soporte tanto para edición de imágenes como para animación a través de su integración con otras herramientas.

Hasta la versión MX, fue duramente criticado por su escaso soporte de los

estándares de la web, ya que el código que generaba era con frecuencia sólo válido para Internet Explorer, y no validaba como HTML estándar. Esto se ha ido corrigiendo en las versiones recientes.

La gran baza de este editor sobre otros es su gran poder de ampliación y

personalización del mismo, puesto que este programa, sus rutinas (como la de insertar un hipervínculo, una imagen o añadir un comportamiento) están hechas en Javascript-C lo que le ofrece una gran flexibilidad en estas materias. Esto hace que los archivos del programa no sean instrucciones de C++ sino, rutinas de Javascript que hace que sea un programa muy fluido, que todo ello hace, que programadores y editores Web hagan extensiones para su programa y lo ponga a su gusto.

Las versiones originales de la aplicación se utilizaban como simples editores

WYSIWYG, sin embargo, versiones más recientes soportan otras tecnologías Web como CSS, JavaScript y algunos frameworks del lado servidor.

Dreamweaver ha tenido un gran éxito desde finales de los 90 y actualmente

mantiene el 90% del mercado de editores HTML. Esta aplicación está disponible tanto para la plataforma MAC como Windows, aunque también se puede ejecutar en plataformas basadas en UNIX utilizando emuladores como Wine.

Page 74: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 72

Como editor WYSIWYG que es, Dreamweaver oculta el código HTML de cara al usuario, haciendo posible que alguien no entendido pueda crear páginas y sitios Web fácilmente.

Algunos desarrolladores Web critican esta propuesta ya que crean páginas

HTML más largas de lo que solían ser al incluir mucho código inútil, lo cual va en detrimento de la ejecución de las páginas en el navegador Web. Esto puede ser especialmente cierto ya que la aplicación facilita en exceso el diseño de las páginas mediante tablas. Además, algunos desarrolladores Web han criticado Dreamweaver en el pasado porque creaba código que no cumplía con los estándares del consorcio Web (W3C). No obstante, Adobe ha aumentado el soporte CSS y otras maneras de diseñar páginas sin tablas en versiones posteriores de la aplicación.

Dreamweaver permite al usuario utilizar la mayoría de los navegadores Web

instalados en su ordenador para previsualizar las páginas Web. También dispone de herramientas de administración de sitios dirigidas a principiantes como, por ejemplo, la habilidad de encontrar y reemplazar líneas de texto y código por cualquier tipo de parámetro especificado, hasta el sitio Web completo. El panel de comportamientos también permite crear JavaScript básico sin conocimientos de código.

Con la llegada de la versión MX, Macromedia incorporó herramientas de

creación de contenido dinámico en Dreamweaver. En lo fundamental de las herramientas HTML WYSIWYG, también permite la conexión a Bases de Datos como MySQL y Microsoft Access, para filtrar y mostrar el contenido utilizando tecnología de script como, por ejemplo, ASP (Active Server Pages), ASP.NET, ColdFusion, JSP (JavaServer Pages),PHP sin necesidad de tener experiencia previa en programación.

Un aspecto de alta consideración de Dreamweaver es su arquitectura extensible.

Es decir, permite el uso de "Extensiones". Las extensiones, tal y como se conocen, son pequeños programas, que cualquier desarrollador Web puede escribir (normalmente en HTML y Javascript) y que cualquiera puede descargar e instalar, ofreciendo así funcionalidades añadidas a la aplicación. Dreamweaver goza del apoyo de una gran comunidad de desarrolladores de extensiones que hacen posible la disponibilidad de extensiones gratuitas y de pago para la mayoría de las tareas de desarrollo Web, que van desde simple efectos rollover hasta completas cartas de compra. Características.

Además de sus capacidades WYSIWYG, tiene las funciones típicas de un editor de código fuente para la Web:

Un administrador de sitios, para agrupar los archivos según el proyecto al que pertenezcan.

Un cliente FTP integrado, que permite subir los archivos editados inmediatamente al sitio en Internet.

Función de autocompletar y resaltado de la sintaxis para instrucciones en HTML y lenguajes de programación como PHP, JSP o ASP.

Esta herramienta ha sido usada para el desarrollo de las páginas web en PHP debido a que es la más extendida y cumple como editor PHP ofreciéndote ayuda en línea mientras escribes líneas de código. También ofrece la funcionalidad de subir las páginas al servidor de una manera sencilla por FTP, por lo que cubría nuestras necesidades.

Page 75: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 73

• Eclipse

Figura 46 B.3 Pantalla inicial Eclipse 3.2

Eclipse es un entorno de desarrollo integrado (IDE en inglés) en código abierto,

multiplataforma. En un principio eclipse fue desarrollado para la programación en Java, sin embargo con el tiempo se fueron incorporando nuevos lenguajes de programación gracias a pluging que fue aportando la comunidad eclipse. Entre los principales lenguajes de programación que soporta actualmente eclipse se encuentran:

Java ANSI C C++ JSP PHP

Además de la variedad de lenguajes de programación soportados, eclipse ha sido

traducido a un gran número de idiomas lo que permite una mayor configuración y adaptabilidad al usuario.

Aparte de los lenguajes de programación mencionados anteriormente, existen

otros proyectos que permite ampliar las capacidades del entorno. Entre ellas cabría destacar UML2 una implementación de UML 2.0 metamodel para la plataforma Eclipse diseñada para soportar el desarrollo de herramientas de modelado y el Proyecto Plataforma de Herramientas Web (WTP). Este último proyecto y el PHP Project Tools son los que han sido utilizados en este trabajo como interfaz de programación en php.

Page 76: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 74

Figura 47 B.4 Eclipse - Pantalla principal

El motivo de la elección de este entorno para el desarrollo de los ficheros php fueron diversos destacando los siguientes:

Utilizar una herramienta en código abierto Resaltado de sintaxis de php Auto completado de variables php

Figura 48 B.5 Eclipse Auto completado de variable

La página inicial de esta aplicación es: http://www.eclipse.org/

Page 77: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 75

• Dia

Figura 49 B.6 Dia – Pantalla de Inicio

Dia es un programa para dibujar diagramas, el cual permite escoger entre una

elevada variedad de diagramas. Este programa es de código abierto y múltiplataforma. Originalmente este proyecto fue desarrollado para utilizarse dentro del proyecto Gnome de Linux.

Figura 50 B.7 Dia – Eligiendo tipo de diagrama

Page 78: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 76

Como se ha dicho anteriormente, esta aplicación permite crear diagramas, incluidos los diagramas entidad-relación que hemos desarrollado durante este proyecto. Desde un punto estético, el programa deja que desear, sin embargo es capaz de llevar a cabo las tareas que se esperan de él.

Figura 51 B.7 Dia – Espacio de trabajo.

La dirección inicial esta aplicación es: http://dia-installer.de/index_en.html

Page 79: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 77

C. XAMPP

Figura 52 C.1 - Logotipo de XAMPP

Xampp es un paquete que integra un servidor web, como es Apache, acompañado de

un servidor PHP y otro MySQL, además de otros como el servidor FTP pero que a nosotros no nos interesan en este proyecto, centrándonos únicamente en los tres primeros servidores. Se trata de un servidor libre bajo licencia GNU y se puede descargar gratuitamente desde www.apachefriends.org/en/xampp.html. La instalación es sencilla y es bastante limpia ya que existe la posibilidad de únicamente copiando los ficheros al ordenador ponerlo en marcha. Otra de las ventajas es que es multiplataforma y existen múltiples módulos que se le pueden añadir como son phpMyAdmin u OpenSSL.

En nuestro proyecto lo hemos usado para poder probar las páginas que hemos

generado en local, es decir, en nuestro ordenador doméstico antes de subirlo al servidor suministrado por el director del proyecto.

El paquete también nos ofrece un sencillo panel de control desde donde podemos

controlar los distintos servidores que lo componen. De esta forma podemos comprobar el estado de cada servidor, iniciarlo, pararlo o administrarlo.

Figura 53 C.2 - Panel de Control de XAMPP

El servidor HTTP Apache es un software (libre) servidor HTTP de código abierto

para plataformas Unix (BSD, GNU/Linux, etc.), Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se debe a que originalmente Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. Era, en

Page 80: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 78

inglés, a patchy server (un servidor "parcheado"). El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation.

Apache presenta entre otras características mensajes de error altamente

configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración.

Apache tiene amplia aceptación en la red: en el 2005, Apache es el servidor HTTP

más usado, siendo el servidor HTTP del 70% de los sitios web en el mundo y creciendo aún su cuota de mercado (estadísticas históricas y de uso diario proporcionadas por Netcraft).

La mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas puede en

la mayoría de los casos ser abusada solamente por los usuarios locales y no puede ser accionada remotamente.

Figura 54 C.3 - Logotipo del servidor web Apache

PhpMyAdmin es una herramienta escrita en PHP con la intención de manejar la administración de MySQL a través de páginas webs, utilizando Internet. Actualmente puede crear y eliminar Bases de Datos, crear, eliminar y alterar tablas, borrar, editar y añadir campos, ejecutar cualquier sentencia SQL, administrar claves en campos, administrar privilegios, exportar datos en varios formatos y está disponible en 50 idiomas. Se encuentra disponible bajo la licencia GPL.

Este proyecto se encuentra vigente desde el año 1998. Como esta herramienta se

ejecuta en máquinas con Servidores Webs y Soporte de PHP y MySQL, la tecnología utilizada ha ido variando durante su desarrollo.

Esta herramienta nos ha sido de gran ayuda tanto para crear como para introducir

datos de prueba o para comprobar que las operaciones de borrado e inserción desde PHP se hacían correctamente. También ha sido la herramienta ofrecida por el director del proyecto para manejar la base de datos en el servidor donde debíamos colgar la aplicación final.

Figura 55 C.4 - Logotipo de phpMyAdmin

Page 81: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 79

D. Plantillas de los casos de uso

Caso de Uso Reservar Instalaciones Actores Usuario Registrado (iniciador) Actores secundarios

Ninguno

Propósito Permitir la reserva o anulación de instalaciones del centro. Resumen Se podrán reservar las instalaciones del centro, como pueden ser la

pista de fútbol, el gimnasio, el aula de usos múltiples, etc. En la reserva se hará constar la fecha, la hora de inicio, el número de horas que se quieren reservar, así como el motivo de la reserva.

Precondiciones El Usuario Registrado debe haber iniciado sesión correctamente.

Postcondiciones El sistema deberá guardar la reserva.

Incluye

Extiende

Hereda de 1. El caso de uso comienza cuando el usuario registrado

selecciona “Reservar Instalaciones” 2. El sistema muestra una lista con las instalaciones que se pueden

reservar. 3. El usuario deberá seleccionar una instalación. 4. Para dicha instalación, el usuario deberá seleccionar una fecha

de las disponibles (días en que dicha instalación no esta reservada). También deberá proporcionar el motivo de la reserva.

5. El sistema comprueba si la instalación está disponible para dicha fecha

6. El usuario confirma la reserva. 7. Si está disponible

7.1 El sistema guardará la reserva. Ext. síncronas Ext. asíncronas

Caso de Uso Anular Reservas Actores Usuario Registrado (iniciador) Actores secundarios

Ninguno

Propósito Anular reservas efectuadas por el profesor o por el alumno Resumen Permite la cancelación de las reservas realizadas tanto sobre

instalaciones como de equipamientos de la escuela (esta última posibilidad disponible únicamente para profesores). Únicamente

Page 82: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 80

podrán eliminar aquellas reservas que hayan efectuado ellos mismos

Precondiciones El profesor o por el alumno deben haber iniciado sesión correctamente.

Postcondiciones El sistema eliminará las reservas anuladas por los usuarios registrados.

Incluye Mostrar Reservas

Extiende

Hereda de Flujo de eventos 1. El caso de uso comienza cuando el usuario registrado

selecciona “Anular Reserva” 2. El sistema mostrará las reservas efectuadas por el usuario

registrado 3. Si es un profesor

3.1 El sistema mostrará las reservas de material realizadas por el profesor

4. El usuario registrado seleccionará una reserva 5. El usuario registrado confirmará la cancelación de la reserva 6. El sistema eliminará la reserva seleccionada.

Ext. síncronas # En 4 el usuario registrado puede cancelar la anulación de reservas

Ext. asíncronas Caso de Uso Mostrar Tablón de Anuncios Actores Usuario Registrado (iniciador) Actores secundarios

Ninguno

Propósito Permite la visualización del tablón de anuncios. Resumen Se mostrarán los anuncios aparecidos en el tablón de anuncios del

colegio.

Precondiciones El usuario registrado debe haber iniciado sesión correctamente. Postcondiciones Ninguna

Incluye

Extiende

Hereda de Flujo de eventos 1. El caso de uso comienza cuando el usuario registrado

selecciona “Mostrar Tablón de Anuncios” 2. El sistema devuelve los anuncios publicados en el tablón de

anuncios.

Ext. sincronas

Page 83: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 81

Ext. asíncronas

Caso de Uso Dar de alta Alumno Actores Administrador (iniciador) Actores secundarios

Ninguno

Propósito Dar de alta a un nuevo alumno en el colegio. Resumen El administrador será el encargado de dar de alta a nuevo

alumnos en el centro. Para ello se deberá de dar ciertos datos del alumno a ingresar (nombre, apellidos, domicilio, población, código postal, nombre de los padres, teléfono de contacto, código del grupo al que asistirá, curso, contraseña)

Precondiciones El administrador debe haber iniciado sesión correctamente.

Postcondiciones El sistema almacenará la información del nuevo profesor.

Incluye

Extiende

Hereda de Flujo de eventos 1. El caso de uso comienza cuando el administrador selecciona

“Dar de Alta Alumnos” 2. El administrador rellenará los campos del formulario de alta

de alumnos (nombre, apellidos, domicilio, población, código postal, nombre de los padres, teléfono de contacto, código del grupo al que asistirá, curso, contraseña)), aunque no necesariamente todas en este instante.

3. El administrador confirmará la creación de un nuevo usuario profesor

4. El sistema comprobará que todos los datos tengan una estructura correcta

5. El sistema guardará los datos del nuevo usuario profesor.

Ext. síncronas # En 3 el administrador puede cancelar la acción. # En 2 el código de alumno es asignado automáticamente.

Ext. asíncronas Caso de Uso Dar de Baja Alumno Actores Administrador (iniciador) Actores secundarios

Ninguno

Propósito Eliminar a un alumno del sistema Resumen El administrador podrá eliminar usuarios para que ya no puedan

acceder a su correspondiente información personalizada, porque se han dado de baja en el centro en el caso de los alumnos.

Page 84: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 82

Precondiciones El administrador debe haber iniciado sesión correctamente.

Postcondiciones El sistema deberá eliminar al alumno.

Incluye

Extiende

Hereda de Flujo de eventos 1. El caso de uso comienza cuando el administrador selecciona

“Eliminar alumno/padre” 2. El administrador selecciona el alumno a eliminar 3. El sistema devuelve los datos del alumno a eliminar 4. El administrador confirma que desea eliminar a ese alumno 5. El sistema borra los datos del alumno.

Ext. síncronas # En 5 el administrador puede cancelar la acción. # En 2 el administrador puede obtener una lista con todos los alumnos y buscar al que quiere dar de baja o bien puede introducir parte o el nombre completo del alumno y que el sistema le devuelva un listado con los alumnos que coincidan con el término de búsqueda.

Ext. asíncronas Caso de Uso Mostrar Notas Actores Alumno/Progenitor (iniciador) Actores secundarios

Ninguno

Propósito Mostrar las notas del alumno Resumen Se podrán consultar las notas obtenidas por el alumno en las

asignaturas en las que esté matriculado. También aparecerá la nota media del grupo para poder tener una idea de la marcha del grupo en general.

Precondiciones El alumno/Progenitor debe haber iniciado sesión correctamente.

Postcondiciones Ninguna

Incluye

Extiende

Hereda de

Page 85: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 83

Flujo de eventos 1. El caso de uso comienza cuando el alumno selecciona “Mostrar Notas”

2. El sistema devolverá las notas de las asignaturas que tenga el alumno. También devolverá la nota media de todos los alumnos de cada asignatura.

Ext. síncronas # En 2, solamente se mostrarán las notas del alumno que haya iniciado el caso de uso, sin mostrar las notas del resto de alumnos de su grupo.

Ext. asíncronas

Caso de Uso Listar Alumnos Actores Alumno/Progenitor (iniciador) Actores secundarios

Ninguno

Propósito Mostrar la lista de alumnos del mismo grupo al que acude el alumno

Resumen Se mostrará una lista con los alumnos del mismo grupo al que pertenece. Los datos mostrados serán nombre y apellidos del alumno, su dirección de correo electrónico.

Precondiciones El alumno/Progenitor debe haber iniciado sesión correctamente.

Postcondiciones Ninguna

Incluye

Extiende

Hereda de Flujo de eventos A. El caso de uso comienza cuando el alumno selecciona “Listar

Alumnos” B. El sistema devuelve el nombre, apellidos y dirección de correo

electrónico de todos los alumnos del mismo grupo del alumno que inicia el caso de uso.

Ext. síncronas Ext. asíncronas

Caso de Uso Poner Notas Actores Profesor (iniciador) Actores secundarios

Ninguno

Propósito Calificar a los alumnos del profesor

Page 86: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 84

Resumen Desde aquí se podrá introducir las notas de cada alumno que podrán ser visualizadas posteriormente por los alumnos desde su intranet. Los alumnos aparecerán ordenados por grupos. En esta sección también se podrán modificar notas que hayan sido previamente introducidas.

Precondiciones El profesor debe haber iniciado sesión correctamente.

Postcondiciones Las notas se almacenan en el sistema.

Incluye

Extiende Listar Alumnos del Profesor

Hereda de Flujo de eventos 1. El caso de uso comienza cuando el profesor selecciona “Poner

Notas” 2. Para cada alumno de un grupo

2.1. Escribe la nota del alumno en un formulario 2.2. Acepta la calificación del alumno

3. El sistema almacena cada nota de los alumnos antes de pasar al siguiente alumno

Ext. síncronas # En 2.1 puede cancelar la calificación de un alumno. # En 2 puede cambiar la nota de un alumno al que ya hubiera calificado.

Ext. asíncronas

Caso de Uso Poner Faltas de Asistencia

Actores Profesor (iniciador) Actores secundarios

Ninguno

Propósito Poner las faltas de asistencia de los alumnos del profesor. Resumen Desde aquí se podrá introducir las faltas de asistencia de cada

alumno. Las faltas de asistencia podrán justificarse a la vez que se introducen si el profesor tenía constancia de que el alumno iba a faltar. En caso contrario dejará el apartado de justificar sin cumplimentar a la espera de que el alumno presente la justificación.

Precondiciones El profesor debe haber iniciado sesión correctamente.

Postcondiciones Las faltas de asistencia se guardan en el sistema.

Incluye

Extiende Listar Alumnos del Profesor

Hereda de

Page 87: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 85

Flujo de eventos 1. El caso de uso comienza cuando el profesor selecciona “Poner Faltas de Asistencia”

2. Para cada alumno que haya faltado 2.1. El profesor escribe la fecha de la falta, la asignatura y si

está justificada en el formulario 2.2. Confirma la falta de asistencia.

3. El sistema guarda la falta de asistencia

Ext. síncronas # En 2.1 el profesor puede cancelar la inclusión de la falta de asistencia # En 2.1 la fecha que aparecerá por defecto será la actual del sistema, aunque el profesor podrá cambiarla.

Ext. asíncronas Caso de Uso Quitar/Modificar Faltas de Asistencia Actores Profesor (iniciador) Actores secundarios

Ninguno

Propósito Quitar o modificar las faltas de asistencia de los alumnos del profesor.

Resumen Se podrán quitar las faltas de asistencia de alumnos, por ejemplo si se han introducido erróneamente. También se podrán modificar las faltas de asistencia, normalmente si el alumno presenta un justificante, o para cambiar otro valores (fecha, asignatura)

Precondiciones El profesor debe haber iniciado sesión correctamente.

Postcondiciones Las faltas de asistencia modificadas se guardan en el sistema. En caso de quitar la falta de asistencia, ésta se eliminará del sistema.

Incluye

Extiende Listar Alumnos del Profesor

Hereda de

Page 88: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 86

Flujo de eventos Intenciones de usuario Obligaciones del sistema 1. El caso de uso comienza cuando el profesor selecciona

“Quitar/Modificar Faltas de Asistencia” 2. El sistema devuelve una lista con todos los alumnos de ese

profesor, ordenados por grupos y que tengan alguna falta de asistencia en el último mes (si fuera necesario se podrían pedir de meses anteriores)

3. El profesor selecciona el alumno al que modificar o quitar la falta 3.1. Se mostrarán los detalles de la falta de asistencia que

tiene guardado el sistema (fecha, asignatura, si está justificada)

3.2. Si el profesor quiere quitar esta falta de asistencia 3.2.1. Confirma que desea quitar la falta de asistencia

3.3. Si no 3.3.1. El profesor podrá cambiar los detalles de la falta

de asistencia (fecha, asignatura, si está justificada) 3.3.2. Confirma la falta de asistencia.

4. El sistema se actualiza (borrando la falta si que profesor la eliminó, o actualizando los campos en caso contrario

Ext. síncronas En 3, 3.1, 3.2, 3.3.1 el profesor puede cancelar la actualización/eliminación de la falta de asistencia

Ext. asíncronas

Page 89: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 87

E. Guía del usuario

Usuario anónimo Este tipo de usuario (podría tratarse de alumnos o profesores todavía no

identificados) solamente podrán acceder a la parte pública del colegio.

a. Inicio Será esta la página a la que se accederá cuando el usuario anónimo acceda a la Web,

si no introduce alguna otra dirección.

Figura 56 Usuario anónimo – inicio

Durante su recorrido por las secciones públicas de la Web el usuario siempre

dispondrá de un menú navegación que le ayudará en su recorrido por la Web. En la parte inferior de la ventana aparecen una serie de noticias que el colegio considera de interés para todos sus miembros.

Page 90: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 88

Figura 57 Usuario anónimo - menú navegacional

b. Historia

En página el usuario podrá conocer aquellos hechos históricos que han sucedido en

la vida de la escuela.

Figura 58 Usuario anónimo – Historia

c. Equipo directivo

Aquí el usuario podrá conocer los datos de las personas que pertenecen al equipo

directivo del centro (al director, jefe de estudios y al secretario)

Page 91: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 89

Figura 59 Usuario anónimo - Equipo directivo

d. Reglamento

Desde aquí se podrá tener acceso a la normativa que rige en el colegio. Se dispone

de la normativa en dos formatos: tipo Word y tipo pdf.

Figura 60 Usuario anónimo - reglamento

Page 92: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 90

e. Calendario escolar Esta página muestra calendario con la fecha actual. Los días especiales como

pueden ser eventos importantes para el colegio o festivos, se remarcan de forma distinta al resto para que destaque. Si el usuario hace clic en cualquiera de ellos, en la parte inferior de la ventana indicando el tipo de evento asociado a ese día, si tiene asociado algún evento.

Figura 61 Usuario anónimo – Calendario

f. Localización Esta página proporciona información acerca de la localización del colegio. Además

dispone de un enlace al ayuntamiento de Náquera que proporciona un callejero de su localidad a fin de poder encontrar el colegio.

Page 93: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 91

Figura 62 Usuario anónimo – localización

La ventana desplegada muestra dos imágenes. La de la izquierda representa todo el

pueblo a una escala menor. En esta imagen se dispone de un recuadro que puede moverse por dicha imagen, esto provoca que la imagen de la derecha muestre el plano contenido en el recuadro a una mayor escala que permite poder ver mejor el nombre de las calles y sitios de consideración.

Contactar Esta página dispone de un pequeño formulario que permite a los usuarios enviar

información, quejas, sugerencias al colegio. Sólo hace falta introducir el correo electrónico y el texto con los datos que el usuario considere de interés. Una vez efectuado esto, pulsar el botón de enviar.

Page 94: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 92

Figura 63 Usuario anónimo – contacto

g. Enlaces

Esta página muestra aquellos enlaces que el colegio considera del interes de toda su

comunidad (padres, profesores, alumnos)

Figura 64 Usuario anónimo – enlaces

Page 95: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 93

Intranet del profesor En primer lugar, para poder acceder a la intranet del profesor es necesario

identificarse. Esto puede hacer introduciendo el nombre de usuario y contraseña en la página de inicio. En las cajas de texto que aparece en la esquina izquierda inferior, como puede verse en la imagen.

Figura 65 Pantalla Inicial

Una vez que el sistema confirme nuestra identidad, automáticamente nos llevará a la

intranet del profesor

Page 96: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 94

Figura 66 Intranet del profesor Donde podremos ver el nombre completo del profesor conectado. A la izquierda

puede verse un menú de navegación, que nos permitirá movernos por toda la aplicación y que siempre estará disponible.

Figura 67 Menú navegacional

La primera opción “Inicio” nos llevará devuelta a la página inicial de la intranet del

profesor, en la que nos encontramos ahora. a. Alumnos

La siguiente opción, “Alumnos”, nos llevará a una página, donde podremos

consultar los alumnos a los que imparte clase el profesor, organizados por asignatura que da el profesor.

Figura 68 Intranet Profesor - Alumnos

Page 97: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 95

Hay que escoger una asignatura de las disponibles, como puede verse en la

siguiente imagen.

Figura 69 Escogiendo asignatura

Una vez escogida una asignatura automáticamente se cargarán los datos de los

alumnos y la asignatura y si como de donde se imparte. De los alumnos se muestran los apellidos el nombre y el nombre de usuario.

Figura 70 Intranet Profesor - datos cargados

Page 98: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 96

b. Profesores El siguiente elemento del menú navegacional es “Profesores”. Aquí podemos ver los

datos públicos de todos los profesores del centro.

Figura 71 Intranet Profesor – profesores

c. Notas

El siguiente elemento del menú es “Notas”. Desde aquí se podrán introducir las

notas de los alumnos que asisten a alguna asignatura que imparte el profesor conectado. Los alumnos se encuentran organizados por asignaturas. Para poder comenzar a asignar notas es necesario haber escogido previamente la asignatura, tal como sucedía en la página de los alumnos. Además hará falta seleccionar el cuatrimestre que se quiere puntuar. Si no está seleccionado el cuatrimestre las notas que se introduzcan no se guardarán en sistema. Cuando se seleccione el cuatrimestre, se mostrarán las notas que ya hubieran sido asignadas.

Figura 72 Intranet Profesor – Notas

Page 99: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 97

Se podrá optar por dos modos para guardar las notas. El primero consistiría en ir

alumno a alumno introducir la nota y hacer clic en el botón de “Guardar”. El segundo método consiste en puntuar a todos los alumnos de una vez y pulsar el botón “Guardar Todos” que guardaría las notas de todos los alumnos a la vez.

Los valores a introducir deben ser números, si tienen decimales se puede utilizar

indistintamente el punto o la coma (automáticamente esto cambiará a un punto para que el sistema pueda trabajar con el valor) La nota debe estar entre 0 y 10. En caso de introducir un valor no válido el sistema mostrará un mensaje como el siguiente:

Figura 73 Intranet Profesor - notas - mensaje error

d. Faltas asistencia En esta página, el profesor podrá rellenar los datos de las faltas de asistencia de los

alumnos. Únicamente podrá poner faltas de asistencia a aquellos alumnos que tengan clase con el profesor, y esta falta quedaría asociada con la asignatura en la que cometió la falta de asistencia.

Como sucedía en páginas anteriores, es necesario escoger la asignatura que se quiera

consultar. Lo siguiente es escoger la fecha de la falta. Para ello habrá que pulsar el “Selecciona Dia”, que desplegará un calendario donde habrá que hacer clic en el día escogido.

Page 100: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 98

Figura 74 Intranet Profesor - falta – Calendario

Una vez se haya escogido el día y la asignatura se cargarán los alumnos. También

aparecerán si para la fecha escogida los alumnos ya le habían puesto una falta de asistencia.

Figura 75 Intranet profesor – falta

Después de cada alumno aparecen una serie de elementos que permiten el manejo de

las faltas. El primero por la izquierda permite seleccionar varios alumnos a la vez para ponerles la falta. Para conseguir poner la falta a los alumnos seleccionados será necesario pulsar el botón “Poner falta a todos”. El siguiente elemento es la fecha, no hace falta tocarlo, porque el sistema coge la fecha seleccionada inicialmente en el calendario. A continuación viene un checkbox que indica si la falta a sido justificada (si esta marcada) o todavía no (si no está seleccionada, por defecto) A continuación vienen dos botones que permiten poner la falta o quitarla (si tenia) al alumno que esté en la misma fila que el botón pulsado.

Page 101: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 99

e. Instalaciones

Esta página permite ver las reservas de las instalaciones que ha efectuado el

profesor. También le permite anular la reserva, si lo desea.

Figura 76 Intranet Profesor – instalaciones

Desde aquí podremos acceder a reservar nuevas instalaciones, pulsando en

“Reservar instalación”. Deberemos escoger una instalación que queramos reservar del menú desplegable.

Esto producirá que el calendario marque en azul oscuro aquellos días en que esa instalación en concreto ha sido previamente reservada, no pudiendo seleccionarlos.

Figura 77 Intranet Profesor - reserva de instalaciones.

Page 102: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 100

A continuación, para hacer efectiva la reserva deberemos de indicarle el motivo por el que deseamos realizar la reserva. Como mínimo harán falta 5 caracteres. Una vez efectuada la reserva nos redirigirá directamente a la página de instalaciones donde podremos ver que efectivamente se tiene una nueva reserva.

Figura 78 Intranet Profesor - reserva confirmada

f. Equipaciones Esta página permite ver las reservas de las equitaciones que ha efectuado el

profesor. También le permite anular la reserva, si lo desea. Esta funcionalidad es prácticamente idéntica a la de instalaciones.

Figura 79 Intranet Profesor – equipaciones

Desde aquí podremos acceder a reservar nuevas equipaciones, pulsando en

“Reservar equipación”. Deberemos escoger una equipación de las disponibles del menú desplegable. Esto

producirá que el calendario marque en azul oscuro aquellos días en que esa instalación en concreto ha sido previamente reservada, no pudiendo seleccionarlos.

Page 103: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 101

Figura 80 Intranet Profesor - reserva de equipaciones.

A continuación, para hacer efectiva la reserva deberemos de indicarle el motivo por

el que deseamos realizar la reserva. Como mínimo harán falta 5 caracteres. Una vez efectuada la reserva nos redirigirá directamente a la página de equipaciones donde podremos ver que efectivamente se tiene una nueva reserva.

Figura 81 Intranet Profesor - reserva confirmada

Page 104: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 102

g. Tablón de anuncios Esta página nos permitirá insertar nuevos anuncios, que podrán ser consultados por

todos los miembros del colegio cuando accedan a sus respectivas intranets.

Figura 82 Intranet Profesor - tablón anuncios

En la figura anterior puede verse como quedaría un nuevo anuncio. Para insertar uno

nuevo únicamente hay que rellenar dos campos que se encuentran al final de la página.

Figura 83 Intranet Profesor - Insertar anuncio

Sólo hay que rellenar el campo de título y el de texto (que contendrá el anuncio en

sí). La información restante que podía verse en el anuncio anterior la obtendrá el sistema de forma automática.

Page 105: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 103

Intranet de alumno En primer lugar, para poder acceder a la intranet del profesor es necesario

identificarse. Esto puede hacer introduciendo el nombre de usuario y contraseña en la página de inicio. En las cajas de texto que aparece en la esquina izquierda inferior, como puede verse en la imagen.

Figura 84 Pantalla Inicial

Una vez que el sistema confirme nuestra identidad, automáticamente nos llevará a la

intranet del alumno

Figura 85 Intranet del alumno

Page 106: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 104

Donde podremos ver el nombre completo del alumno conectado. A la izquierda

puede verse un menú de navegación, que nos permitirá movernos por toda la aplicación y que siempre estará disponible.

Figura 86 Menú navegacional

La primera opción “Inicio” nos llevará devuelta a la página inicial de la intranet del

alumno, en la que nos encontramos ahora.

a. Horario Esta página nos mostrará el horario semanal que tiene el alumno conectado

Figura 87 Intranet alumno – horario

Page 107: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 105

b. Listado alumnos

Esta página el alumno podrá consultar los datos del grupo en el que está

matriculado: el curso y letra del grupo, el delegado, el tutor y el listado de alumnos matriculados con él en dicho grupo.

Figura 88 Intranet alumno - listado alumno

c. Listado profesores Desde aquí obtendremos la información acerca de los profesores que impartan clase

de alguna asignatura al grupo al que asiste el alumno actualmente conectado.

Figura 89 Intranet alumno - listado profesores

Entre la información que aparece se encuentra la asignatura impartidas, el profesor,

el horario de tutorías, si tiene, y su correo electrónico.

Page 108: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 106

d. Notas

Esta página mostrará las notas que tenga el alumno de las distintas asignaturas

Figura 90 Intranet alumno – notas

Sólo aparecerán aquellas asignaturas que tengan alguna nota puesta.

e. Faltas de asistencia Desde aquí el alumno podrá consultar las faltas de asistencia que haya podido

cometer y si las faltas las tiene justificadas o no, así como la asignatura a la que falto y la fecha.

Figura 91 Intranet alumno - faltas asistencia

Page 109: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 107

f. Menú semanal

Desde aquí se podrá consultar el menú que servirá el comedor del colegio los

próximos días.

Figura 92 Intranet alumno – menú

h. Instalaciones Esta página permite ver las reservas de las instalaciones que ha efectuado el alumno,

si ha realizado alguna. También le permite anular la reserva, si lo desea.

Figura 93 Intranet Alumno – instalaciones

Page 110: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 108

Desde aquí podremos acceder a reservar nuevas instalaciones, pulsando en

“Reservar instalación”. Deberemos escoger una instalación que queramos reservar del menú desplegable.

Esto producirá que el calendario marque en azul oscuro aquellos días en que esa instalación en concreto ha sido previamente reservada, no pudiendo seleccionarlos.

Figura 94 Intranet alumno - reserva de instalaciones.

A continuación, para hacer efectiva la reserva deberemos de indicarle el motivo por

el que deseamos realizar la reserva. Como mínimo harán falta 5 caracteres. Una vez efectuada la reserva nos redirigirá directamente a la página de instalaciones donde podremos ver que efectivamente se tiene una nueva reserva.

Figura 95 Intranet alumno - reserva confirmada

Page 111: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 109

i. Tablón de anuncios

Esta página nos permitirá insertar nuevos anuncios, que podrán ser consultados por

todos los miembros del colegio cuando accedan a sus respectivas intranets.

Figura 96 Intranet Profesor - tablón anuncios

En la figura anterior puede verse como quedaría un nuevo anuncio. Para insertar uno

nuevo únicamente hay que rellenar dos campos que se encuentran al final de la página.

Figura 97 Intranet Profesor - Insertar anuncio

Sólo hay que rellenar el campo de título y el de texto (que contendrá el anuncio en

sí). La información restante que podía verse en el anuncio anterior la obtendrá el sistema de forma automática.

Page 112: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 110

F. Código Setup.php (Base de datos) 1 <?php 2 /* 3 * Created on 06/05/2007 4 * 5 * To change the template for this generated file go to 6 * Window - Preferences - PHPeclipse - PHP - Code Templates 7 */ 8 9 require_once "conexion.php"; 10 require_once "conexion_i.php"; 11 require_once ('interfaz_db.php'); 12 13 14 function pasar_a_webcole($link) 15 { 16 echo "<html><head>"; 17 echo "<title>Cambio de base de datos</title></head>"; 18 echo "<table style='text-align: left; width: 100%;' border='1' 19 cellpadding='2' cellspacing='2'>"; 20 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 21 weight: bold;'><big>Descripcion</big></td>"; 22 echo "<td style='text-align: center; width: 163px;'><big><span 23 style='font-weight: bold;'>Estado</span></big></td>"; 24 echo "<td style='text-align: center; width: 255px;'><big><span 25 style='font-weight: bold;'>Error</span></big></td>"; 26 echo "</tr>"; 27 28 $db =cambiar_a_bd($link); 29 echo "<tr><td style='width: 281px; text-align: left;'>"; 30 echo "<font><b>Cambio a la base de datos de WebCole </b></font><br>\n"; 31 echo "</td>\n"; 32 if(!$db) 33 { 34 echo "<td style='width: 163px; text-align: center;'>"; 35 echo "<font color=red>Error </font>\n"; 36 echo "</td>"; 37 echo "<td style='width: 255px; text-align: center;'>"; 38 echo " " . mysql_error() . "\n"; 39 echo "</td>"; 40 } 41 else 42 { 43 echo "<td style='width: 163px; text-align: center;'>"; 44 echo "<font color=green>Correcto</font>\n"; 45 echo "</td>"; 46 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 47 \n"; 48 } 49 50 } 51 52 function pasar_a_webcole_i($link) 53 { 54 echo "<html><head>"; 55 echo "<title>Cambio de base de datos</title></head>"; 56 echo "<table style='text-align: left; width: 100%;' border='1' 57 cellpadding='2' cellspacing='2'>"; 58 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 59 weight: bold;'><big>Descripcion</big></td>"; 60 echo "<td style='text-align: center; width: 163px;'><big><span 61 style='font-weight: bold;'>Estado</span></big></td>"; 62 echo "<td style='text-align: center; width: 255px;'><big><span 63 style='font-weight: bold;'>Error</span></big></td>"; 64 echo "</tr>"; 65 66 $db = cambiar_a_bd_i($link); 67 echo "<tr><td style='width: 281px; text-align: left;'>"; 68 echo "<font><b>Cambio a la base de datos de WebCole </b></font><br>\n"; 69 echo "</td>\n"; 70 if(!$db) 71 {

Page 113: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 111

72 echo "<td style='width: 163px; text-align: center;'>"; 73 echo "<font color=red>Error </font>\n"; 74 echo "</td>"; 75 echo "<td style='width: 255px; text-align: center;'>"; 76 echo " " . mysql_error() . "\n"; 77 echo "</td>"; 78 } 79 else 80 { 81 echo "<td style='width: 163px; text-align: center;'>"; 82 echo "<font color=green>Correcto</font>\n"; 83 echo "</td>"; 84 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 85 \n"; 86 } 87 88 } 89 90 function crear_tablas () 91 { 92 $sql_usuario = 'CREATE TABLE `usuario` (' 93 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 94 NOT NULL, ' 95 . ' `nombre` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_spanish_ci 96 NOT NULL, ' 97 . ' `apellido1` VARCHAR(30) CHARACTER SET utf8 COLLATE 98 utf8_spanish_ci NOT NULL, ' 99 . ' `apellido2` VARCHAR(30) CHARACTER SET utf8 COLLATE 100 utf8_spanish_ci NULL, ' 101 . ' `direccion` VARCHAR(50) CHARACTER SET utf8 COLLATE 102 utf8_spanish_ci NOT NULL, ' 103 . ' `poblacion` VARCHAR(30) CHARACTER SET utf8 COLLATE 104 utf8_spanish_ci NOT NULL, ' 105 . ' `cp` SMALLINT UNSIGNED NOT NULL, CHECK (cp > 40000), ' 106 . ' `contrasenya` VARCHAR(20) NOT NULL, ' 107 . ' `telefono` VARCHAR(9) NULL,' 108 . ' PRIMARY KEY (`login`)' 109 . ' )' 110 . ' TYPE = innodb;'; 111 112 $sql_profesor = 'CREATE TABLE `profesor` (' 113 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 114 NOT NULL, ' 115 . ' `dni` VARCHAR(8) NOT NULL, ' 116 . ' `email` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_spanish_ci 117 NULL, ' 118 . ' `tutorias` VARCHAR(50) CHARACTER SET utf8 COLLATE 119 utf8_spanish_ci NULL,' 120 . ' PRIMARY KEY (`login`),' 121 . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`)' 122 . ' )' 123 . ' TYPE = innodb;'; 124 125 $sql_alumno = 'CREATE TABLE `alumno` (' 126 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 127 NOT NULL,' 128 . '`curso` enum(\'1\',\'2\',\'3\',\'4\',\'5\',\'6\') collate 129 latin1_general_ci NOT NULL,' 130 . '`letra` enum(\'A\',\'B\',\'C\',\'D\',\'E\',\'F\') collate 131 latin1_general_ci NOT NULL,' 132 . ' PRIMARY KEY (`login`),' 133 . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`)' 134 . ' )' 135 . ' TYPE = innodb;'; 136 137 $sql_padre = 'CREATE TABLE `padre` (' 138 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 139 NOT NULL, ' 140 . ' `dni` VARCHAR(8) NOT NULL, ' 141 . ' `email` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_spanish_ci 142 NULL, ' 143 . ' PRIMARY KEY (`login`),' 144 . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`)' 145 . ' )' 146 . ' TYPE = innodb;'; 147 148 $sql_admin = 'CREATE TABLE `administrador` ('

Page 114: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 112

149 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 150 NOT NULL, ' 151 . ' `dni` VARCHAR(8) NOT NULL, ' 152 . ' `email` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_spanish_ci 153 NULL, ' 154 . ' PRIMARY KEY (`login`),' 155 . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`)' 156 . ' )' 157 . ' TYPE = innodb;'; 158 159 $sql_eq = 'CREATE TABLE `equipodirectivo` (' 160 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 161 NOT NULL, ' 162 . ' `dni` VARCHAR(8) NOT NULL, ' 163 . ' `email` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_spanish_ci 164 NULL, ' 165 . ' PRIMARY KEY (`login`),' 166 . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`)' 167 . ' )' 168 . ' TYPE = innodb;'; 169 170 $sql_director = 'CREATE TABLE `director` (' 171 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 172 NOT NULL,' 173 . ' PRIMARY KEY (`login`),' 174 . ' FOREIGN KEY (`login`) REFERENCES `equipodirectivo`(`login`)' 175 . ' )' 176 . ' TYPE = innodb;'; 177 178 $sql_jefe = 'CREATE TABLE `jefeestudio` (' 179 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 180 NOT NULL,' 181 . ' PRIMARY KEY (`login`),' 182 . ' FOREIGN KEY (`login`) REFERENCES `equipodirectivo`(`login`)' 183 . ' )' 184 . ' TYPE = innodb;'; 185 186 $sql_secretario = 'CREATE TABLE `secretario` (' 187 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 188 NOT NULL,' 189 . ' PRIMARY KEY (`login`),' 190 . ' FOREIGN KEY (`login`) REFERENCES `equipodirectivo`(`login`)' 191 . ' )' 192 . ' TYPE = innodb;'; 193 194 $sql_anuncio = 'CREATE TABLE `anuncio` (' 195 . ' `idanuncio` MEDIUMINT UNSIGNED NOT NULL, ' 196 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 197 NOT NULL, ' 198 . ' `fecha` DATETIME NOT NULL, ' 199 . ' `titulo` VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_spanish_ci 200 NOT NULL, ' 201 . ' `texto` TEXT NULL,' 202 . ' PRIMARY KEY (`idanuncio`)' 203 . ' )' 204 . ' TYPE = innodb;'; 205 206 $sql_instalacion = 'CREATE TABLE `instalacion` (' 207 . ' `idinstalacion` TINYINT UNSIGNED NOT NULL, ' 208 . ' `instalacion` VARCHAR(50) CHARACTER SET utf8 COLLATE 209 utf8_spanish_ci NOT NULL, ' 210 . ' `normas` VARCHAR(255) CHARACTER SET utf8 COLLATE 211 utf8_spanish_ci NOT NULL ,' 212 . ' PRIMARY KEY (`idinstalacion`),' 213 . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`)' 214 . ' )' 215 . ' TYPE = innodb;'; 216 217 $sql_equipacion = 'CREATE TABLE `equipacion` (' 218 . ' `idequipacion` TINYINT UNSIGNED NOT NULL, ' 219 . ' `equipacion` VARCHAR(50) CHARACTER SET utf8 COLLATE 220 utf8_spanish_ci NOT NULL, ' 221 . ' `estado` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_spanish_ci 222 NOT NULL, ' 223 . ' `normas` VARCHAR(255) CHARACTER SET utf8 COLLATE 224 utf8_spanish_ci NULL ,' 225 . ' PRIMARY KEY (`idequipacion`)'

Page 115: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 113

226 . ' )' 227 . ' TYPE = innodb;'; 228 229 $sql_res_ins = 'CREATE TABLE `res_ins` (' 230 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 231 NOT NULL, ' 232 . ' `idinstalacion` TINYINT UNSIGNED NOT NULL, ' 233 . ' `fecha` DATETIME NOT NULL, ' 234 . ' `proposito` TEXT NOT NULL,' 235 . ' PRIMARY KEY (`login`, `idinstalacion`,`fecha`),' 236 . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`),' 237 . ' FOREIGN KEY (`idinstalacion`) REFERENCES `instalacion`( 238 `idinstalacion`)' 239 . ' )' 240 . ' TYPE = innodb;'; 241 242 $sql_res_equi = 'CREATE TABLE `res_equi` (' 243 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 244 NOT NULL, ' 245 . ' `idequipacion` TINYINT UNSIGNED NOT NULL, ' 246 . ' `fecha` DATETIME NOT NULL, ' 247 . ' `proposito` TEXT NOT NULL,' 248 . ' PRIMARY KEY (`login`, `idequipacion`,`fecha`),' 249 . ' FOREIGN KEY (`login`) REFERENCES `profesor`(`login`),' 250 . ' FOREIGN KEY (`idequipacion`) REFERENCES `equipacion`( 251 `idequipacion`)' 252 . ' )' 253 . ' TYPE = innodb;'; 254 255 $sql_responsable = 'CREATE TABLE `responsable` (' 256 . ' `padre` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 257 NOT NULL, ' 258 . ' `alumno` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 259 NOT NULL,' 260 . ' PRIMARY KEY (`padre`, `alumno`),' 261 . ' FOREIGN KEY (`padre`) REFERENCES `usuario`(`login`),' 262 . ' FOREIGN KEY (`alumno`) REFERENCES `usuario`(`login`)' 263 . ' )' 264 . ' TYPE = innodb;'; 265 266 $sql_asignatura = 'CREATE TABLE `asignatura` (' 267 . ' `codigoasignatura` TINYINT UNSIGNED NOT NULL, ' 268 . ' `nombre` VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_spanish_ci 269 NOT NULL, ' 270 . ' `curso` ENUM(\'1\',\'2\',\'3\',\'4\',\'5\',\'6\') NOT NULL, ' 271 . ' `horario` VARCHAR(255) CHARACTER SET utf8 COLLATE 272 utf8_spanish_ci NULL,' 273 . ' PRIMARY KEY (`codigoasignatura`)' 274 . ' )' 275 . ' TYPE = innodb;'; 276 277 $sql_imparte = 'CREATE TABLE `imparte` (' 278 . ' `asignatura` TINYINT UNSIGNED NOT NULL, ' 279 . ' `profesor` VARCHAR(20) CHARACTER SET utf8 COLLATE 280 utf8_spanish_ci NOT NULL,' 281 . ' PRIMARY KEY (`asignatura`, `profesor`),' 282 . ' FOREIGN KEY (`asignatura`) REFERENCES `asignatura`( 283 `codigoasignatura`),' 284 . ' FOREIGN KEY (`profesor`) REFERENCES `profesor`(`login`)' 285 . ' )' 286 . ' TYPE = innodb;'; 287 288 $sql_nota = 'CREATE TABLE `nota` (' 289 . ' `alumno` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 290 NOT NULL, ' 291 . ' `asignatura` TINYINT UNSIGNED NOT NULL, ' 292 . ' `curso` ENUM(\'1\',\'2\',\'3\',\'4\',\'5\',\'6\') NOT NULL, ' 293 . ' `trimestre` enum(\'1\',\'2\',\'3\',\'4\') collate 294 utf8_spanish_ci NOT NULL,' 295 . ' `nota` FLOAT NOT NULL,' 296 . ' PRIMARY KEY (`alumno`, `asignatura`,`trimestre`),' 297 . ' FOREIGN KEY (`alumno`) REFERENCES `alumno`(`login`),' 298 . ' FOREIGN KEY (`asignatura`) REFERENCES `asignatura`( 299 `codigoasignatura`)' 300 . ' )' 301 . ' TYPE = innodb;'; 302

Page 116: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 114

303 $sql_faltaasistencia = 'CREATE TABLE `faltaasistencia` (' 304 . ' `alumno` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 305 NOT NULL, ' 306 . ' `asignatura` TINYINT UNSIGNED NOT NULL, ' 307 . ' `fecha` DATE NOT NULL, ' 308 . ' `justificada` BOOL NOT NULL DEFAULT \'0\',' 309 . ' PRIMARY KEY (`alumno`,`asignatura`,`fecha`),' 310 . ' FOREIGN KEY (`alumno`) REFERENCES `alumno`(`login`),' 311 . ' FOREIGN KEY (`asignatura`) REFERENCES `asignatura`( 312 `codigoasignatura`)' 313 . ' )' 314 . ' TYPE = innodb DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;'; 315 316 $sql_grupo = 'CREATE TABLE `grupo` (' 317 . ' `curso` ENUM(\'1\',\'2\',\'3\',\'4\',\'5\',\'6\') NOT NULL, ' 318 . ' `letra` ENUM(\'A\',\'B\',\'C\',\'D\',\'E\',\'F\') NOT NULL, ' 319 . ' `aula` VARCHAR(5) NOT NULL, ' 320 . ' `delegado` VARCHAR(20) CHARACTER SET utf8 COLLATE 321 utf8_spanish_ci NULL, ' 322 . ' `tutor` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 323 NULL,' 324 . ' PRIMARY KEY (`curso`, `letra`),' 325 . ' FOREIGN KEY (`delegado`) REFERENCES `alumno`(`login`),' 326 . ' FOREIGN KEY (`tutor`) REFERENCES `profesor`(`login`)' 327 . ' )' 328 . ' TYPE = innodb;'; 329 330 $sql_impartida = 'CREATE TABLE `impartida` (' 331 . ' `curso` ENUM(\'1\',\'2\',\'3\',\'4\',\'5\',\'6\') NOT NULL, ' 332 . ' `letra` ENUM(\'A\',\'B\',\'C\',\'D\',\'E\',\'F\') NOT NULL, ' 333 . ' `asignatura` TINYINT UNSIGNED NOT NULL,' 334 . ' PRIMARY KEY (`curso`, `letra`, `asignatura`),' 335 . ' FOREIGN KEY (`curso`, `letra`) REFERENCES `grupo`(`curso`, 336 `letra`),' 337 . ' FOREIGN KEY (`asignatura`) REFERENCES `asignatura`( 338 `codigoasignatura`)' 339 . ' )' 340 . ' TYPE = innodb;'; 341 342 $sql_evento = 'CREATE TABLE `evento` (' 343 . ' `idevento` SMALLINT UNSIGNED NOT NULL, ' 344 . ' `fecha` DATETIME NOT NULL, ' 345 . ' `titulo` VARCHAR(255) CHARACTER SET utf8 COLLATE 346 utf8_spanish_ci NOT NULL, ' 347 . ' `lugar` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_spanish_ci 348 NOT NULL, ' 349 . ' `descripcion` TEXT NOT NULL,' 350 . ' PRIMARY KEY (`idevento`)' 351 . ' )' 352 . ' TYPE = innodb;'; 353 354 $sql_gen_even = 'CREATE TABLE `gen_even` (' 355 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 356 NOT NULL, ' 357 . ' `evento` SMALLINT UNSIGNED NOT NULL,' 358 . ' PRIMARY KEY (`login`, `evento`),' 359 . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`),' 360 . ' FOREIGN KEY (`evento`) REFERENCES `evento`(`idevento`)' 361 . ' )' 362 . ' TYPE = innodb;'; 363 364 ///// 365 // Ejecucion de las creaciones de tablas 366 //// 367 echo "<html><head>"; 368 echo "<title>Creacion de las tablas de base de datos WebCole</title>< 369 /head>"; 370 echo "<table style='text-align: left; width: 100%;' border='1' 371 cellpadding='2' cellspacing='2'>"; 372 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 373 weight: bold;'><big>Descripcion</big></td>"; 374 echo "<td style='text-align: center; width: 163px;'><big><span 375 style='font-weight: bold;'>Estado</span></big></td>"; 376 echo "<td style='text-align: center; width: 255px;'><big><span 377 style='font-weight: bold;'>Error</span></big></td>"; 378 echo "</tr>"; 379

Page 117: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 115

380 $result = mysql_query($sql_usuario); 381 echo "<tr><td style='width: 281px; text-align: left;'>"; 382 echo "<font><b>Creacion de la tabla de usuarios </b></font><br>\n"; 383 echo "</td>\n"; 384 if(!$result) 385 { 386 echo "<td style='width: 163px; text-align: center;'>"; 387 echo "<font color=red>Error </font>\n"; 388 echo "</td>"; 389 echo "<td style='width: 255px; text-align: center;'>"; 390 echo "" . mysql_error() . "\n"; 391 echo "</td>"; 392 } 393 else 394 { 395 echo "<td style='width: 163px; text-align: center;'>"; 396 echo "<font color=green>Correcto</font>\n"; 397 echo "</td>"; 398 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 399 \n"; 400 } 401 402 $result = mysql_query($sql_profesor); 403 echo "<tr><td style='width: 281px; text-align: left;'>"; 404 echo "<font><b>Creacion de la tabla de profesores </b></font><br>\n"; 405 echo "</td>\n"; 406 if(!$result) 407 { 408 echo "<td style='width: 163px; text-align: center;'>"; 409 echo "<font color=red>Error </font>\n"; 410 echo "</td>"; 411 echo "<td style='width: 255px; text-align: center;'>"; 412 echo "" . mysql_error() . "\n"; 413 echo "</td>"; 414 } 415 else 416 { 417 echo "<td style='width: 163px; text-align: center;'>"; 418 echo "<font color=green>Correcto</font>\n"; 419 echo "</td>"; 420 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 421 \n"; 422 } 423 424 $result = mysql_query($sql_alumno); 425 echo "<tr><td style='width: 281px; text-align: left;'>"; 426 echo "<font><b>Creacion de la tabla de alumnos </b></font><br>\n"; 427 echo "</td>\n"; 428 if(!$result) 429 { 430 echo "<td style='width: 163px; text-align: center;'>"; 431 echo "<font color=red>Error </font>\n"; 432 echo "</td>"; 433 echo "<td style='width: 255px; text-align: center;'>"; 434 echo "" . mysql_error() . "\n"; 435 echo "</td>"; 436 } 437 else 438 { 439 echo "<td style='width: 163px; text-align: center;'>"; 440 echo "<font color=green>Correcto</font>\n"; 441 echo "</td>"; 442 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 443 \n"; 444 } 445 446 $result = mysql_query($sql_padre); 447 echo "<tr><td style='width: 281px; text-align: left;'>"; 448 echo "<font><b>Creacion de la tabla de padre </b></font><br>\n"; 449 echo "</td>\n"; 450 if(!$result) 451 { 452 echo "<td style='width: 163px; text-align: center;'>"; 453 echo "<font color=red>Error </font>\n"; 454 echo "</td>"; 455 echo "<td style='width: 255px; text-align: center;'>"; 456 echo "" . mysql_error() . "\n";

Page 118: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 116

457 echo "</td>"; 458 } 459 else 460 { 461 echo "<td style='width: 163px; text-align: center;'>"; 462 echo "<font color=green>Correcto</font>\n"; 463 echo "</td>"; 464 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 465 \n"; 466 } 467 468 469 $result = mysql_query($sql_admin); 470 echo "<tr><td style='width: 281px; text-align: left;'>"; 471 echo "<font><b>Creacion de la tabla de administrador </b></font><br>\n"; 472 echo "</td>\n"; 473 if(!$result) 474 { 475 echo "<td style='width: 163px; text-align: center;'>"; 476 echo "<font color=red>Error </font>\n"; 477 echo "</td>"; 478 echo "<td style='width: 255px; text-align: center;'>"; 479 echo "" . mysql_error() . "\n"; 480 echo "</td>"; 481 } 482 else 483 { 484 echo "<td style='width: 163px; text-align: center;'>"; 485 echo "<font color=green>Correcto</font>\n"; 486 echo "</td>"; 487 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 488 \n"; 489 } 490 491 $result = mysql_query($sql_eq); 492 echo "<tr><td style='width: 281px; text-align: left;'>"; 493 echo "<font><b>Creacion de la tabla de equipo directivo </b></font><br> 494 \n"; 495 echo "</td>\n"; 496 if(!$result) 497 { 498 echo "<td style='width: 163px; text-align: center;'>"; 499 echo "<font color=red>Error </font>\n"; 500 echo "</td>"; 501 echo "<td style='width: 255px; text-align: center;'>"; 502 echo "" . mysql_error() . "\n"; 503 echo "</td>"; 504 } 505 else 506 { 507 echo "<td style='width: 163px; text-align: center;'>"; 508 echo "<font color=green>Correcto</font>\n"; 509 echo "</td>"; 510 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 511 \n"; 512 } 513 514 $result = mysql_query($sql_director); 515 echo "<tr><td style='width: 281px; text-align: left;'>"; 516 echo "<font><b>Creacion de la tabla de director </b></font><br>\n"; 517 echo "</td>\n"; 518 if(!$result) 519 { 520 echo "<td style='width: 163px; text-align: center;'>"; 521 echo "<font color=red>Error </font>\n"; 522 echo "</td>"; 523 echo "<td style='width: 255px; text-align: center;'>"; 524 echo "" . mysql_error() . "\n"; 525 echo "</td>"; 526 } 527 else 528 { 529 echo "<td style='width: 163px; text-align: center;'>"; 530 echo "<font color=green>Correcto</font>\n"; 531 echo "</td>"; 532 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 533 \n";

Page 119: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 117

534 } 535 536 $result = mysql_query($sql_jefe); 537 echo "<tr><td style='width: 281px; text-align: left;'>"; 538 echo "<font><b>Creacion de la tabla de Jefe de estudios </b></font><br> 539 \n"; 540 echo "</td>\n"; 541 if(!$result) 542 { 543 echo "<td style='width: 163px; text-align: center;'>"; 544 echo "<font color=red>Error </font>\n"; 545 echo "</td>"; 546 echo "<td style='width: 255px; text-align: center;'>"; 547 echo "" . mysql_error() . "\n"; 548 echo "</td>"; 549 } 550 else 551 { 552 echo "<td style='width: 163px; text-align: center;'>"; 553 echo "<font color=green>Correcto</font>\n"; 554 echo "</td>"; 555 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 556 \n"; 557 } 558 559 $result = mysql_query($sql_secretario); 560 echo "<tr><td style='width: 281px; text-align: left;'>"; 561 echo "<font><b>Creacion de la tabla de secretario </b></font><br>\n"; 562 echo "</td>\n"; 563 if(!$result) 564 { 565 echo "<td style='width: 163px; text-align: center;'>"; 566 echo "<font color=red>Error </font>\n"; 567 echo "</td>"; 568 echo "<td style='width: 255px; text-align: center;'>"; 569 echo "" . mysql_error() . "\n"; 570 echo "</td>"; 571 } 572 else 573 { 574 echo "<td style='width: 163px; text-align: center;'>"; 575 echo "<font color=green>Correcto</font>\n"; 576 echo "</td>"; 577 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 578 \n"; 579 } 580 581 $result = mysql_query($sql_anuncio); 582 echo "<tr><td style='width: 281px; text-align: left;'>"; 583 echo "<font><b>Creacion de la tabla de tabla de anuncios </b></font><br> 584 \n"; 585 echo "</td>\n"; 586 if(!$result) 587 { 588 echo "<td style='width: 163px; text-align: center;'>"; 589 echo "<font color=red>Error </font>\n"; 590 echo "</td>"; 591 echo "<td style='width: 255px; text-align: center;'>"; 592 echo "" . mysql_error() . "\n"; 593 echo "</td>"; 594 } 595 else 596 { 597 echo "<td style='width: 163px; text-align: center;'>"; 598 echo "<font color=green>Correcto</font>\n"; 599 echo "</td>"; 600 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 601 \n"; 602 } 603 604 $result = mysql_query($sql_instalacion); 605 echo "<tr><td style='width: 281px; text-align: left;'>"; 606 echo "<font><b>Creacion de la tabla de instalacion </b></font><br>\n"; 607 echo "</td>\n"; 608 if(!$result) 609 { 610 echo "<td style='width: 163px; text-align: center;'>";

Page 120: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 118

611 echo "<font color=red>Error </font>\n"; 612 echo "</td>"; 613 echo "<td style='width: 255px; text-align: center;'>"; 614 echo "" . mysql_error() . "\n"; 615 echo "</td>"; 616 } 617 else 618 { 619 echo "<td style='width: 163px; text-align: center;'>"; 620 echo "<font color=green>Correcto</font>\n"; 621 echo "</td>"; 622 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 623 \n"; 624 } 625 626 $result = mysql_query($sql_equipacion); 627 echo "<tr><td style='width: 281px; text-align: left;'>"; 628 echo "<font><b>Creacion de la tabla de equipacion </b></font><br>\n"; 629 echo "</td>\n"; 630 if(!$result) 631 { 632 echo "<td style='width: 163px; text-align: center;'>"; 633 echo "<font color=red>Error </font>\n"; 634 echo "</td>"; 635 echo "<td style='width: 255px; text-align: center;'>"; 636 echo "" . mysql_error() . "\n"; 637 echo "</td>"; 638 } 639 else 640 { 641 echo "<td style='width: 163px; text-align: center;'>"; 642 echo "<font color=green>Correcto</font>\n"; 643 echo "</td>"; 644 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 645 \n"; 646 } 647 648 $result = mysql_query($sql_res_ins); 649 echo "<tr><td style='width: 281px; text-align: left;'>"; 650 echo "<font><b>Creacion de la tabla de res_ins </b></font><br>\n"; 651 echo "</td>\n"; 652 if(!$result) 653 { 654 echo "<td style='width: 163px; text-align: center;'>"; 655 echo "<font color=red>Error </font>\n"; 656 echo "</td>"; 657 echo "<td style='width: 255px; text-align: center;'>"; 658 echo "" . mysql_error() . "\n"; 659 echo "</td>"; 660 } 661 else 662 { 663 echo "<td style='width: 163px; text-align: center;'>"; 664 echo "<font color=green>Correcto</font>\n"; 665 echo "</td>"; 666 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 667 \n"; 668 } 669 670 $result = mysql_query($sql_res_equi); 671 echo "<tr><td style='width: 281px; text-align: left;'>"; 672 echo "<font><b>Creacion de la tabla de res_equi </b></font><br>\n"; 673 echo "</td>\n"; 674 if(!$result) 675 { 676 echo "<td style='width: 163px; text-align: center;'>"; 677 echo "<font color=red>Error </font>\n"; 678 echo "</td>"; 679 echo "<td style='width: 255px; text-align: center;'>"; 680 echo "" . mysql_error() . "\n"; 681 echo "</td>"; 682 } 683 else 684 { 685 echo "<td style='width: 163px; text-align: center;'>"; 686 echo "<font color=green>Correcto</font>\n"; 687 echo "</td>";

Page 121: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 119

688 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 689 \n"; 690 } 691 692 $result = mysql_query($sql_responsable); 693 echo "<tr><td style='width: 281px; text-align: left;'>"; 694 echo "<font><b>Creacion de la tabla de responsable </b></font><br>\n"; 695 echo "</td>\n"; 696 if(!$result) 697 { 698 echo "<td style='width: 163px; text-align: center;'>"; 699 echo "<font color=red>Error </font>\n"; 700 echo "</td>"; 701 echo "<td style='width: 255px; text-align: center;'>"; 702 echo "" . mysql_error() . "\n"; 703 echo "</td>"; 704 } 705 else 706 { 707 echo "<td style='width: 163px; text-align: center;'>"; 708 echo "<font color=green>Correcto</font>\n"; 709 echo "</td>"; 710 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 711 \n"; 712 } 713 714 $result = mysql_query($sql_asignatura); 715 echo "<tr><td style='width: 281px; text-align: left;'>"; 716 echo "<font><b>Creacion de la tabla de asignatura </b></font><br>\n"; 717 echo "</td>\n"; 718 if(!$result) 719 { 720 echo "<td style='width: 163px; text-align: center;'>"; 721 echo "<font color=red>Error </font>\n"; 722 echo "</td>"; 723 echo "<td style='width: 255px; text-align: center;'>"; 724 echo "" . mysql_error() . "\n"; 725 echo "</td>"; 726 } 727 else 728 { 729 echo "<td style='width: 163px; text-align: center;'>"; 730 echo "<font color=green>Correcto</font>\n"; 731 echo "</td>"; 732 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 733 \n"; 734 } 735 736 $result = mysql_query($sql_imparte); 737 echo "<tr><td style='width: 281px; text-align: left;'>"; 738 echo "<font><b>Creacion de la tabla de imparte </b></font><br>\n"; 739 echo "</td>\n"; 740 if(!$result) 741 { 742 echo "<td style='width: 163px; text-align: center;'>"; 743 echo "<font color=red>Error </font>\n"; 744 echo "</td>"; 745 echo "<td style='width: 255px; text-align: center;'>"; 746 echo "" . mysql_error() . "\n"; 747 echo "</td>"; 748 } 749 else 750 { 751 echo "<td style='width: 163px; text-align: center;'>"; 752 echo "<font color=green>Correcto</font>\n"; 753 echo "</td>"; 754 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 755 \n"; 756 } 757 758 $result = mysql_query($sql_nota); 759 echo "<tr><td style='width: 281px; text-align: left;'>"; 760 echo "<font><b>Creacion de la tabla de nota </b></font><br>\n"; 761 echo "</td>\n"; 762 if(!$result) 763 { 764 echo "<td style='width: 163px; text-align: center;'>";

Page 122: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 120

765 echo "<font color=red>Error </font>\n"; 766 echo "</td>"; 767 echo "<td style='width: 255px; text-align: center;'>"; 768 echo "" . mysql_error() . "\n"; 769 echo "</td>"; 770 } 771 else 772 { 773 echo "<td style='width: 163px; text-align: center;'>"; 774 echo "<font color=green>Correcto</font>\n"; 775 echo "</td>"; 776 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 777 \n"; 778 } 779 780 $result = mysql_query($sql_faltaasistencia); 781 echo "<tr><td style='width: 281px; text-align: left;'>"; 782 echo "<font><b>Creacion de la tabla de falta asistencia </b></font><br> 783 \n"; 784 echo "</td>\n"; 785 if(!$result) 786 { 787 echo "<td style='width: 163px; text-align: center;'>"; 788 echo "<font color=red>Error </font>\n"; 789 echo "</td>"; 790 echo "<td style='width: 255px; text-align: center;'>"; 791 echo "" . mysql_error() . "\n"; 792 echo "</td>"; 793 } 794 else 795 { 796 echo "<td style='width: 163px; text-align: center;'>"; 797 echo "<font color=green>Correcto</font>\n"; 798 echo "</td>"; 799 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 800 \n"; 801 } 802 803 $result = mysql_query($sql_grupo); 804 echo "<tr><td style='width: 281px; text-align: left;'>"; 805 echo "<font><b>Creacion de la tabla de grupo </b></font><br>\n"; 806 echo "</td>\n"; 807 if(!$result) 808 { 809 echo "<td style='width: 163px; text-align: center;'>"; 810 echo "<font color=red>Error </font>\n"; 811 echo "</td>"; 812 echo "<td style='width: 255px; text-align: center;'>"; 813 echo "" . mysql_error() . "\n"; 814 echo "</td>"; 815 } 816 else 817 { 818 echo "<td style='width: 163px; text-align: center;'>"; 819 echo "<font color=green>Correcto</font>\n"; 820 echo "</td>"; 821 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 822 \n"; 823 } 824 825 $result = mysql_query($sql_impartida); 826 echo "<tr><td style='width: 281px; text-align: left;'>"; 827 echo "<font><b>Creacion de la tabla de impartida </b></font><br>\n"; 828 echo "</td>\n"; 829 if(!$result) 830 { 831 echo "<td style='width: 163px; text-align: center;'>"; 832 echo "<font color=red>Error </font>\n"; 833 echo "</td>"; 834 echo "<td style='width: 255px; text-align: center;'>"; 835 echo "" . mysql_error() . "\n"; 836 echo "</td>"; 837 } 838 else 839 { 840 echo "<td style='width: 163px; text-align: center;'>"; 841 echo "<font color=green>Correcto</font>\n";

Page 123: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 121

842 echo "</td>"; 843 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 844 \n"; 845 } 846 847 $result = mysql_query($sql_evento); 848 echo "<tr><td style='width: 281px; text-align: left;'>"; 849 echo "<font><b>Creacion de la tabla de evento </b></font><br>\n"; 850 echo "</td>\n"; 851 if(!$result) 852 { 853 echo "<td style='width: 163px; text-align: center;'>"; 854 echo "<font color=red>Error </font>\n"; 855 echo "</td>"; 856 echo "<td style='width: 255px; text-align: center;'>"; 857 echo "" . mysql_error() . "\n"; 858 echo "</td>"; 859 } 860 else 861 { 862 echo "<td style='width: 163px; text-align: center;'>"; 863 echo "<font color=green>Correcto</font>\n"; 864 echo "</td>"; 865 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 866 \n"; 867 } 868 869 $result = mysql_query($sql_gen_even); 870 echo "<tr><td style='width: 281px; text-align: left;'>"; 871 echo "<font><b>Creacion de la tabla de gen_even </b></font><br>\n"; 872 echo "</td>\n"; 873 if(!$result) 874 { 875 echo "<td style='width: 163px; text-align: center;'>"; 876 echo "<font color=red>Error </font>\n"; 877 echo "</td>"; 878 echo "<td style='width: 255px; text-align: center;'>"; 879 echo "" . mysql_error() . "\n"; 880 echo "</td>"; 881 } 882 else 883 { 884 echo "<td style='width: 163px; text-align: center;'>"; 885 echo "<font color=green>Correcto</font>\n"; 886 echo "</td>"; 887 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 888 \n"; 889 } 890 891 echo " </tbody></table><br><br>"; 892 } 893 894 function borrar_tablas () 895 { 896 echo "<html><head>"; 897 echo "<title>Eliminacion de las tablas de base de datos WebCole</title>< 898 /head>"; 899 echo "<table style='text-align: left; width: 100%;' border='1' 900 cellpadding='2' cellspacing='2'>"; 901 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 902 weight: bold;'><big>Descripcion</big></td>"; 903 echo "<td style='text-align: center; width: 163px;'><big><span 904 style='font-weight: bold;'>Estado</span></big></td>"; 905 echo "<td style='text-align: center; width: 255px;'><big><span 906 style='font-weight: bold;'>Error</span></big></td>"; 907 echo "</tr>"; 908 909 $i = 0; 910 911 $prueba[$i]["sql"] = 'DROP TABLE `gen_even`'; 912 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de gen_even"; 913 914 $prueba[$i]["sql"] = 'DROP TABLE `evento`'; 915 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de evento"; 916 917 $prueba[$i]["sql"] = 'DROP TABLE `impartida`'; 918 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de impartida";

Page 124: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 122

919 920 $prueba[$i]["sql"] = 'DROP TABLE `grupo`'; 921 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de grupo"; 922 923 $prueba[$i]["sql"] = 'DROP TABLE `faltaasistencia`'; 924 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de falta 925 asistencia"; 926 927 $prueba[$i]["sql"] = 'DROP TABLE `nota`'; 928 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de nota"; 929 930 $prueba[$i]["sql"] = 'DROP TABLE `imparte`'; 931 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de imparte"; 932 933 $prueba[$i]["sql"] = 'DROP TABLE `asignatura`'; 934 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de asignatura"; 935 936 $prueba[$i]["sql"] = 'DROP TABLE `responsable`'; 937 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de responsable"; 938 939 $prueba[$i]["sql"] = 'DROP TABLE `res_equi`'; 940 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de res_Equi"; 941 942 $prueba[$i]["sql"] = 'DROP TABLE `res_ins`'; 943 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de res_ins"; 944 945 $prueba[$i]["sql"] = 'DROP TABLE `equipacion`'; 946 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de equipacion "; 947 948 $prueba[$i]["sql"] = 'DROP TABLE `instalacion`'; 949 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de instalacion"; 950 951 $prueba[$i]["sql"] = 'DROP TABLE `anuncio`'; 952 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de anuncio"; 953 954 $prueba[$i]["sql"] = 'DROP TABLE `secretario`'; 955 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de secretario"; 956 957 $prueba[$i]["sql"] = 'DROP TABLE `jefeestudio`'; 958 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de Jefe de 959 estudios "; 960 961 $prueba[$i]["sql"] = 'DROP TABLE `director`'; 962 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de director"; 963 964 $prueba[$i]["sql"] = 'DROP TABLE `equipodirectivo`'; 965 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de equipo 966 directivo"; 967 968 $prueba[$i]["sql"] = 'DROP TABLE `administrador`'; 969 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de 970 administrador"; 971 972 $prueba[$i]["sql"] = 'DROP TABLE `padre`'; 973 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de padre"; 974 975 $prueba[$i]["sql"] = 'DROP TABLE `alumno`'; 976 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de alumno"; 977 978 $prueba[$i]["sql"] = 'DROP TABLE `profesor`'; 979 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de profesor"; 980 981 $prueba[$i]["sql"] = 'DROP TABLE `usuario`'; 982 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de usuario"; 983 984 ejecutar ($prueba, $link); 985 986 echo " </tbody></table><br><br>"; 987 } 988 989 // crea la base de datos (no crea nada mas) 990 function crear_bd($link) 991 { 992 echo "<html><head>"; 993 echo "<title>Creacion de la base de datos Webcole</title></head>"; 994 echo "<table style='text-align: left; width: 100%;' border='1' 995 cellpadding='2' cellspacing='2'>";

Page 125: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 123

996 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 997 weight: bold;'><big>Descripcion</big></td>"; 998 echo "<td style='text-align: center; width: 163px;'><big><span 999 style='font-weight: bold;'>Estado</span></big></td>"; 1000 echo "<td style='text-align: center; width: 255px;'><big><span 1001 style='font-weight: bold;'>Error</span></big></td>"; 1002 echo "</tr>"; 1003 1004 $i = 0; 1005 $prueba[$i]["sql"] = 'CREATE DATABASE `webcole`;'; 1006 $prueba[$i++]["descripcion"] = "Creacion de la base de datos de 1007 WebCole"; 1008 1009 ejecutar ($prueba, $link); 1010 1011 echo " </tbody></table><br><br>"; 1012 } 1013 1014 //permite borrar la base de datos ( y todas las tablas ) 1015 //no borra las perfiles de los usuarios que pueden acceder a la base de 1016 datos 1017 //no confundir con los datos que hay dentro de las tablas de "usuario", 1018 "alumno", "padre" ... 1019 function borrar_bd($link) 1020 { 1021 echo "<html><head>"; 1022 echo "<title>Elimanacion de la base de datos Webcole</title></head>"; 1023 echo "<table style='text-align: left; width: 100%;' border='1' 1024 cellpadding='2' cellspacing='2'>"; 1025 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 1026 weight: bold;'><big>Descripcion</big></td>"; 1027 echo "<td style='text-align: center; width: 163px;'><big><span 1028 style='font-weight: bold;'>Estado</span></big></td>"; 1029 echo "<td style='text-align: center; width: 255px;'><big><span 1030 style='font-weight: bold;'>Error</span></big></td>"; 1031 echo "</tr>"; 1032 1033 $i = 0; 1034 $prueba[$i]["sql"] = 'DROP DATABASE `webcole`'; 1035 $prueba[$i++]["descripcion"] = "Eliminacion de la base de datos"; 1036 1037 ejecutar ($prueba, $link); 1038 1039 echo " </tbody></table><br><br>"; 1040 } 1041 1042 //las opciones de la tabla 1043 function inicio_html () 1044 { 1045 echo "<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'> 1046 \n"; 1047 echo "<html>\n"; 1048 echo "<head>\n"; 1049 echo "<meta content='text/html; charset=ISO-8859-1'\n"; 1050 echo " http-equiv='content-type'>\n"; 1051 echo "<title>Setup para Webcole</title>\n"; 1052 echo "</head>\n"; 1053 echo "<body>\n"; 1054 echo "<div style='text-align: center;'><big><big><span\n"; 1055 echo " style='font-weight: bold;'>Fichero para la\n"; 1056 echo "inicializaci&oacute;n de la base de datos para el PFC WebCole<br> 1057 \n"; 1058 echo "<br>\n"; 1059 echo "</span></big></big>\n"; 1060 echo "<div style='text-align: left;'>\n"; 1061 echo "<table style='text-align: left; width: 952px; height: 171px;'\n"; 1062 echo " border='1' cellpadding='2' cellspacing='2'>\n"; 1063 echo " <tbody>\n"; 1064 echo " <tr>\n"; 1065 echo " <td style='font-weight: bold; width: 633px;'>Crear\n"; 1066 echo "la base de\n"; 1067 echo "datos de 'WebCole'</td>\n"; 1068 echo " <td style='width: 318px;'>\n"; 1069 echo " <form method='get' action='setup.php'\n"; 1070 echo " name='crear_db'><button value='1' name='opcion'>Crear\n"; 1071 echo "base de datos </button></form>\n"; 1072 echo " </td>\n";

Page 126: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 124

1073 echo " </tr>\n"; 1074 echo " <tr>\n"; 1075 echo " <td style='width: 633px;'><span\n"; 1076 echo " style='font-weight: bold;'>Crear las\n"; 1077 echo "tablas de la base de datos </span><span \n"; 1078 echo " style='font-weight: bold;'>(si la base de \n"; 1079 echo "datos no existe, se crear&aacute;)</span></td> \n"; 1080 echo " <td style='width: 318px;'> \n"; 1081 echo " <form method='get' action='setup.php' \n"; 1082 echo " name='crear_tablas'><button value='2' name='opcion'>Crear \n"; 1083 echo "tablas</button></form> \n"; 1084 echo " </td> \n"; 1085 echo " </tr> \n"; 1086 echo " <tr> \n"; 1087 echo " <td style='font-weight: bold; width: 633px;'>Destruir \n"; 1088 echo "las tablas de la base de datos</td> \n"; 1089 echo " <td style='width: 318px;'> \n"; 1090 echo " <form method='get' action='setup.php' \n"; 1091 echo " name='Destruir_tablas'><button value='3' \n"; 1092 echo " name='opcion'>Destruir tablas</button></form> \n"; 1093 echo " </td> \n"; 1094 echo " </tr> \n"; 1095 echo " <tr> \n"; 1096 echo " <td style='font-weight: bold; width: 633px;'>Destruir \n"; 1097 echo "la base de datos de 'Webcole' (se destruir&aacute;n \n"; 1098 echo "tambi&eacute;n las tablas)</td> \n"; 1099 echo " <td style='width: 318px;'> \n"; 1100 echo " <form method='get' action='setup.php' \n"; 1101 echo " name='Destruir_db'><button value='4' name='opcion'>Destruir \n"; 1102 echo "base de datos</button></form> \n"; 1103 echo " </td> \n"; 1104 echo " </tr> \n"; 1105 1106 1107 echo " <tr> \n"; 1108 echo " <td style='font-weight: bold; width: 633px;'> Ejemplos </td> 1109 \n"; 1110 echo " <td style='width: 318px;'> \n"; 1111 echo " <form method='get' action='setup.php' 1112 name='Destruir_db'><button value='5' name='opcion'>"; 1113 echo " Ejemplos</button></form> \n"; 1114 echo " </td> \n"; 1115 echo " </tr> \n"; 1116 1117 1118 echo " <tr> \n"; 1119 echo " <td style='font-weight: bold; width: 633px;'> Crear 1120 Perfiles usuarios </td> \n"; 1121 echo " <td style='width: 318px;'> \n"; 1122 echo " <form method='get' action='setup.php' 1123 name='Destruir_db'><button value='6' name='opcion'>"; 1124 echo " Crear Perfiles Usuarios</button></form> \n"; 1125 echo " </td> \n"; 1126 echo " </tr> \n"; 1127 1128 echo " <tr> \n"; 1129 echo " <td style='font-weight: bold; width: 633px;'> Borrar 1130 Perfiles usuarios </td> \n"; 1131 echo " <td style='width: 318px;'> \n"; 1132 echo " <form method='get' action='setup.php' 1133 name='Destruir_db'><button value='7' name='opcion'>"; 1134 echo " Borrar Perfiles Usuarios</button></form> \n"; 1135 echo " </td> \n"; 1136 echo " </tr> \n"; 1137 1138 1139 1140 echo " <tr> \n"; 1141 echo " <td style='font-weight: bold; width: 633px;'>Pruebas</td> 1142 \n"; 1143 echo " <td style='width: 318px;'> \n"; 1144 echo " <form method='get' action='setup.php' 1145 name='Destruir_db'><button value='99' name='opcion'>"; 1146 echo " Pruebas</button></form> \n"; 1147 echo " </td> \n"; 1148 echo " </tr> \n"; 1149

Page 127: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 125

1150 1151 echo " </tbody> \n"; 1152 echo "</table> \n"; 1153 echo "<big><big><span style='font-weight: bold;'></span></big></big>< 1154 big><big><span \n"; 1155 echo " style='font-weight: bold;'></span></big></big></div> \n"; 1156 echo "</div> \n"; 1157 echo "</body> \n"; 1158 echo "</html> \n"; 1159 1160 1161 } 1162 1163 //final de la pagina html 1164 function fin_html () 1165 { 1166 echo "<br>"; 1167 echo "<div style='text-align: center;'> "; 1168 echo "Vuelve al inicio pulsando <a href='setup.php'>aqu&iacute;</a><br> 1169 "; 1170 echo "</div> "; 1171 echo "</body></html>"; 1172 } 1173 1174 1175 1176 // Carga varios usuarios en la base de datos 1177 function ejemplos ($link) 1178 { 1179 echo "<html><head>"; 1180 echo "<title>Ejemplos para la base de datos Webcole</title></head>"; 1181 echo "<table style='text-align: left; width: 100%;' border='1' 1182 cellpadding='2' cellspacing='2'>"; 1183 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 1184 weight: bold;'><big>Descripcion</big></td>"; 1185 echo "<td style='text-align: center; width: 163px;'><big><span 1186 style='font-weight: bold;'>Estado</span></big></td>"; 1187 echo "<td style='text-align: center; width: 255px;'><big><span 1188 style='font-weight: bold;'>Error</span></big></td>"; 1189 echo "</tr>"; 1190 1191 $datos = array("login" => "viblasan",); 1192 $datos["nombre"] = "viblasan"; 1193 $datos["apellido1"] = "Blasco"; 1194 $datos["apellido2"] = "Sánchez"; 1195 $datos["direccion"] = "Maria Pastor"; 1196 $datos["poblacion"] = "alboraya"; 1197 $datos["cp"] = "46120"; 1198 $datos["password"] = "password"; 1199 $datos["telefono"] = "699161799"; 1200 $datos["dni"] = "3312"; 1201 $datos["email"] = "[email protected]"; 1202 $datos["tutorias"] = "null"; 1203 1204 $resultado = insertar_usuario($datos, PROFESOR); 1205 1206 echo "<tr><td style='width: 281px; text-align: left;'>"; 1207 echo "<font><b>Ejemplo Usuario-Profesor(viblasan) </b></font><br>\n"; 1208 echo "</td>\n"; 1209 if(!$resultado["estado"]) 1210 { 1211 echo "<td style='width: 163px; text-align: center;'>"; 1212 echo "<font color=red>Error </font>\n"; 1213 echo "</td>"; 1214 echo "<td style='width: 255px; text-align: center;'>"; 1215 echo "" . $resultado["descripcion"]. "\n"; 1216 echo "</td>"; 1217 } 1218 else 1219 { 1220 echo "<td style='width: 163px; text-align: center;'>"; 1221 echo "<font color=green>Correcto</font>\n"; 1222 echo "</td>"; 1223 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 1224 \n"; 1225 } 1226

Page 128: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 126

1227 $datos = array("login" => "visangui"); 1228 $datos["nombre"] = "Vicente"; 1229 $datos["apellido1"] = "Sancho"; 1230 $datos["apellido2"] = "Guijarro"; 1231 $datos["direccion"] = "Colon"; 1232 $datos["poblacion"] = "Valencia"; 1233 $datos["cp"] = "46456"; 1234 $datos["password"] = "password"; 1235 $datos["telefono"] = "654161799"; 1236 $datos["dni"] = "3312"; 1237 $datos["email"] = "[email protected]"; 1238 $datos["tutorias"] = "null"; 1239 1240 $resultado = insertar_usuario($datos, PROFESOR); 1241 1242 echo "<tr><td style='width: 281px; text-align: left;'>"; 1243 echo "<font><b>Ejemplo Usuario-Profesor(visangui) </b></font><br>\n"; 1244 echo "</td>\n"; 1245 if(!$resultado["estado"]) 1246 { 1247 echo "<td style='width: 163px; text-align: center;'>"; 1248 echo "<font color=red>Error </font>\n"; 1249 echo "</td>"; 1250 echo "<td style='width: 255px; text-align: center;'>"; 1251 echo "" . $resultado["descripcion"]. "\n"; 1252 echo "</td>"; 1253 } 1254 else 1255 { 1256 echo "<td style='width: 163px; text-align: center;'>"; 1257 echo "<font color=green>Correcto</font>\n"; 1258 echo "</td>"; 1259 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 1260 \n"; 1261 } 1262 1263 $datos = array("login" => "visebo"); 1264 $datos["nombre"] = "Alumno1"; 1265 $datos["apellido1"] = "Apellido1Alumno1"; 1266 $datos["apellido2"] = "Apellido2Alumno1"; 1267 $datos["direccion"] = "Colon"; 1268 $datos["poblacion"] = "Valencia"; 1269 $datos["cp"] = "46123"; 1270 $datos["password"] = "password"; 1271 $datos["telefono"] = "63456777"; 1272 $datos["dni"] = "3312"; 1273 $datos["email"] = "[email protected]"; 1274 $datos["tutorias"] = "null"; 1275 1276 $resultado = insertar_usuario($datos, ALUMNO); 1277 1278 echo "<tr><td style='width: 281px; text-align: left;'>"; 1279 echo "<font><b>Ejemplo Usuario-Alumno(visebo) </b></font><br>\n"; 1280 echo "</td>\n"; 1281 if(!$resultado["estado"]) 1282 { 1283 echo "<td style='width: 163px; text-align: center;'>"; 1284 echo "<font color=red>Error </font>\n"; 1285 echo "</td>"; 1286 echo "<td style='width: 255px; text-align: center;'>"; 1287 echo "" . $resultado["descripcion"]. "\n"; 1288 echo "</td>"; 1289 } 1290 else 1291 { 1292 echo "<td style='width: 163px; text-align: center;'>"; 1293 echo "<font color=green>Correcto</font>\n"; 1294 echo "</td>"; 1295 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 1296 \n"; 1297 } 1298 1299 $datos = array("login" => "pater"); 1300 $datos["nombre"] = "Padre1"; 1301 $datos["apellido1"] = "Apellido1Padre1"; 1302 $datos["apellido2"] = "Apellido2Padre1"; 1303 $datos["direccion"] = "Colon";

Page 129: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 127

1304 $datos["poblacion"] = "Valencia"; 1305 $datos["cp"] = "46123"; 1306 $datos["password"] = "password"; 1307 $datos["telefono"] = "63456777"; 1308 $datos["dni"] = "3312"; 1309 $datos["email"] = "[email protected]"; 1310 $datos["tutorias"] = "null"; 1311 1312 $resultado = insertar_usuario($datos, PADRE); 1313 1314 echo "<tr><td style='width: 281px; text-align: left;'>"; 1315 echo "<font><b>Ejemplo Usuario-Padre(pater) </b></font><br>\n"; 1316 echo "</td>\n"; 1317 if(!$resultado["estado"]) 1318 { 1319 echo "<td style='width: 163px; text-align: center;'>"; 1320 echo "<font color=red>Error </font>\n"; 1321 echo "</td>"; 1322 echo "<td style='width: 255px; text-align: center;'>"; 1323 echo "" . $resultado["descripcion"]. "\n"; 1324 echo "</td>"; 1325 } 1326 else 1327 { 1328 echo "<td style='width: 163px; text-align: center;'>"; 1329 echo "<font color=green>Correcto</font>\n"; 1330 echo "</td>"; 1331 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 1332 \n"; 1333 } 1334 1335 $datos = array("login" => "viblasan2", "nombre"=>"viblasan", 1336 "apellido1"=>"Blasco", "apellido2"=>"Sánchez"); 1337 $datos["direccion"] = "Maria Pastor"; 1338 $datos["poblacion"] = "alboraya"; 1339 $datos["cp"] = "46120"; 1340 $datos["password"] = "password"; 1341 $datos["telefono"] = "699161799"; 1342 $datos["dni"] = "3312"; 1343 $datos["email"] = "[email protected]"; 1344 $datos["tutorias"] = "null"; 1345 1346 $resultado = insertar_usuario($datos, ADMINISTRADOR); 1347 1348 echo "<tr><td style='width: 281px; text-align: left;'>"; 1349 echo "<font><b>Ejemplo Usuario-ADMINISTRADOR(viblasan2) </b></font><br> 1350 \n"; 1351 echo "</td>\n"; 1352 if(!$resultado["estado"]) 1353 { 1354 echo "<td style='width: 163px; text-align: center;'>"; 1355 echo "<font color=red>Error </font>\n"; 1356 echo "</td>"; 1357 echo "<td style='width: 255px; text-align: center;'>"; 1358 echo "" . $resultado["descripcion"]. "\n"; 1359 echo "</td>"; 1360 } 1361 else 1362 { 1363 echo "<td style='width: 163px; text-align: center;'>"; 1364 echo "<font color=green>Correcto</font>\n"; 1365 echo "</td>"; 1366 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 1367 \n"; 1368 } 1369 1370 $datos = array("login" => "visangui2"); 1371 $datos["nombre"] = "Vicente"; 1372 $datos["apellido1"] = "Sancho"; 1373 $datos["apellido2"] = "Guijarro"; 1374 $datos["direccion"] = "Colon"; 1375 $datos["poblacion"] = "Valencia"; 1376 $datos["cp"] = "46456"; 1377 $datos["password"] = "password"; 1378 $datos["telefono"] = "654161799"; 1379 $datos["dni"] = "3312"; 1380 $datos["email"] = "[email protected]";

Page 130: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 128

1381 $datos["tutorias"] = "null"; 1382 1383 $resultado = insertar_usuario($datos, ADMINISTRADOR); 1384 1385 echo "<tr><td style='width: 281px; text-align: left;'>"; 1386 echo "<font><b>Ejemplo Usuario-ADMINISTRADOR(visangui2) </b></font><br> 1387 \n"; 1388 echo "</td>\n"; 1389 if(!$resultado["estado"]) 1390 { 1391 echo "<td style='width: 163px; text-align: center;'>"; 1392 echo "<font color=red>Error </font>\n"; 1393 echo "</td>"; 1394 echo "<td style='width: 255px; text-align: center;'>"; 1395 echo "" . $resultado["descripcion"]. "\n"; 1396 echo "</td>"; 1397 } 1398 else 1399 { 1400 echo "<td style='width: 163px; text-align: center;'>"; 1401 echo "<font color=green>Correcto</font>\n"; 1402 echo "</td>"; 1403 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 1404 \n"; 1405 } 1406 1407 $datos = array("login" => "visebo2"); 1408 $datos["nombre"] = "Alumno2"; 1409 $datos["apellido1"] = "Apellido1Alumno2"; 1410 $datos["apellido2"] = "Apellido2Alumno2"; 1411 $datos["direccion"] = "Colon"; 1412 $datos["poblacion"] = "Valencia"; 1413 $datos["cp"] = "46123"; 1414 $datos["password"] = "password"; 1415 $datos["telefono"] = "63456777"; 1416 $datos["dni"] = "3312"; 1417 $datos["email"] = "[email protected]"; 1418 $datos["tutorias"] = "null"; 1419 1420 $resultado = insertar_usuario($datos, ALUMNO); 1421 1422 echo "<tr><td style='width: 281px; text-align: left;'>"; 1423 echo "<font><b>Ejemplo Usuario-ALUMNO(visebo2) </b></font><br>\n"; 1424 echo "</td>\n"; 1425 if(!$resultado["estado"]) 1426 { 1427 echo "<td style='width: 163px; text-align: center;'>"; 1428 echo "<font color=red>Error </font>\n"; 1429 echo "</td>"; 1430 echo "<td style='width: 255px; text-align: center;'>"; 1431 echo "" . $resultado["descripcion"]. "\n"; 1432 echo "</td>"; 1433 } 1434 else 1435 { 1436 echo "<td style='width: 163px; text-align: center;'>"; 1437 echo "<font color=green>Correcto</font>\n"; 1438 echo "</td>"; 1439 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> 1440 \n"; 1441 } 1442 1443 $i = 0; 1444 1445 $prueba[$i]["sql"] = "INSERT INTO `equipacion` (`idequipacion`, 1446 `equipacion`, `estado`, `normas`) VALUES (1, 'Radio-CD', 'Disponible', 1447 '/webcole/normas/Radio_cd.pdf'), 1448 (2, 'Televisor', 'Disponible', '/webcole/normas/Televisor.pdf');"; 1449 $prueba[$i++]["descripcion"] = "Creando equipaciones: Radio-CD y 1450 Televisor"; 1451 1452 $prueba[$i]["sql"] = "INSERT INTO `instalacion` (`idinstalacion`, 1453 `instalacion`, `normas`) VALUES (1, 'Gimnasio', 1454 '/webcole/normas/Gimnasio.pdf'), 1455 (2, 'Pabellon Cubierto', '/webcole/normas/Pabellon_cubierto.pdf');"; 1456 $prueba[$i++]["descripcion"] = "Creando instalacion: gimnasio y 1457 pabellon cubierto";

Page 131: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 129

1458 1459 $prueba[$i]["sql"] = "INSERT INTO `evento` (`idevento`, `fecha`, 1460 `titulo`, `lugar`, `descripcion`) VALUES (1, '2000-10-09 17:06:08', 1461 'Festivo', 'Valencia', 'Día de la Comunitat Valenciana'), 1462 (2, '2007-09-10 18:12:19', 'Curso', 'Colegio', 'Inicio del curso 1463 académico 2007/2008'), 1464 (3, '2000-10-12 19:31:05', 'Festivo', 'España', 'Festividad Virgen del 1465 Pilar'), 1466 (4, '2000-03-19 19:33:47', 'Festivo', 'Valencia', 'San José'), 1467 (5, '2000-12-06 19:34:46', 'Festivo', 'España', 'Día de la 1468 Constitución'), 1469 (6, '2000-12-08 19:35:45', 'Festivo', 'España', 'Inmaculada Concepción') 1470 , 1471 (7, '2000-11-01 19:37:00', 'Festivo', 'España', 'Todos los santos'), 1472 (8, '2007-05-06 13:31:54', 'Noticia', 'UPV', 'Presentada la primera 1473 maqueta de la web.'), 1474 (9, '2007-06-11 13:32:53', 'Noticia', 'UPV', 'Implementado el 1475 calendario escolar.'), 1476 (10, '2000-05-01 13:49:41', 'Festivo', 'España', 'Día del trabajador'), 1477 (11, '2007-06-17 19:31:05', 'Noticia', 'Web', 'Reparado el problema de 1478 las tildes en la web.'), 1479 (12, '2007-07-01 13:04:09', 'Noticia', 'web', 'Posibilidad de reservar, 1480 anular reservas de instalaciones y equipamientos(solo para profesores)') 1481 ;"; 1482 $prueba[$i++]["descripcion"] = "Eventos del colegio"; 1483 1484 $prueba[$i]["sql"] = "INSERT INTO `usuario` (`login`, `nombre`, 1485 `apellido1`, `apellido2`, `direccion`, `poblacion`, `cp`, `contrasenya`, 1486 `telefono`) VALUES ('pepe', 'Pepe', 'Pérez', 'García', 'Mayor, 25', 1487 'Valencia', 46001, 'epep', '96300101'), 1488 ('pepito', 'Pepito', 'Martínez', 'Sánchez', 'Menor, 23', 'Valencia', 1489 46002, 'ep', '96123457'), 1490 ('juan', 'Juan', 'Gómez', 'Crespo', 'Calle principal', 'Valencia', 1491 46005, 'nauj', '96158020'), 1492 ('jose', 'José', 'Martínez', 'Sánchez', 'C/ Mestral, 23', 'Serra', 1493 46550, 'esoj', '961652020'), 1494 ('admin', 'Administrador', 'adm', 'adm', 'C/ Polideportivo, s/n', 1495 'Nàquera', 46119, 'nimda', '961680076'), 1496 ('miguelito', 'Miguelito', 'Peris', 'Cazorla', 'C/ Menorca, 12', 1497 'Náquera', 46119, 'mig', '961652335');"; 1498 $prueba[$i++]["descripcion"] = "Varios Usuarios"; 1499 1500 $prueba[$i]["sql"] = " INSERT INTO `administrador` (`login`, `dni`, 1501 `email`) VALUES ('admin', '00000000', '[email protected]'); "; 1502 $prueba[$i++]["descripcion"] = "Administrador "; 1503 1504 $prueba[$i]["sql"] = "INSERT INTO `alumno` (`login`, `curso`, `letra`) 1505 VALUES ('pepito', '1', 'A'), 1506 ('miguelito', '1', 'A');"; 1507 $prueba[$i++]["descripcion"] = " Alumno Miguelito y pepito "; 1508 1509 $prueba[$i]["sql"] = "INSERT INTO `equipodirectivo` (`login`, `dni`, 1510 `email`) VALUES ('pepe', '12345678', '[email protected]'), 1511 ('juan', '46502365', '[email protected]'), 1512 ('jose', '87654321', '[email protected]');"; 1513 $prueba[$i++]["descripcion"] = " equipodirectivo "; 1514 1515 $prueba[$i]["sql"] = " INSERT INTO `director` (`login`) VALUES ('pepe'); 1516 "; 1517 $prueba[$i++]["descripcion"] = " Director "; 1518 1519 $prueba[$i]["sql"] = "INSERT INTO `jefeestudio` (`login`) VALUES ( 1520 'juan'); "; 1521 $prueba[$i++]["descripcion"] = "Jefe Estudios "; 1522 1523 $prueba[$i]["sql"] = "INSERT INTO `profesor` (`login`, `dni`, `email`, 1524 `tutorias`) VALUES ('pepe', '12345678', '[email protected]', 'Martes 1525 10:30-13:00'), 1526 ('juan', '46502365', '[email protected]', 'Viernes 9:00-12:00'), 1527 ('jose', '87654321', '[email protected]', 'Jueves 9:30 - 13:30'); "; 1528 $prueba[$i++]["descripcion"] = " Profesores "; 1529 1530 $prueba[$i]["sql"] = "INSERT INTO `secretario` (`login`) VALUES ('jose') 1531 ; "; 1532 $prueba[$i++]["descripcion"] = "Secretario "; 1533 1534 $prueba[$i]["sql"] = "INSERT INTO `asignatura` (`codigoasignatura`,

Page 132: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 130

1535 `nombre`, `curso`, `horario`) VALUES (1, 'Matemáticas', '1', 'Lunes 9 1536 Martes 9 Jueves 10'), 1537 (2, 'Castellano', '1', 'Lunes 10 Miércoles 11 Viernes 9'), 1538 (3, 'Inglés', '1', 'Martes 11 Miércoles 15 Jueves 9 Viernes 10'), 1539 (4, 'Ética/Religión', '1', 'Lunes 11 Miércoles 16'), 1540 (5, 'Conocimiento del medio', '1', 'Lunes 15 Miércoles 10 Jueves 15'), 1541 (6, 'Ed. Plástica', '1', 'Lunes 16 Viernes 15'), 1542 (7, 'Ed. Física', '1', 'Martes 10 Viernes 16'), 1543 (8, 'Ed. Ciudadanía', '1', 'Martes 15 Martes 16'), 1544 (9, 'Valencià', '1', 'Miércoles 9 Jueves 11 Viernes 11'), 1545 (10, 'Tutoría', '1', 'Jueves 16');"; 1546 $prueba[$i++]["descripcion"] = "Asignaturas"; 1547 1548 $prueba[$i]["sql"] = "INSERT INTO `grupo` (`curso`, `letra`, `aula`, 1549 `delegado`, `tutor`) VALUES ('1', 'A', 'B1', 'pepito', 'juan');"; 1550 $prueba[$i++]["descripcion"] = "Grupo"; 1551 1552 $prueba[$i]["sql"] = "INSERT INTO `impartida` (`curso`, `letra`, 1553 `asignatura`) VALUES ('1', 'A', 1), 1554 ('1', 'A', 2), 1555 ('1', 'A', 3), 1556 ('1', 'A', 4), 1557 ('1', 'A', 5), 1558 ('1', 'A', 6), 1559 ('1', 'A', 7), 1560 ('1', 'A', 8), 1561 ('1', 'A', 9), 1562 ('1', 'A', 10);"; 1563 $prueba[$i++]["descripcion"] = "Clases impartidas"; 1564 1565 $prueba[$i]["sql"] = "INSERT INTO `webcole`.`imparte` (`asignatura`, 1566 `profesor`) VALUES (\'1\', \'viblasan\'), (\'2\', \'viblasan\');"; 1567 $prueba[$i++]["descripcion"] = "Imparte = Viblasan"; 1568 1569 $prueba[$i]["sql"] = "INSERT INTO `grupo` (`curso`, `letra`, `aula`, 1570 `delegado`, `tutor`) VALUES ('1', 'A', 'B1', 'pepito', 'juan');"; 1571 $prueba[$i++]["descripcion"] = "Grupo"; 1572 1573 ejecutar($prueba, $link); 1574 echo " </tbody></table><br><br>"; 1575 } 1576 1577 1578 //// 1579 // Funcion que permite ejecutar cualquier sentencia sql. 1580 // Los parametros que recibe son: 1581 // $datos: es una matriz con la forma array (array ( sql => 1582 descripcion )) 1583 // sql contiene la sentencia sql 1584 // descripcion muestra el texto explicativo que aparecera en la 1585 tabla 1586 // $link: el link con la base de datos 1587 //// 1588 function ejecutar ($datos, $link) 1589 { 1590 foreach ( $datos as $actual) 1591 { 1592 //echo "sql: " . $actual["sql"] . "<br>"; 1593 $result = mysql_query($actual["sql"]); 1594 echo "<tr><td style='width: 281px; text-align: left;'>"; 1595 echo '<font><b>' . $actual["descripcion"] . '</b></font><br>'; 1596 echo "</td>\n"; 1597 if(!$result) 1598 { 1599 echo "<td style='width: 163px; text-align: center;'>"; 1600 echo "<font color=red>Error </font>\n"; 1601 echo "</td>"; 1602 echo "<td style='width: 255px; text-align: center;'>"; 1603 echo "" . mysql_error() . "\n"; 1604 echo "</td>"; 1605 } 1606 else 1607 { 1608 echo "<td style='width: 163px; text-align: center;'>"; 1609 echo "<font color=green>Correcto</font>\n"; 1610 echo "</td>"; 1611 echo "<td style='width: 255px; text-align: center;'>&nbsp;</td><

Page 133: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 131

1612 /tr>\n"; 1613 } 1614 } 1615 } 1616 1617 //// 1618 // Funcion que permite ejecutar cualquier sentencia sql que devuelven 1619 resultados. 1620 // Los parametros que recibe son: 1621 // $datos: es una matriz con la forma array (array ( sql => 1622 descripcion )) 1623 // sql contiene la sentencia sql 1624 // descripcion muestra el texto explicativo que aparecera en la 1625 tabla 1626 // $link: el link con la base de datos 1627 //// 1628 function ejecutar_leer_resultados ($datos, $link) 1629 { 1630 foreach ( $datos as $actual) 1631 { 1632 //echo "sql: " . $actual["sql"] . "<br>"; 1633 $result = mysql_query($actual["sql"]); 1634 echo "<tr><td style='width: 281px; text-align: left;'>"; 1635 echo '<font><b>' . $actual["descripcion"] . '</b></font><br>'; 1636 echo "</td>\n"; 1637 if(!$result) 1638 { 1639 echo "<td style='width: 163px; text-align: center;'>"; 1640 echo "<font color=red>Error </font>\n"; 1641 echo "</td>"; 1642 echo "<td style='width: 255px; text-align: center;'>"; 1643 echo "" . mysql_error() . "\n"; 1644 echo "</td>"; 1645 } 1646 else 1647 { 1648 echo "<td style='width: 163px; text-align: center;'>"; 1649 echo "<font color=green>Correcto</font>\n"; 1650 echo "</td>"; 1651 echo "<td style='width: 255px; text-align: center;'>"; 1652 echo "<table><tr><td>Resultados</td></tr>"; 1653 1654 while ($row = mysql_fetch_row($result)) 1655 { 1656 echo "<tr><td>"; 1657 echo $row[0]; 1658 echo "</td></tr>"; 1659 } 1660 echo "</table>"; 1661 echo"</td></tr>\n"; 1662 } 1663 } 1664 } 1665 1666 1667 function crear_perfiles($link) 1668 { 1669 echo "<html><head>"; 1670 echo "<title>Creacion de perfiles para la base de datos Webcole</title> 1671 </head>"; 1672 echo "<table style='text-align: left; width: 100%;' border='1' 1673 cellpadding='2' cellspacing='2'>"; 1674 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 1675 weight: bold;'><big>Descripcion</big></td>"; 1676 echo "<td style='text-align: center; width: 163px;'><big><span 1677 style='font-weight: bold;'>Estado</span></big></td>"; 1678 echo "<td style='text-align: center; width: 255px;'><big><span 1679 style='font-weight: bold;'>Error</span></big></td>"; 1680 echo "</tr>"; 1681 //// 1682 // Creando usuarios genericos 1683 // Los administradores utilizaran root para acceder a la base de datos ( 1684 por el momento al menos) 1685 // Todos los usuarios de cada grupo accederan con el mismo perfil, por 1686 ejemplo todos los profesores 1687 // accederan a la base de datos con el perfil de profesores y con los 1688 privilegios que eso supone

Page 134: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 132

1689 /// 1690 1691 $i = 0; 1692 1693 $prueba[$i]["sql"] = 'CREATE USER \'profesor\'@\'localhost\' IDENTIFIED 1694 BY \'profesor\';'; 1695 $prueba[$i++]["descripcion"] = "Creando el perfil profesor"; 1696 1697 $prueba[$i]["sql"] = 'CREATE USER \'alumno\'@\'localhost\' IDENTIFIED 1698 BY \'alumno\';'; 1699 $prueba[$i++]["descripcion"] = "Creando el perfil alumno"; 1700 1701 $prueba[$i]["sql"] = 'CREATE USER \'equipodirectivo\'@\'localhost\' 1702 IDENTIFIED BY \'equipodirectivo\';'; 1703 $prueba[$i++]["descripcion"] = "Creando el perfil Equipo Directivo"; 1704 1705 $prueba[$i]["sql"] = 'CREATE USER \'padre\'@\'localhost\' IDENTIFIED BY 1706 \'padre\';'; 1707 $prueba[$i++]["descripcion"] = "Creando el perfil padre"; 1708 1709 //// 1710 // Permisos generales 1711 /// 1712 1713 $prueba[$i]["sql"] = 'GRANT SELECT ON `webcole`.* TO 1714 \'profesor\'@\'localhost\' IDENTIFIED BY \'profesor\'WITH 1715 MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 1716 0 MAX_USER_CONNECTIONS 0;'; 1717 $prueba[$i++]["descripcion"] = "Profesor: Permisos generales"; 1718 1719 $prueba[$i]["sql"] = 'GRANT SELECT ON `webcole`.* TO 1720 \'padre\'@\'localhost\' IDENTIFIED BY \'padre\'WITH 1721 MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 1722 0 MAX_USER_CONNECTIONS 0;'; 1723 $prueba[$i++]["descripcion"] = "Padre: Permisos generales"; 1724 1725 $prueba[$i]["sql"] = 'GRANT SELECT ON `webcole`.* TO 1726 \'alumno\'@\'localhost\' IDENTIFIED BY \'alumno\'WITH 1727 MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 1728 0 MAX_USER_CONNECTIONS 0;'; 1729 $prueba[$i++]["descripcion"] = "Alumno: Permisos generales"; 1730 1731 $prueba[$i]["sql"] = 'GRANT SELECT ON `webcole`.* TO 1732 \'equipodirectivo\'@\'localhost\' IDENTIFIED BY \'equipodirectivo\'WITH 1733 MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 1734 0 MAX_USER_CONNECTIONS 0;'; 1735 $prueba[$i++]["descripcion"] = "Equipo Directivo: Permisos generales"; 1736 1737 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1738 `anuncio` TO \'profesor\'@\'localhost\';'; 1739 $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla anuncio "; 1740 1741 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1742 `anuncio` TO \'padre\'@\'localhost\';'; 1743 $prueba[$i++]["descripcion"] = "Padre: Permisos tabla anuncio "; 1744 1745 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1746 `anuncio` TO \'alumno\'@\'localhost\';'; 1747 $prueba[$i++]["descripcion"] = "Alumno: Permisos tabla anuncio "; 1748 1749 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1750 `anuncio` TO \'equipodirectivo\'@\'localhost\';'; 1751 $prueba[$i++]["descripcion"] = "Equipo Directivo: Permisos tabla 1752 anuncio "; 1753 1754 //// 1755 // Permisos especificos para cada perfil en cada tabla 1756 //// 1757 1758 //// 1759 // Profesor 1760 //// 1761 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1762 `faltaasistencia` TO \'profesor\'@\'localhost\';'; 1763 $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla 1764 faltaasistencia "; 1765

Page 135: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 133

1766 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1767 `nota` TO \'profesor\'@\'localhost\';'; 1768 $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla nota "; 1769 1770 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1771 `res_equi` TO \'profesor\'@\'localhost\';'; 1772 $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla res_equi "; 1773 1774 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1775 `res_ins` TO \'profesor\'@\'localhost\';'; 1776 $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla res_ins "; 1777 1778 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1779 `anuncio` TO \'profesor\'@\'localhost\';'; 1780 $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla anuncio "; 1781 1782 // Un profesor no puede tocar los grupos creados, excepto el campo 1783 // delegado, que puede variar durante el curso. Ademas se deberia 1784 // de comprobar que el profesor que lo haga sea el tutor del grupo 1785 $prueba[$i]["sql"] = 'GRANT UPDATE (`delegado`) ON `webcole`.`grupo` TO 1786 \'profesor\'@\'localhost\';'; 1787 $prueba[$i++]["descripcion"] = "Profesor: Permisos para cambiar el 1788 delegado del grupo "; 1789 1790 1791 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1792 `res_ins` TO \'alumno\'@\'localhost\';'; 1793 $prueba[$i++]["descripcion"] = "Alumno: Permisos tabla res_ins "; 1794 1795 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1796 `res_ins` TO \'padre\'@\'localhost\';'; 1797 $prueba[$i++]["descripcion"] = "Padre: Permisos tabla res_ins "; 1798 1799 ejecutar ($prueba, $link); 1800 1801 echo " </tbody></table><br><br>"; 1802 } 1803 1804 function borrar_perfiles($link) 1805 { 1806 echo "<html><head>"; 1807 echo "<title>Borrado de perfiles para la base de datos Webcole</title>< 1808 /head>"; 1809 echo "<table style='text-align: left; width: 100%;' border='1' 1810 cellpadding='2' cellspacing='2'>"; 1811 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 1812 weight: bold;'><big>Descripcion</big></td>"; 1813 echo "<td style='text-align: center; width: 163px;'><big><span 1814 style='font-weight: bold;'>Estado</span></big></td>"; 1815 echo "<td style='text-align: center; width: 255px;'><big><span 1816 style='font-weight: bold;'>Error</span></big></td>"; 1817 echo "</tr>"; 1818 1819 $i = 0; 1820 1821 $prueba[$i]["sql"] = 'DROP USER \'alumno\'@\'localhost\';'; 1822 $prueba[$i++]["descripcion"] = "Borrando el perfil alumno"; 1823 1824 $prueba[$i]["sql"] = 'DROP USER \'profesor\'@\'localhost\';'; 1825 $prueba[$i++]["descripcion"] = "Borrando el perfil profesor"; 1826 1827 $prueba[$i]["sql"] = 'DROP USER \'equipodirectivo\'@\'localhost\';'; 1828 $prueba[$i++]["descripcion"] = "Borrando el perfil equipodirectivo"; 1829 1830 $prueba[$i]["sql"] = 'DROP USER \'padre\'@\'localhost\';'; 1831 $prueba[$i++]["descripcion"] = "Borrando el perfil padre"; 1832 1833 ejecutar ($prueba, $link); 1834 1835 echo " </tbody></table><br><br>"; 1836 } 1837 1838 function pruebas ($link) 1839 { 1840 echo "<html><head>"; 1841 echo "<title>PRUEBAS</title></head>"; 1842 echo "<table style='text-align: left; width: 100%;' border='1'

Page 136: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 134

1843 cellpadding='2' cellspacing='2'>"; 1844 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 1845 weight: bold;'><big>Descripcion</big></td>"; 1846 echo "<td style='text-align: center; width: 163px;'><big><span 1847 style='font-weight: bold;'>Estado</span></big></td>"; 1848 echo "<td style='text-align: center; width: 255px;'><big><span 1849 style='font-weight: bold;'>Error</span></big></td>"; 1850 echo "</tr>"; 1851 1852 /* 1853 $sql = 'CREATE PROCEDURE borrar_padre (padre VARCHAR(20), OUT mensaje 1854 VARCHAR(100) ) 1855 BEGIN 1856 DECLARE dep INT; 1857 set mensaje = "inicio"; 1858 select count(*) into dep from responsable where padre = 1859 padre; 1860 IF dep = 0 THEN 1861 delete from padre where login = padre; 1862 set mensaje = "Padre eliminado"; 1863 ELSE 1864 set mensaje = "No se pudo borrar"; 1865 END IF; 1866 END;'; 1867 */ 1868 $sql = "CREATE PROCEDURE borrar_padre (IN padre VARCHAR(20), OUT 1869 mensaje VARCHAR(100) ) 1870 BEGIN 1871 DECLARE dep INT; 1872 DECLARE m VARCHAR(20); 1873 set m := 'alter'; 1874 select count(*) into dep from responsable where padre = 1875 padre; 1876 IF dep = 0 THEN 1877 set mensaje := 'antes'; 1878 1879 delete from padre where login = @padre; 1880 delete from usuario where login = @padre; 1881 1882 1883 1884 set mensaje := concat('Padre borrado: ', @padre); 1885 ELSE 1886 set mensaje := concat('No se puedo borrar al padre', 1887 @padre); 1888 END IF; 1889 END;"; 1890 1891 $sql2 = "CREATE PROCEDURE prueba (inout mensaje INT ) 1892 BEGIN 1893 DECLARE dep INT; 1894 select count(*) into mensaje from usuario; 1895 END;"; 1896 $i = 0; 1897 $prueba[$i]["sql"] = "drop procedure borrar_padre;"; 1898 $prueba[$i++]["descripcion"] = "Borrando procedimiento: borrar_padre"; 1899 1900 $prueba[$i]["sql"] = "drop procedure prueba;"; 1901 $prueba[$i++]["descripcion"] = "Borrando procedimiento: prueba"; 1902 1903 $prueba[$i]["sql"] = $sql; 1904 $prueba[$i++]["descripcion"] = "Creando un procedimiento: borrar_padre"; 1905 1906 $prueba[$i]["sql"] = $sql2; 1907 $prueba[$i++]["descripcion"] = "Creando un procedimiento: prueba"; 1908 1909 $prueba[$i]["sql"] = "set @padre='pater';"; 1910 $prueba[$i++]["descripcion"] = "creando @padre"; 1911 1912 $prueba[$i]["sql"] = "set @mensaje='a';"; 1913 $prueba[$i++]["descripcion"] = "creando @mensaje"; 1914 1915 $prueba[$i]["sql"] = "call borrar_padre(@pater, @mensaje);"; 1916 $prueba[$i++]["descripcion"] = "Llamando al procedimiento: 1917 borrar_padre"; 1918 1919 ejecutar ($prueba, $link);

Page 137: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 135

1920 1921 1922 1923 $j = 0; 1924 $prueba3[$j]["sql"] = "select @mensaje;"; 1925 $prueba3[$j++]["descripcion"] = "Leyendo resultado: borrar_padre"; 1926 1927 ejecutar_leer_resultados($prueba3, $link); 1928 $i=0; 1929 $prueba4[$i]["sql"] = "set @mensaje=1;"; 1930 $prueba4[$i++]["descripcion"] = "creando @mensaje"; 1931 $prueba4[$i]["sql"] = "call prueba(@mensaje);"; 1932 $prueba4[$i++]["descripcion"] = "Llamando al procedimiento: prueba"; 1933 1934 ejecutar ($prueba4, $link); 1935 $j = 0; 1936 1937 $prueba5[$j]["sql"] = "select @mensaje;"; 1938 $prueba5[$j++]["descripcion"] = "Leyendo resultado: prueba"; 1939 ejecutar_leer_resultados($prueba5, $link); 1940 1941 echo " </tbody></table><br><br>"; 1942 } 1943 1944 function leeropciones () 1945 { 1946 $opcion = $_GET['opcion']; 1947 if (isset($opcion)) 1948 { 1949 $link = conexion (); 1950 switch ($opcion) 1951 { 1952 case '1': 1953 crear_bd($link); 1954 fin_html (); 1955 cerrar_db ($link); 1956 exit; 1957 case '2': 1958 crear_bd($link); 1959 cambiar_a_bd($link); 1960 crear_tablas (); 1961 cerrar_db ($link); 1962 fin_html (); 1963 exit; 1964 case '3': 1965 cambiar_a_bd($link); 1966 borrar_tablas (); 1967 cerrar_db ($link); 1968 fin_html (); 1969 exit; 1970 case '4': 1971 borrar_bd($link); 1972 cerrar_db ($link); 1973 fin_html (); 1974 exit; 1975 case '5': 1976 cambiar_a_bd($link); 1977 ejemplos($link); 1978 cerrar_db ($link); 1979 fin_html (); 1980 exit; 1981 case '6': 1982 crear_perfiles($link); 1983 cerrar_db ($link); 1984 fin_html(); 1985 exit; 1986 1987 case '7': 1988 borrar_perfiles($link); 1989 cerrar_db ($link); 1990 fin_html(); 1991 exit; 1992 1993 case '99': 1994 cambiar_a_bd($link); 1995 pruebas($link); 1996 cerrar_db ($link);

Page 138: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 136

1997 fin_html(); 1998 exit; 1999 2000 default: 2001 echo "<div style='text-align: center; color: rgb(255, 0, 0); 2002 '> "; 2003 echo "<big><big><big>Opci&oacute;n desconociada.</big></big> 2004 </big><br> "; 2005 echo "</div> "; 2006 echo "<div style='text-align: center;'> "; 2007 echo "<big><big><big>Vuelve al inicio pulsando <a 2008 href='setup.php'>aqu&iacute;</a></big></big></big><br> "; 2009 echo "</div> "; 2010 echo "</body></html>"; 2011 exit; 2012 } 2013 } 2014 } 2015 2016 leeropciones (); 2017 inicio_html(); 2018 echo "</body></html>"; 2019 2020 ?>

Page 139: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 137

Interfaz_db.php 1 <?php 2 3 define('PROFESOR', 1); 4 define('ALUMNO', 2); 5 define('ADMINISTRADOR', 3); 6 define('PADRE', 4); 7 define('DIRECTOR', 5); 8 define('JEFEESTUDIO', 6); 9 define('SECRETARIO', 7); 10 11 require_once "conexion_i.php"; 12 13 function insertar_usuario($datos, $tipo) 14 { 15 $error = false; 16 //indicara si el usuario a registrar es uno de los tres tipo de equipo 17 directivo 18 //(porque hay que hacer una insercion mas. 19 $eq = false; 20 $descripcion = ""; 21 $faltandatos = ""; 22 23 $link = conexion_i(); 24 cambiar_a_bd_i($link); 25 26 //datos generales del usuario 27 $login = $datos['login']; 28 if (empty($login)){ $error = true; $faltandatos .= "Falta Login <br>";} 29 30 $nombre = $datos['nombre']; 31 if (empty($nombre)){ $error = true; $faltandatos .= "Falta Nombre <br>"; 32 } 33 34 $apellido1 = $datos['apellido1']; 35 if (empty($apellido1)){ $error = true; $faltandatos .= "Falta Apellido1 36 <br>";} 37 38 $apellido2 = $datos['apellido2']; 39 if (empty($apellido2)){ $apellido2 = 'null'; } 40 41 $direccion = $datos['direccion']; 42 if (empty($direccion)){ $error = true; $faltandatos .= "Falta Direccion 43 <br>";} 44 45 $poblacion = $datos['poblacion']; 46 if (empty($poblacion)){ $error = true; $faltandatos .= "Falta Poblacion 47 <br>";} 48 49 $cp = $datos['cp']; 50 if (empty($cp)){ $error = true; $faltandatos .= "Falta Codigo Postal < 51 br>";} 52 53 $password = $datos['password']; 54 if (empty($password)){ $error = true; $faltandatos .= "Falta Password < 55 br>";} 56 57 $telefono = $datos['telefono']; 58 if (empty($telefono)){ $telefono = 'null'; } 59 60 $sql_usuario = "INSERT INTO `webcole`.`usuario` 61 (`login`, `nombre`, `apellido1`, `apellido2`, 62 `direccion`, `poblacion`, `cp`, `contrasenya`, 63 `telefono`) 64 VALUES 65 ('" . $login ."', '" . $nombre . "', '" . $apellido1 . 66 "', 67 '" . $apellido2 . "', '" . $direccion . "', 68 '" . $poblacion . "', '" . $cp . "', 69 '" . $password . "', '" . $telefono . "');"; 70 71 switch ($tipo) 72 { 73 case PROFESOR: //tipo profesor

Page 140: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 138

74 $dni = $datos['dni']; 75 if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> 76 ";} 77 78 $email = $datos['email']; 79 if (empty($email)){ $email = 'null'; } 80 81 $tutorias = $datos['tutorias']; 82 if (empty($tutorias)){ $tutorias = 'null'; } 83 84 $sql_especifico = "INSERT INTO `webcole`.`profesor` 85 (`login`, `dni`, `email`, `tutorias`) 86 VALUES 87 ('" . $login . "', '" . $dni . "', 88 '" . $email . "', '" . $tutorias ."');"; 89 break; 90 91 case ALUMNO: //alumno 92 $sql_especifico = "INSERT INTO `webcole`.`alumno` 93 (`login`) 94 VALUES 95 ('" . $login . "');"; 96 break; 97 98 case ADMINISTRADOR: 99 $dni = $datos['dni']; 100 if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> 101 ";} 102 103 $email = $datos['email']; 104 if (empty($email)){ $email = 'null'; } 105 106 $sql_especifico = "INSERT INTO `webcole`.`administrador` 107 (`login`, `dni`, `email`) 108 VALUES 109 ('" . $login . "', '" . $dni . "', 110 '" . $email . "');"; 111 break; 112 113 case PADRE: 114 $dni = $datos['dni']; 115 if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> 116 ";} 117 118 $email = $datos['email']; 119 if (empty($email)){ $email = 'null'; } 120 121 $sql_especifico = "INSERT INTO `webcole`.`padre` 122 (`login`, `dni`, `email`) 123 VALUES 124 ('" . $login . "', '" . $dni . "', 125 '" . $email . "');"; 126 break; 127 128 case DIRECTOR: 129 $dni = $datos['dni']; 130 if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> 131 ";} 132 133 $email = $datos['email']; 134 if (empty($email)){ $email = 'null'; } 135 136 $sql_especifico = "INSERT INTO `webcole`.`equipodirectivo` 137 (`login`, `dni`, `email`) 138 VALUES 139 ('" . $login . "', '" . $dni . "', 140 '" . $email . "');"; 141 $sql_ed = "INSERT INTO `webcole`.`director` (`login`) VALUES ( 142 '" . $login . "');"; 143 $eq = true; 144 145 break; 146 147 case JEFEESTUDIO: 148 $dni = $datos['dni']; 149 if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> 150 ";}

Page 141: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 139

151 152 $email = $datos['email']; 153 if (empty($email)){ $email = 'null'; } 154 155 $sql_especifico = "INSERT INTO `webcole`.`equipodirectivo` 156 (`login`, `dni`, `email`) 157 VALUES 158 ('" . $login . "', '" . $dni . "', 159 '" . $email . "');"; 160 $sql_ed = "INSERT INTO `webcole`.`jefeestudio` (`login`) 161 VALUES ('" . $login . "');"; 162 $eq = true; 163 164 break; 165 166 case SECRETARIO: 167 $dni = $datos['dni']; 168 if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> 169 ";} 170 171 $email = $datos['email']; 172 if (empty($email)){ $email = 'null'; } 173 174 $sql_especifico = "INSERT INTO `webcole`.`equipodirectivo` 175 (`login`, `dni`, `email`) 176 VALUES 177 ('" . $login . "', '" . $dni . "', 178 '" . $email . "');"; 179 $sql_ed = "INSERT INTO `webcole`.`secretario` (`login`) 180 VALUES ('" . $login . "');"; 181 $eq = true; 182 183 break; 184 185 default: 186 break; 187 }//fin switch 188 189 //Si ha ocurrido algun error no continuamos 190 //por el momento solo false si ha ocurrido algun error en 191 //en los datos mismos. 192 if ( $error == true) 193 { 194 $descripcion = "Faltan datos importantes: <br>" . $faltandatos; 195 $resultado = array("estado"=>!$error, "descripcion"=>$descripcion); 196 return $resultado; 197 } 198 199 //empieza la transacci� de las inserciones 200 $result=mysqli_query($link, "SET AUTOCOMMIT=0;"); 201 $result=mysqli_query($link, "BEGIN;"); 202 $result = mysqli_query($link, $sql_usuario); 203 if (!$result) 204 { 205 $descripcion .= mysqli_error($link) . "<br>"; 206 } 207 208 $result = mysqli_query($link, $sql_especifico); 209 if (!$result) 210 { 211 $error = true; 212 $descripcion .= mysqli_error($link) . " <br>"; 213 } 214 215 if ($eq == true) //este usuario pertenece al equipo directivo 216 { 217 $result = mysqli_query($link, $sql_ed); 218 if (!$result) 219 { 220 $error = true; 221 $descripcion .= mysqli_error($link) . " <br>"; 222 } 223 } 224 225 226 //si no ha ocurrido ningun error finalizamos la transaccion 227 if ($error == false)

Page 142: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 140

228 { 229 mysqli_query($link,"COMMIT;"); 230 mysqli_commit($link); 231 } 232 //si se ha producido algun error hacemos un rollback, con lo que 233 //la base de datos deber� de quedar sin rastros de las operaciones 234 //que hemos intentado hacer. 235 else 236 { 237 $result = mysqli_query($link,"ROLLBACK;"); 238 } 239 $result=mysqli_query($link, "SET AUTOCOMMIT=1;"); 240 mysqli_autocommit($link, TRUE); 241 mysqli_close($link); 242 243 $resultado = array("estado"=>!$error, "descripcion"=>$descripcion); 244 return $resultado; 245 246 } 247 248 249 ?>

Page 143: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 141

Connexion_i.php 1 <?php 2 function conexion_i () 3 { 4 $user = "cole1"; 5 $maquina = "localhost"; 6 $pass = "webcole"; 7 8 9 $link_i = mysqli_connect($maquina, $user, $pass); 10 if(!$link_i) 11 { 12 echo "Error en la conexion con la bd <br>\n"; 13 die; 14 } 15 16 return $link_i; 17 } 18 19 function conexion_i_login ($user, $maquina,$pass) 20 { 21 $link_i = mysqli_connect($maquina, $user, $pass); 22 if(!$link_i) 23 { 24 echo "Error en la conexion con la bd <br>\n"; 25 die; 26 } 27 28 return $link_i; 29 } 30 31 32 function cambiar_a_bd_i($link_i) 33 { 34 $db = mysqli_select_db($link_i, 'webcole'); 35 if(!$db) 36 { 37 echo "No se ha podido cambiar a la base de datos WebCole<br>"; 38 die; 39 } 40 41 return $db; 42 } 43 44 function cerrar_db_i ($link) 45 { 46 mysqli_close($link); 47 } 48 ?>

Page 144: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 142

Conexión.php 1 <?php 2 3 function conexion () 4 { 5 $user = "cole1"; 6 $maquina = "localhost"; 7 $pass = "webcole"; 8 9 10 $link = mysql_connect($maquina, $user, $pass); 11 if(!$link) 12 { 13 echo "Error en la conexion con la bd <br>\n"; 14 die; 15 } 16 17 return $link; 18 } 19 20 21 function conexion_login ($user, $maquina, $pass ) 22 { 23 $link = mysql_connect($maquina, $user, $pass); 24 if(!$link) 25 { 26 echo "Error en la conexion con la bd <br>\n"; 27 die; 28 } 29 30 return $link; 31 } 32 33 function cambiar_a_bd($link){ 34 $db = mysql_select_db('webcole', $link); 35 if(!$db) 36 { 37 echo "No se ha podido cambiar a la base de datos WebCole<br>"; 38 die; 39 } 40 41 return $db; 42 } 43 function cambiar_a_bd_concreta($link, $nombre){ 44 $db = mysql_select_db($nombre, $link); 45 if(!$db) 46 { 47 echo "No se ha podido cambiar a la base de datos " . $nombre . "<br> 48 "; 49 die; 50 } 51 52 return $db; 53 } 54 function cerrar_db ($link) 55 { 56 mysql_close($link); 57 } 58 ?>

Page 145: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 143

G. Código PHP

Index.php

1 <?php 2 require_once ("Anonimo_inc.php"); 3 ?> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 5 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 6 <html xmlns="http://www.w3.org/1999/xhtml"> 7 8 <head> 9 10 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 11 12 <title>CP Emilio Lluch</title> 13 14 <link href="css/general.css" rel="stylesheet" type="text/css" /> 15 16 <script type="text/javascript" src="./js/fecha.js"> </script> 17 18 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 19 20 21 </head> 22 23 <body onload="javascript:displayTime();"> 24 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 25 <tr> 26 <td class="logo">&nbsp;</td> 27 <td colspan="2" class="titulo">&nbsp;</td> 28 </tr> 29 <tr> 30 <td class="fecha">&nbsp;</td> 31 <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> 32 </tr> 33 <tr> 34 <td class="menu"> 35 <ul> 36 <li><a href="#">Inicio</a></li> 37 <li><a href="historia.php">Historia</a></li> 38 <li><a href="equipoDirectivo.php">Equipo directivo</a></li> 39 <li><a href="reglamento.php">Reglamento</a></li> 40 <li><a href="calendario.php">Calendario escolar</a></li> 41 <li><a href="localizacion.php">Localizaci&oacute;n</a></li> 42 <li><a href="contactar.php">Contactar</a></li> 43 <li><a href="enlaces.php">Enlaces</a></li> 44 </ul> </td> 45 <td class="general"><p>Bienvenido al sitio web del Colegio P&uacute; 46 blico Emilio Lluch de N&agrave;quera (Valencia). </p> 47 <p>C. P. EMILIO LLUCH </p> 48 <p>Calle Polideportivo, s/n. </p> 49 <p>46119 - N&agrave;quera (Valencia) </p> 50 <p>Tel&eacute;fono 96 168 00 76<br /> 51 e-mail: <a href="mailto:[email protected]"> 52 [email protected]</a></p> 53 </td> 54 <td class="foto">&nbsp;</td> 55 </tr> 56 <tr> 57 <td><p>Autenticarse</p> 58 <form id="form1" method="post" action="analizadorlogin.php"> 59 <p> 60 <label>Login 61 <input type="text" name="log" /> 62 </label> 63 <br/> 64 <label>Password 65 <input type="password" name="pass" /> 66 </label> 67 <label> 68 <input type="submit" value="Identificarse" name="b" />

Page 146: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 144

69 </label> 70 </p> 71 </form> 72 <p> 73 <?php 74 if($_COOKIE['login'] == "Error") 75 { 76 echo '<span class="fechaNoticia">Autenticación errónea</span>'; 77 } 78 ?> 79 </p></td> 80 <td colspan="2" class="noticias"> 81 <h3>Noticias</h3> 82 <p> 83 <?php 84 noticias(); 85 ?> 86 </p> 87 </tr> 88 </table> 89 </body> 90 </html>

Page 147: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 145

Historia.php 1 <?php 2 require_once ("Anonimo_inc.php"); 3 ?> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 5 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 6 <html xmlns="http://www.w3.org/1999/xhtml"> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 9 <title>CP Emilio Lluch</title> 10 <link href="css/general.css" rel="stylesheet" type="text/css" /> 11 12 <script type="text/javascript" src="./js/fecha.js"> </script> 13 14 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 15 </head> 16 17 <body onload="javascript:displayTime();"> 18 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 19 <tr> 20 <td class="logo">&nbsp;</td> 21 <td colspan="2" class="titulo">&nbsp;</td> 22 </tr> 23 <tr> 24 <td class="fecha">&nbsp;</td> 25 <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> 26 </tr> 27 <tr> 28 <td class="menu"> 29 <ul> 30 <li><a href="index.php">Inicio</a></li> 31 <li><a href="#">Historia</a></li> 32 <li><a href="equipoDirectivo.php">Equipo directivo</a></li> 33 <li><a href="reglamento.php">Reglamento</a></li> 34 <li><a href="calendario.php">Calendario escolar</a></li> 35 <li><a href="localizacion.php">Localizaci&oacute;n</a></li> 36 <li><a href="contactar.php">Contactar</a></li> 37 <li><a href="enlaces.php">Enlaces</a></li> 38 </ul> </td> 39 <td class="general"><h1>Historia del centro</h1> 40 <p>El centro fue inaugurado el a&ntilde;o XXXX.</p> 41 <p>El a&ntilde;o xxxx se hizo una ampliaci&oacute;n del gimnasio para 42 mejorar las instalaciones con servicios de los cuales antes se 43 carec&iacute;a, como duchas o enfermer&iacute;a. </p></td> 44 <td class="general">&nbsp;</td> 45 </tr> 46 <tr> 47 <td><p>Autenticarse</p> 48 <form id="form1" method="post" action="analizadorlogin.php"> 49 <p> 50 <label>Login 51 <input type="text" name="log" /> 52 </label> 53 <label>Password 54 <input type="password" name="pass" /> 55 </label> 56 <label> 57 <input type="submit" value="Identificarse" name="b" /> 58 </label> 59 </p> 60 </form> <p>&nbsp;</p></td> 61 <td colspan="2" class="noticias"> 62 <h3>Noticias</h3> 63 <?php 64 noticias(); 65 ?></td> 66 </tr> 67 </table> 68 </body> 69 </html>

Page 148: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 146

Equipodirectivo.php 1 <?php 2 require_once ("Anonimo_inc.php"); 3 ?> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 5 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 6 <html xmlns="http://www.w3.org/1999/xhtml"> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 9 <title>CP Emilio Lluch</title> 10 <link href="css/general.css" rel="stylesheet" type="text/css" /> 11 12 <script type="text/javascript" src="./js/fecha.js"> </script> 13 14 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 15 </head> 16 17 <body onload="javascript:displayTime();"> 18 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 19 <tr> 20 <td class="logo">&nbsp;</td> 21 <td colspan="2" class="titulo">&nbsp;</td> 22 </tr> 23 <tr> 24 <td class="fecha">&nbsp;</td> 25 <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> 26 </tr> 27 <tr> 28 <td class="menu"> 29 <ul> 30 <li><a href="index.php">Inicio</a></li> 31 <li><a href="historia.php">Historia</a></li> 32 <li><a href="#">Equipo directivo</a></li> 33 <li><a href="reglamento.php">Reglamento</a></li> 34 <li><a href="calendario.php">Calendario escolar</a></li> 35 <li><a href="localizacion.php">Localizaci&oacute;n</a></li> 36 <li><a href="contactar.php">Contactar</a></li> 37 <li><a href="enlaces.php">Enlaces</a></li> 38 </ul> </td> 39 <td class="general" style="text-align: left ;"><p style="font-weight: 40 bold; font-size:30px">Equipo directivo</p> 41 42 <?php 43 equipo_directivo(); 44 ?> 45 46 <p>&nbsp; </p></td> 47 <td class="general">&nbsp;</td> 48 </tr> 49 <tr> 50 <td><p>Autenticarse</p> 51 <form id="form1" method="post" action="analizadorlogin.php"> 52 <p> 53 <label>Login 54 <input type="text" name="log" /> 55 </label> 56 <label>Password 57 <input type="password" name="pass" /> 58 </label> 59 <label> 60 <input type="submit" value="Identificarse" name="b" /> 61 </label> 62 </p> 63 </form> <p>&nbsp;</p></td> 64 <td colspan="2" class="noticias"> 65 <h3>Noticias</h3> 66 <?php 67 noticias(); 68 ?> 69 </td> 70 </tr> 71 </table> 72 </body> 73 </html>

Page 149: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 147

Reglamento.php 1 <?php 2 require_once ("Anonimo_inc.php"); 3 ?> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 5 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 6 <html xmlns="http://www.w3.org/1999/xhtml"> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 9 <title>CP Emilio Lluch</title> 10 <link href="css/general.css" rel="stylesheet" type="text/css" /> 11 12 <script type="text/javascript" src="./js/fecha.js"> </script> 13 14 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 15 </head> 16 17 <body onload="javascript:displayTime();"> 18 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 19 <tr> 20 <td class="logo">&nbsp;</td> 21 <td colspan="2" class="titulo">&nbsp;</td> 22 </tr> 23 <tr> 24 <td class="fecha">&nbsp;</td> 25 <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> 26 </tr> 27 <tr> 28 <td class="menu"> 29 <ul> 30 <li><a href="index.php">Inicio</a></li> 31 <li><a href="historia.php">Historia</a></li> 32 <li><a href="equipoDirectivo.php">Equipo directivo</a></li> 33 <li><a href="#">Reglamento</a></li> 34 <li><a href="calendario.php">Calendario escolar</a></li> 35 <li><a href="localizacion.php">Localizaci&oacute;n</a></li> 36 <li><a href="contactar.php">Contactar</a></li> 37 <li><a href="enlaces.php">Enlaces</a></li> 38 </ul> </td> 39 <td class="general"><p style="font-weight: bold; font-size:30px"> 40 Reglamento de r&eacute;gimen interno</p> 41 <p>Para descargar en formato PDF, pulse <a href="docs/rri.pdf"> 42 aqu&iacute;. <img src="img/word_logo.jpg" alt="Word" /></a></p> 43 <p>Para descargar en formato DOC, pulse <a href="docs/rri.doc"> 44 aqu&iacute;. <img src="img/pdf_logo.gif" alt="PDF" /></a></p> 45 46 </td> 47 <td class="imagenReglamento">&nbsp;</td> 48 </tr> 49 <tr> 50 <td><p>Autenticarse</p> 51 <form id="form1" method="post" action="analizadorlogin.php"> 52 <p> 53 <label>Login 54 <input type="text" name="log" /> 55 </label> 56 <label>Password 57 <input type="password" name="pass" /> 58 </label> 59 <label> 60 <input type="submit" value="Identificarse" name="b" /> 61 </label> 62 </p> 63 </form> <p>&nbsp;</p></td> 64 <td colspan="2" class="noticias"><h3>Noticias</h3> 65 <?php 66 noticias(); 67 ?></td> 68 </tr> 69 </table> 70 </body> 71 </html>

Page 150: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 148

Calendarioescolar.php 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 2 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 3 <html xmlns="http://www.w3.org/1999/xhtml"> 4 <head> 5 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 6 <title>CP Emilio Lluch</title> 7 <link href="css/general.css" rel="stylesheet" type="text/css" /> 8 <link href="css/calendario.css" rel="stylesheet" type="text/css" /> 9 10 <script type="text/javascript" src="./js/fecha.js"> </script> 11 12 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 13 </head> 14 15 <body onload="javascript:displayTime();"> 16 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 17 <tr> 18 <td class="logo">&nbsp;</td> 19 <td colspan="2" class="titulo">&nbsp;</td> 20 </tr> 21 <tr> 22 <td class="fecha">&nbsp;</td> 23 <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> 24 </tr> 25 <tr> 26 <td class="menu"> 27 <ul> 28 <li><a href="index.php">Inicio</a></li> 29 <li><a href="historia.php">Historia</a></li> 30 <li><a href="equipoDirectivo.php">Equipo directivo</a></li> 31 <li><a href="reglamento.php">Reglamento</a></li> 32 <li><a href="#">Calendario escolar</a></li> 33 <li><a href="localizacion.php">Localizaci&oacute;n</a></li> 34 <li><a href="contactar.php">Contactar</a></li> 35 <li><a href="enlaces.php">Enlaces</a></li> 36 </ul> </td> 37 <td class="general"><h1>Calendario escolar </h1> 38 39 <?php 40 require ("calendarioscript.php"); 41 42 if (!$HTTP_POST_VARS && !$HTTP_GET_VARS){ 43 $tiempo_actual = time(); 44 $mes = date("n", $tiempo_actual); 45 $ano = date("Y", $tiempo_actual); 46 $dia=date("d"); 47 $fecha=$ano . "-" . $mes . "-" . $dia; 48 }else { 49 $mes = $_GET["nuevo_mes"]; 50 $ano = $_GET["nuevo_ano"]; 51 $dia = $_GET["dia"]; 52 $fecha=$ano . "-" . $mes . "-" . $dia; 53 } 54 55 //echo"Fecha Seleccionada <input type=text name=fecha value=$fecha>"; 56 mostrar_calendario($dia,$mes,$ano); 57 58 ?> 59 </td> 60 <td class="imagenCalendario">&nbsp;</td> 61 </tr> 62 <tr> 63 <td><p>Autenticarse</p> 64 <form id="form1" method="post" action="analizadorlogin.php"> 65 <p> 66 <label>Login 67 <input type="text" name="log" /> 68 </label> 69 <label>Password 70 <input type="password" name="pass" /> 71 </label> 72 <label> 73 <input type="submit" value="Identificarse" name="b" />

Page 151: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 149

74 </label> 75 </p> 76 </form> <p>&nbsp;</p></td> 77 <td colspan="2" class="noticias"> 78 <p><strong>Eventos del d&iacute;a:</strong> </p> 79 80 <?php 81 $conn=Conectar(); 82 $sql="SELECT * FROM evento WHERE titulo = '"."Curso"."' OR titulo = 83 '"."Festivo"."'"; 84 $res=consulta($sql,$conn); 85 $hayEventos = 0; //¿Hay eventos para el dia seleccionado? 86 while($row=siguiente($res)) 87 { 88 $fecha = split("-",sacarFecha($row["fecha"])); 89 if($dia == $fecha[0] && $mes == $fecha[1] && ($fecha[2] == 90 "2000" || $fecha[2] == $ano)) 91 { 92 echo "<p><span class='fechaNoticia'>".sacarDiaMes($row[ 93 "fecha"])."-".$ano."</span> ".tohtml($row["descripcion"])."< 94 /p>"; 95 $hayEventos = 1; // SI hay eventos 96 } 97 } 98 if($hayEventos == 0) //Si no hay eventos para el dia seleccionado 99 echo "<p>No hay eventos para el d&iacute;a seleccionado</p>"; 100 Desconectar($conn); 101 ?> 102 </td> 103 </tr> 104 </table> 105 </body> 106 </html>

Page 152: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 150

Localizacion.php 1 <?php 2 require_once ("Anonimo_inc.php"); 3 ?> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 5 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 6 <html xmlns="http://www.w3.org/1999/xhtml"> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 9 <title>CP Emilio Lluch</title> 10 <link href="css/general.css" rel="stylesheet" type="text/css" /> 11 12 <script type="text/javascript" src="./js/fecha.js"> </script> 13 14 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 15 </head> 16 17 <body onload="javascript:displayTime();"> 18 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 19 <tr> 20 <td class="logo">&nbsp;</td> 21 <td colspan="2" class="titulo">&nbsp;</td> 22 </tr> 23 <tr> 24 <td class="fecha">&nbsp;</td> 25 <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> 26 </tr> 27 <tr> 28 <td class="menu"> 29 <ul> 30 <li><a href="index.php">Inicio</a></li> 31 <li><a href="historia.php">Historia</a></li> 32 <li><a href="equipoDirectivo.php">Equipo directivo</a></li> 33 <li><a href="reglamento.php">Reglamento</a></li> 34 <li><a href="calendario.php">Calendario escolar</a></li> 35 <li><a href="#">Localizaci&oacute;n</a></li> 36 <li><a href="contactar.php">Contactar</a></li> 37 <li><a href="enlaces.php">Enlaces</a></li> 38 </ul> </td> 39 <td class="general"><h1>Localizaci&oacute;n</h1> 40 <p>C. P. EMILIO LLUCH </p> 41 <p>Calle Polideportivo, s/n. </p> 42 <p>46119 - N&agrave;quera (Valencia)</p> 43 <p><a href="javascript:;" onclick="window.open('http://www.naquera. 44 com/servicios/plano_callejero_v.asp','Mapa','width=500,height=325')"> 45 Ver mapa de N&agrave;quera</a> </p></td> 46 <td class="imagenLocalizacion">&nbsp;</td> 47 </tr> 48 <tr> 49 <td><p>Autenticarse</p> 50 <form id="form1" method="post" action="analizadorlogin.php"> 51 <p> 52 <label>Login 53 <input type="text" name="log" /> 54 </label> 55 <label>Password 56 <input type="password" name="pass" /> 57 </label> 58 <label> 59 <input type="submit" value="Identificarse" name="b" /> 60 </label> 61 </p> 62 </form> <p>&nbsp;</p></td> 63 <td colspan="2" class="noticias"><h3>Noticias</h3> 64 <?php 65 noticias(); 66 ?></td> 67 </tr> 68 </table> 69 </body> 70 </html>

Page 153: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 151

Contactar.php 1 <?php 2 require_once ("Anonimo_inc.php"); 3 ?> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 5 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 6 <html xmlns="http://www.w3.org/1999/xhtml"> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 9 <title>CP Emilio Lluch</title> 10 <link href="css/general.css" rel="stylesheet" type="text/css" /> 11 12 <script type="text/javascript" src="./js/fecha.js"> </script> 13 14 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 15 </head> 16 17 <body onload="javascript:displayTime();"> 18 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 19 <tr> 20 <td class="logo">&nbsp;</td> 21 <td colspan="2" class="titulo">&nbsp;</td> 22 </tr> 23 <tr> 24 <td class="fecha">&nbsp;</td> 25 <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> 26 </tr> 27 <tr> 28 <td class="menu"> 29 <ul> 30 <li><a href="index.php">Inicio</a></li> 31 <li><a href="historia.php">Historia</a></li> 32 <li><a href="equipoDirectivo.php">Equipo directivo</a></li> 33 <li><a href="reglamento.php">Reglamento</a></li> 34 <li><a href="calendario.php">Calendario escolar</a></li> 35 <li><a href="localizacion.php">Localizaci&oacute;n</a></li> 36 <li><a href="#">Contactar</a></li> 37 <li><a href="enlaces.php">Enlaces</a></li> 38 </ul> </td> 39 <td class="general"><h1>Contacto</h1> 40 <p>Para cualquier duda o sugerencia no dude en ponerse en contacto 41 con nosotros. Con el formulario que le ofrecemos a continuaci&oacute; 42 n puede hacernos llegar sus inquietudes. </p> 43 <p>O si lo prefiere puede ponerse en contacto con el centro con el 44 siguiente tel&eacute;fono: 96 168 00 76</p> 45 <form id="form2" method="post" action="<?php echo $_SERVER['PHP_SELF'] 46 ?>"> 47 48 <p> 49 Introduzca su e-mail 50 <input type="text" name="Mail" value="<?php echo $_POST["Mail"] ?> 51 "/> 52 </p> 53 <p>Introduzca el mensaje que desee enviar: </p> 54 <p> 55 <textarea name="Texto" cols="50" rows="8"><?php echo $_POST[ 56 "Texto"] ?></textarea> 57 </p> 58 <p> 59 <input type="submit" name="Submit" value="Enviar" /> 60 </p> 61 </form> 62 <?php 63 64 65 ?> 66 67 <p>&nbsp;</p></td> 68 <td class="imagenEmail">&nbsp;</td> 69 </tr> 70 <tr> 71 <td><p>Autenticarse</p> 72 <form id="form1" method="post" action="analizadorlogin.php"> 73 <p>

Page 154: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 152

74 <label>Login 75 <input type="text" name="log" /> 76 </label> 77 <label>Password 78 <input type="password" name="pass" /> 79 </label> 80 <label> 81 <input type="submit" value="Identificarse" name="b" /> 82 </label> 83 </p> 84 </form> <p>&nbsp;</p></td> 85 <td colspan="2" class="noticias"><h3>Noticias</h3> 86 <?php 87 88 noticias(); 89 ?></td> 90 </tr> 91 </table> 92 </body> 93 </html>

Page 155: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 153

Enlaces.php 1 <?php 2 require_once ("Anonimo_inc.php"); 3 ?> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 5 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 6 <html xmlns="http://www.w3.org/1999/xhtml"> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 9 <title>CP Emilio Lluch</title> 10 <link href="css/general.css" rel="stylesheet" type="text/css" /> 11 12 <script type="text/javascript" src="./js/fecha.js"> </script> 13 14 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 15 </head> 16 17 <body onload="javascript:displayTime();"> 18 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 19 <tr> 20 <td class="logo">&nbsp;</td> 21 <td colspan="2" class="titulo">&nbsp;</td> 22 </tr> 23 <tr> 24 <td class="fecha">&nbsp;</td> 25 <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> 26 </tr> 27 <tr> 28 <td class="menu"> 29 <ul> 30 <li><a href="index.php">Inicio</a></li> 31 <li><a href="historia.php">Historia</a></li> 32 <li><a href="equipoDirectivo.php">Equipo directivo</a></li> 33 <li><a href="reglamento.php">Reglamento</a></li> 34 <li><a href="calendario.php">Calendario escolar</a></li> 35 <li><a href="localizacion.php">Localizaci&oacute;n</a></li> 36 <li><a href="contactar.php">Contactar</a></li> 37 <li><a href="#">Enlaces</a></li> 38 </ul> </td> 39 <td class="general"><h1>Enlaces de inter&eacute;s </h1> 40 <h3>Institucionales</h3> 41 <p><a href="www.mec.es">Ministerio de Educaci&oacute;n</a></p> 42 <p><a href="www.cult.gva.es">Conselleria d'Educaci&oacute;</a> </p> 43 <p><a href="www.naquera.com">Ayuntamiento de N&agrave;quera</a> </p> 44 <h3>Recursos educativos </h3> 45 <p><a href="www.rincondelvago.com">El Rinc&oacute;n del vago</a> </p>< 46 /td> 47 <td class="imagenEnlaces">&nbsp;</td> 48 </tr> 49 <tr> 50 <td><p>Autenticarse</p> 51 <form id="form1" method="post" action="analizadorlogin.php"> 52 <p> 53 <label>Login 54 <input type="text" name="log" /> 55 </label> 56 <label>Password 57 <input type="password" name="pass" /> 58 </label> 59 <label> 60 <input type="submit" value="Identificarse" name="b" /> 61 </label> 62 </p> 63 </form> <p>&nbsp;</p></td> 64 <td colspan="2" class="noticias"><h3>Noticias</h3> 65 <?php 66 noticias(); 67 ?></td> 68 </tr> 69 </table> 70 </body> 71 </html>

Page 156: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 154

Prohibido.php 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. 2 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3 <html xmlns="http://www.w3.org/1999/xhtml"> 4 <head> 5 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 6 <title>Documento sin t&iacute;tulo</title> 7 </head> 8 9 <body> 10 <p>Acceso prohibido. </p> 11 Volver al <a href="/webcole/index.php">inicio</a> 12 </body> 13 </html>

Page 157: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 155

Anonimo_inc.php 1 <?php 2 require_once "bd.php"; 3 4 function equipo_directivo() 5 { 6 $conn = Conectar(); 7 // DIRECTOR 8 $sql="SELECT * FROM usuario U, director D, equipodirectivo E WHERE U. 9 login = D.login AND D.login = E.login"; 10 $director = consulta($sql,$conn); 11 $dir = siguiente($director); 12 echo "<p style='font-weight: bold; font-size:22px'>Director: </p>"; 13 echo tohtml("<p>".$dir["nombre"]." ".$dir["apellido1"]." ".$dir[ 14 "apellido2"]."</p>"); 15 echo tohtml("<p>E-mail: <a href='mailto:".$dir["email"]."'>".$dir[ 16 "email"]."</a></p>"); 17 echo tohtml("<p>Horario de atenci&oacute;n: " . $dir["horario"] . "< 18 /p>"); 19 echo "<hr />"; 20 //JEFE DE ESTUDIOS 21 $sql="SELECT * FROM usuario U, jefeestudio J, equipodirectivo E WHERE 22 U.login = J.login AND J.login = E.login"; 23 $je = consulta($sql,$conn); 24 $je = siguiente($je); 25 echo "<p style='font-weight: bold; font-size:22px'>Jefe de Estudios: 26 </p>"; 27 echo tohtml("<p>".$je["nombre"]." ".$je["apellido1"]." ".$je[ 28 "apellido2"]."</p>"); 29 echo tohtml("<p>E-mail: <a href='mailto:".$je["email"]."'>".$je[ 30 "email"]."</a></p>"); 31 echo tohtml("<p>Horario de atenci&oacute;n: " . $je["horario"] . "</p> 32 "); 33 echo "<hr />"; 34 //SECRETARIO 35 $sql="SELECT * FROM usuario U, secretario S, equipodirectivo E WHERE 36 U.login = S.login AND S.login=E.login"; 37 $secretario = consulta($sql,$conn); 38 $sec = siguiente($secretario); 39 echo "<p style='font-weight: bold; font-size:22px'>Secretario: </p>"; 40 echo tohtml("<p>".$sec["nombre"]." ".$sec["apellido1"]." ".$sec[ 41 "apellido2"]."</p>"); 42 echo tohtml("<p>E-mail: <a href='mailto:".$sec["email"]."'>".$sec[ 43 "email"]."</a></p>"); 44 echo tohtml("<p>Horario de atenci&oacute;n: " . $sec["horario"] . "< 45 /p>"); 46 47 desconectar($conn); 48 } 49 50 function noticias() 51 { 52 $conn=Conectar(); 53 $sql="SELECT * FROM evento WHERE titulo = 'Noticia' ORDER BY idevento 54 DESC"; 55 $res=consulta($sql,$conn); 56 for($i=0; $i<3 || $i<numeroFilas($res);$i++) 57 { 58 $row = siguiente($res); 59 echo "<p><span class='fechaNoticia'>".sacarFecha($row["fecha"])." < 60 /span>".tohtml($row["descripcion"])." </p>"; 61 } 62 desconectar($conn); 63 } 64 65 function mandar_correo() 66 { 67 $conn=Conectar(); 68 $sql="SELECT * FROM administrador"; 69 $res=consulta($sql,$conn); 70 $res=siguiente($res); 71 $mailAdmin = $res["email"]; 72 if(isset($_POST["Mail"]) && $_POST["Mail"] != "") 73 {

Page 158: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 156

74 if(@mail($mailAdmin, "Consulta de la Web", $_POST["Texto"], 75 "From: ".$_POST['Mail'])) 76 echo "<p>Gracias por ponerse en contacto con nosotros. Le 77 contestaremos con la mayor brevedad posible.</p>"; 78 else 79 echo "<p>Lo siento, ha ocurrido un error.</p>"; 80 } 81 else if($HTTP_POST_VARS) 82 echo "<p>Debe rellenar todos los campos.</p>"; 83 desconectar($conn); 84 } 85 86 ?>

Page 159: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 157

Analizadorlogin.php 1 <?php 2 $ok = 0; // se han encontrado en la base de datos 3 session_start(); 4 include("bd.php"); 5 $conn = conectar(); 6 $sql = 'SELECT * FROM usuario'; 7 $resultado = consulta($sql, $conn); 8 while($row = siguiente($resultado)) 9 { 10 if($_POST['pass'] == $row['contrasenya'] && $_POST['log'] == $row[ 11 'login']) 12 { 13 $ok = 1; 14 15 //setcookie('log', $row['login']); //Guardamos el cookie con 16 el nombre del usuario conectado 17 $_SESSION["id"] = $row["login"]; 18 //Comprobamos si es profesor 19 $sql2 = 'SELECT * FROM profesor'; 20 $resultado2 = consulta($sql2, $conn); 21 while($row2 = siguiente($resultado2)) 22 { 23 if($_POST['log'] == $row2['login']) 24 { 25 //mysql_close($dp); 26 $_SESSION["tipo"] = "Profesor"; 27 header('Location: intranetProfe.php'); 28 break; 29 } 30 } 31 32 //Comprobamos si es alumno 33 $sql3 = 'SELECT * FROM alumno'; 34 $resultado3 = consulta($sql3, $conn); 35 while($row3 = siguiente($resultado3)) 36 { 37 if($_POST['log'] == $row3['login']) 38 { 39 40 $_SESSION["tipo"] = "Alumno"; 41 header('Location: intranetAlumno.php'); 42 } 43 } 44 } 45 } 46 47 48 if($ok == 0) 49 { 50 setcookie('login', 'Error', time()+1); 51 header("Location: index.php"); 52 echo '<script language="Javascript"> alert("Autenticación errónea"); 53 </script>'; 54 } 55 56 57 desconectar($conn); 58 ?>

Page 160: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 158

Bd.php 1 <?php 2 function Conectar() //realiza la conexion con la base de datos. 3 { 4 if (!($link=mysql_connect("localhost","cole1","webcole"))) 5 { 6 echo "Error conectando a la base de datos."; 7 exit(); 8 } 9 if (!mysql_select_db("webcole",$link)) 10 { 11 echo "Error seleccionando la base de datos."; 12 exit(); 13 } 14 return $link; 15 } 16 17 function consulta($sql, $c) 18 { 19 $res = mysql_query($sql, $c); 20 return $res; 21 } 22 23 function siguiente($res) 24 { 25 return mysql_fetch_assoc($res); 26 } 27 28 29 function Desconectar($link) 30 { 31 mysql_close($link); //cierra la conexion 32 } 33 34 //Esta función convierte la fecha del formato DATETIME de SQL 35 //a formato DD-MM-YYYY HH:mm:ss 36 function convertir_fecha($fecha_datetime) 37 { 38 $fecha = split("-",$fecha_datetime); 39 $hora = split(":",$fecha[2]); 40 $fecha_hora=split(" ",$hora[0]); 41 $fecha_convertida=$fecha_hora[0].'-'.$fecha[1].'-'.$fecha[0].' '. 42 $fecha_hora[1].':'.$hora[1].':'.$hora[2]; 43 return $fecha_convertida; 44 } 45 46 //Devuelve solo la fecha de un datetime 47 function sacarFecha($fecha_datetime) 48 { 49 $fecha = split("-",$fecha_datetime); 50 $hora = split(":",$fecha[2]); 51 $fecha_hora=split(" ",$hora[0]); 52 $fecha_convertida=$fecha_hora[0] . '-' . $fecha[1] . '-' . $fecha[0]; 53 return $fecha_convertida; 54 } 55 56 function sacarDiaMes($fecha_datetime) 57 { 58 $fecha = split("-",$fecha_datetime); 59 $hora = split(":",$fecha[2]); 60 $fecha_hora=split(" ",$hora[0]); 61 $fecha_convertida=$fecha_hora[0] . '-' . $fecha[1]; 62 return $fecha_convertida; 63 } 64 65 function numeroFilas($res) 66 { 67 return mysql_num_rows($res); 68 } 69 70 //Reemplaza en un texto las tildes y caracteres especiales por su 71 equivalente en html 72 function tohtml($texto) { 73 $especial=array('á','é','í','ó','ú','ñ','Á','É','Í','Ó','Ú','Ñ','à','è',

Page 161: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 159

74 'ò','À','È','Ò'); 75 $traducir=array('&aacute;','&eacute;','&iacute;','&oacute;','&uacute;', 76 '&ntilde;','&Aacute;','&Eacute;','&Iacute;','&Oacute;','&Uacute;', 77 '&Ntilde;','&agrave;','&egrave;','&ograve;','&Agrave;','&Egrave;', 78 '&Ograve;'); 79 return str_replace($especial,$traducir,$texto); 80 } 81 82 //cierra la sesion del usuario, borrando los datos que hubiera en ella 83 function cerrarSesion () 84 { 85 // Destruye todas las variables de la sesi&oacute;n 86 session_unset(); 87 // Finalmente, destruye la sesi&oacute;n 88 session_destroy(); 89 } 90 91 ?>

Page 162: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 160

Cerrar_sesion_alumno.php 1 <?php 2 session_start(); 3 include("bd.php"); 4 cerrarSesion(); 5 ?> 6 <head> 7 <meta http-equiv="refresh" content="1;URL=index.php"> 8 </head>

Cerrar_sesion.php 1 <?php 2 require_once "profesor_inc.php"; 3 header("Location: /webcole/index.php"); 4 ?>

Page 163: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 161

calendarioscript.php 1 <?php 2 include_once("bd.php"); 3 4 5 6 function calcula_numero_dia_semana($dia,$mes,$ano){ 7 $numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano)); 8 if ($numerodiasemana == 0) 9 $numerodiasemana = 6; 10 else 11 $numerodiasemana--; 12 return $numerodiasemana; 13 } 14 15 //funcion que devuelve el último día de un mes y año dados 16 function ultimoDia($mes,$ano){ 17 $ultimo_dia=28; 18 while (checkdate($mes,$ultimo_dia + 1,$ano)){ 19 $ultimo_dia++; 20 } 21 return $ultimo_dia; 22 } 23 24 function dame_nombre_mes($mes){ 25 switch ($mes){ 26 case 1: 27 $nombre_mes="Enero"; 28 break; 29 case 2: 30 $nombre_mes="Febrero"; 31 break; 32 case 3: 33 $nombre_mes="Marzo"; 34 break; 35 case 4: 36 $nombre_mes="Abril"; 37 break; 38 case 5: 39 $nombre_mes="Mayo"; 40 break; 41 case 6: 42 $nombre_mes="Junio"; 43 break; 44 case 7: 45 $nombre_mes="Julio"; 46 break; 47 case 8: 48 $nombre_mes="Agosto"; 49 break; 50 case 9: 51 $nombre_mes="Septiembre"; 52 break; 53 case 10: 54 $nombre_mes="Octubre"; 55 break; 56 case 11: 57 $nombre_mes="Noviembre"; 58 break; 59 case 12: 60 $nombre_mes="Diciembre"; 61 break; 62 } 63 return $nombre_mes; 64 } 65 66 function mostrar_calendario($dia,$mes,$ano){ 67 $mes_hoy=date("m"); 68 $ano_hoy=date("Y"); 69 70 if (($mes_hoy <> $mes) || ($ano_hoy <> $ano)) 71 { 72 $hoy=0; 73 } 74 else 75 {

Page 164: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 162

76 $hoy=date("d"); 77 } 78 //tomo el nombre del mes que hay que imprimir 79 $nombre_mes = dame_nombre_mes($mes); 80 81 //construyo la cabecera de la tabla 82 echo "<table width='200px' cellspacing='3' cellpadding='2' border='0'>< 83 tr><td colspan='7' style='text-align: center ;' class='tit'>"; 84 echo "<table width='100%' cellspacing='2' cellpadding='2' border='0'>< 85 tr><td style='font-size:10pt;font-weight:bold;color:white'>"; 86 //calculo el mes y ano del mes anterior 87 $mes_anterior = $mes - 1; 88 $ano_anterior = $ano; 89 if ($mes_anterior==0){ 90 $ano_anterior--; 91 $mes_anterior=12; 92 } 93 echo "<a style='color:white;text-decoration:none' href='calendario. 94 php?dia=$dia&amp;nuevo_mes=$mes_anterior&amp;nuevo_ano=$ano_anterior'> 95 &lt;&lt;</a></td>"; 96 echo "<td style='text-align: center ;' class='tit'>$nombre_mes $ano< 97 /td>"; 98 echo "<td style='text-align: right ; font-size:10pt;font-weight:bold; 99 color:white'>"; 100 //calculo el mes y ano del mes siguiente 101 $mes_siguiente = $mes + 1; 102 $ano_siguiente = $ano; 103 if ($mes_siguiente==13){ 104 $ano_siguiente++; 105 $mes_siguiente=1; 106 } 107 echo "<a style='color:white;text-decoration:none' href='calendario. 108 php?dia=$dia&amp;nuevo_mes=$mes_siguiente&amp;nuevo_ano=$ano_siguiente'> 109 &gt;&gt;</a></td></tr></table></td></tr>"; 110 echo ' <tr> 111 <td style="width: 14%;text-align: center ;" class="altn">Lu< 112 /td> 113 <td style="width: 14%;text-align: center ;" class="altn">Ma< 114 /td> 115 <td style="width: 14%;text-align: center ;" class="altn">Mi< 116 /td> 117 <td style="width: 14%;text-align: center ;" class="altn">Ju< 118 /td> 119 <td style="width: 14%;text-align: center ;" class="altn">Vi< 120 /td> 121 <td style="width: 14%;text-align: center ;" class="altn">Sa< 122 /td> 123 <td style="width: 14%;text-align: center ;" class="altn">Do< 124 /td> 125 </tr>'; 126 127 //Variable para llevar la cuenta del dia actual 128 $dia_actual = 1; 129 130 //calculo el numero del dia de la semana del primer dia 131 $numero_dia = calcula_numero_dia_semana(1,$mes,$ano); 132 //echo "Numero del dia de demana del primer: $numero_dia <br>"; 133 134 //calculo el último dia del mes 135 $ultimo_dia = ultimoDia($mes,$ano); 136 137 //escribo la primera fila de la semana 138 echo "<tr>"; 139 for ($i=0;$i<7;$i++){ 140 if ($i < $numero_dia){ 141 //si el dia de la semana i es menor que el numero del primer 142 dia de la semana no pongo nada en la celda 143 echo "<td></td>"; 144 } else { 145 if (($i == 5) || ($i == 6)) 146 { 147 if ($dia_actual == $hoy) 148 { 149 echo "<td class='da'><a href='calendario. 150 php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; 151 nuevo_ano=$ano'>$dia_actual</a></td>"; 152 }

Page 165: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 163

153 else if ($dia_actual == $dia) //Dia seleccionado 154 { 155 echo "<td class='da'><a href='calendario. 156 php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; 157 nuevo_ano=$ano'>$dia_actual</a></td>"; 158 } 159 else 160 { 161 echo "<td class='fs'><a href='calendario. 162 php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; 163 nuevo_ano=$ano'>$dia_actual</a></td>"; 164 } 165 } 166 else 167 { 168 if ($dia_actual == $hoy) 169 { 170 echo "<td class='da'><a href='calendario. 171 php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; 172 nuevo_ano=$ano'>$dia_actual</a></td>"; 173 } 174 else if ($dia_actual == $dia) //Dia seleccionado 175 { 176 echo "<td class='da'><a href='calendario. 177 php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; 178 nuevo_ano=$ano'>$dia_actual</a></td>"; 179 } 180 else 181 { 182 $escrito=0; 183 $conn=Conectar(); 184 $sql = "SELECT * FROM evento WHERE titulo = 'Festivo'"; 185 $res = consulta($sql,$conn); 186 while($row = siguiente($res)) 187 { 188 $fecha = split("-",sacarFecha($row["fecha"])); 189 if($dia_actual == $fecha[0] && $mes == $fecha[1] && 190 ($fecha[2] == "2000" || $fecha[2] == $ano)) 191 { 192 echo "<td class='fs'><a href='calendario. 193 php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; 194 nuevo_ano=$ano'>$dia_actual</a></td>"; 195 $escrito=1; 196 break; 197 } 198 } 199 $sql = "SELECT * FROM evento WHERE NOT titulo = 200 'Festivo' AND NOT titulo='Noticia'"; 201 $res = consulta($sql,$conn); 202 while($row = siguiente($res)) 203 { 204 $fecha = split("-",sacarFecha($row["fecha"])); 205 if($dia_actual == $fecha[0] && $mes == $fecha[1] && 206 ($fecha[2] == "2000" || $fecha[2] == $ano)) 207 { 208 echo "<td class='curso'><a href='calendario. 209 php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; 210 nuevo_ano=$ano'>$dia_actual</a></td>"; 211 $escrito=1; 212 break; 213 } 214 } 215 Desconectar($conn); 216 if($escrito==0) 217 { 218 echo "<td style='text-align: center ;' 219 class='laborable'><a href='calendario. 220 php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; 221 nuevo_ano=$ano'>$dia_actual</a></td>"; 222 223 } 224 } 225 } 226 $dia_actual++; 227 } 228 } 229 echo "</tr>";

Page 166: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 164

230 231 //recorro todos los demás días hasta el final del mes 232 $numero_dia = 0; 233 while ($dia_actual <= $ultimo_dia){ 234 //si estamos a principio de la semana escribo el <TR> 235 if ($numero_dia == 0) 236 echo "<tr>"; 237 //si es el uñtimo de la semana, me pongo al principio de la semana 238 y escribo el </tr> 239 240 if (($numero_dia == 5) || ($numero_dia == 6)) 241 { 242 if ($dia_actual == $hoy) 243 { 244 echo "<td class='da'><a href='calendario. 245 php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; 246 nuevo_ano=$ano'>$dia_actual</a></td>"; 247 } 248 else if ($dia_actual == $dia) //Dia seleccionado 249 { 250 echo "<td class='da'><a href='calendario. 251 php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; 252 nuevo_ano=$ano'>$dia_actual</a></td>"; 253 } 254 else 255 { 256 echo "<td class='fs' ><a href='calendario. 257 php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; 258 nuevo_ano=$ano'>$dia_actual</a></td>"; 259 } 260 } 261 else 262 { 263 if ($dia_actual == $hoy) 264 { 265 echo "<td class='da'><a href='calendario. 266 php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; 267 nuevo_ano=$ano'>$dia_actual</a></td>"; 268 } 269 else if ($dia_actual == $dia) //Dia seleccionado 270 { 271 echo "<td class='da'><a href='calendario. 272 php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; 273 nuevo_ano=$ano'>$dia_actual</a></td>"; 274 } 275 else 276 { 277 $escrito=0; 278 $conn=Conectar(); 279 $sql = "SELECT * FROM evento WHERE titulo = 'Festivo'"; 280 $res = consulta($sql,$conn); 281 while($row = siguiente($res)) 282 { 283 $fecha = split("-",sacarFecha($row["fecha"])); 284 if($dia_actual == $fecha[0] && $mes == $fecha[1] && 285 ($fecha[2] == "2000" || $fecha[2] == $ano)) 286 { 287 echo "<td class='fs'><a href='calendario. 288 php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; 289 nuevo_ano=$ano'>$dia_actual</a></td>"; 290 $escrito=1; 291 break; 292 } 293 } 294 $sql = "SELECT * FROM evento WHERE NOT titulo = 295 'Festivo' AND NOT titulo='Noticia'"; 296 $res = consulta($sql,$conn); 297 while($row = siguiente($res)) 298 { 299 $fecha = split("-",sacarFecha($row["fecha"])); 300 if($dia_actual == $fecha[0] && $mes == $fecha[1] && 301 ($fecha[2] == "2000" || $fecha[2] == $ano)) 302 { 303 echo "<td class='curso'><a href='calendario. 304 php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; 305 nuevo_ano=$ano'>$dia_actual</a></td>"; 306 $escrito=1;

Page 167: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 165

307 break; 308 } 309 } 310 Desconectar($conn); 311 if($escrito==0) 312 { 313 echo "<td style='text-align: center ;' 314 class='laborable'><a href='calendario. 315 php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; 316 nuevo_ano=$ano'>$dia_actual</a></td>"; 317 318 } 319 } 320 } 321 322 $dia_actual++; 323 $numero_dia++; 324 if ($numero_dia == 7) 325 { 326 $numero_dia = 0; 327 echo "</tr>"; 328 } 329 330 } 331 332 //compruebo que celdas me faltan por escribir vacias de la última 333 semana del mes 334 for ($i=$numero_dia;$i<7;$i++){ 335 echo "<td></td>"; 336 } 337 338 echo "</tr>"; 339 echo "</table>"; 340 }

Page 168: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 166

Alumno_inc.php 1 <?php 2 3 require_once "bd.php"; 4 define (INST, "INSTALACION"); 5 define (EQUIP, "EQUIPACION"); 6 define (ALUM, "Alumno"); 7 8 //Devuelve una tabla con las reservas de instalaciones que 9 //ha efectuado el usuario. 10 //El usuario se obtiene de la sesion iniciada 11 //Acceso: 12 // idinst => id de la instalacion 13 // instalacion => nombre de la instalacion 14 // normas => ruta para llegar a las normas de la instalacion 15 // (no contiene las normas, apunta al fichero 16 // que las tiene) 17 // fecha => fecha de la reserva con formato "mm-dd-aa hh:mm:ss" 18 // proposito => Motivo de la reserva (introducido por el usuario 19 // cuando realiza la reserva. 20 function listado_reservas_instalaciones() 21 { 22 $link = Conectar(); 23 $sql = "SELECT * FROM res_ins WHERE login = '" . $_SESSION["id"] ."'"; 24 25 //ejecutamos la consulta 26 $resultado = consulta ($sql, $link); 27 28 //sacamos los valores que nos interesan de los 29 //resultados (en este caso todos) 30 $i = 0; 31 $tabla = null; 32 while ($fila = siguiente($resultado)) 33 { 34 $tabla[$i]["fecha"] = $fila["fecha"]; 35 //$tabla[$i]["fecha"] = $fila["fecha"]; 36 $tabla[$i]["proposito"] = $fila["proposito"]; 37 38 $sql_ins = "SELECT * FROM instalacion WHERE idinstalacion = '" . 39 $fila["idinstalacion"] . "'"; 40 $res_ins = consulta ($sql_ins, $link); 41 $ins = siguiente($res_ins); 42 if ($ins) 43 { 44 $tabla[$i]["idinst"] = $ins["idinstalacion"]; 45 $tabla[$i]["instalacion"] = $ins["instalacion"]; 46 $tabla[$i++]["normas"] = $ins["normas"]; 47 } 48 else 49 { 50 $tabla[$i]["idinst"] = -1; 51 $tabla[$i]["instalacion"] = "Instalacion desconocida"; 52 $tabla[$i++]["normas"] = "Normas no encontradas"; 53 } 54 } 55 56 Desconectar ($link); 57 return $tabla; 58 } 59 60 61 62 //devuelve una tabla con el id de las instalaciones, 63 //el nombre de la instalacion y las normas 64 //Acceso: 65 // idinstalacion => id de la instalacion 66 // instalacion => nombre de la instalacion 67 // normas => ruta para llegar a las normas de la instalacion 68 // (no contiene las normas, apunta al fichero 69 // que las tiene) 70 function listado_instalacion() 71 { 72 $link = Conectar(); 73 $sql = "SELECT * FROM instalacion"; 74 75 //ejecutamos la consulta

Page 169: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 167

76 $resultado = consulta ($sql, $link); 77 78 //sacamos los valores que nos interesan de los 79 //resultados (en este caso todos) 80 $i = 0; 81 while ($fila = siguiente($resultado)) 82 { 83 $tabla[$i]["idinstalacion"] = $fila["idinstalacion"]; 84 $tabla[$i]["instalacion"] = $fila["instalacion"]; 85 $tabla[$i++]["normas"] = $fila["normas"]; 86 } 87 88 Desconectar ($link); 89 return $tabla; 90 } 91 92 93 //Obtiene los dias en que esta reservado una instalacion dada 94 //Devuelve una tabla con las fechas 95 //Acceso: 96 // dia 97 // mes 98 // anyo 99 //Parametros recibido 100 // id de una instalacion 101 function fecha_reservas($iditem, $item) 102 { 103 if ( !isset($iditem) || $iditem == -1) 104 { 105 return; 106 } 107 108 $link = Conectar(); 109 if ($item == INST) 110 { 111 $sql = "SELECT fecha FROM `res_ins` 112 WHERE `res_ins`.`idinstalacion`=$iditem" ; 113 } 114 else 115 { 116 $sql = "SELECT fecha FROM `res_equi` 117 WHERE `res_equi`.`idequipacion`=$iditem" ; 118 } 119 120 $result = consulta ($sql, $link); 121 122 //sacamos los valores que nos interesan de los 123 //resultados (en este caso todos) 124 $i = 0; 125 $tabla; 126 while ($fila = siguiente($result)) 127 { 128 $fecha = sacarFecha($fila["fecha"]); 129 $trozo = explode ("-", $fecha); 130 //echo " fecha: " . $fecha . "\n<br>"; 131 $tabla[$i]["dia"] = $trozo[0]; 132 $tabla[$i]["mes"] = $trozo[1]; 133 $tabla[$i++]["anyo"] = $trozo[2]; 134 } 135 136 Desconectar ($link); 137 return $tabla; 138 } 139 140 //Permite hacer una reserva 141 //Recibe como parametros 142 //Login del usuario, fecha(dia, mes, anyo) y hora(hora, min, seg) 143 //el codigo del item a reservar (puede ser una instalacion o un 144 //equipamiento y el motivo 145 //Devuelve: 146 // True si reveserva se pudo hacer 147 // Falso en caso contrario 148 function reservar_instalacion($login,$iditem,$dia,$mes,$anyo,$hora,$min, 149 $seg,$motivo, $item) 150 { 151 $fecha = $anyo . "-" . $mes . "-" . $dia . " " . $hora . ":" . $min . ": 152 " . $seg;

Page 170: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 168

153 echo "fecha vale: $fecha<br>\n"; 154 155 $link = Conectar(); 156 /*$sql = "INSERT INTO `webcole`.`res_ins` 157 (`login`, 158 `idinstalacion`, 159 `fecha`, 160 `proposito`) VALUES 161 (\'$login\', 162 \'$idins\', 163 \'$fecha\', 164 \'$motivo\');"; 165 */ 166 if ($item == INST) 167 { 168 $sql = "INSERT INTO `webcole`.`res_ins` 169 (`login`, 170 `idinstalacion`, 171 `fecha`, 172 `proposito`) VALUES 173 ('$login', 174 '$iditem', 175 '$fecha', 176 '$motivo');"; 177 } 178 else 179 { 180 $sql = "INSERT INTO `webcole`.`res_equi` 181 (`login`, 182 `idequipacion`, 183 `fecha`, 184 `proposito`) VALUES 185 ('$login', 186 '$iditem', 187 '$fecha', 188 '$motivo');"; 189 } 190 $result = consulta ($sql, $link); 191 192 echo "error: " . mysql_error($link); 193 194 return $result; 195 } 196 197 198 //Esta funcion elimina una reserva del usuario dado una fecha y el 199 //id del item y el tipo (instalacion o equipamiento 200 function anular_reserva($login, $fecha, $iditem, $item) 201 { 202 $link = Conectar(); 203 if ($item == INST) 204 { 205 $sql = "DELETE FROM `res_ins` 206 WHERE CONVERT(`res_ins`.`login` USING utf8)='$login' 207 AND `res_ins`.`idinstalacion`=$iditem 208 AND `res_ins`.`fecha`='$fecha' "; 209 } 210 else 211 { 212 $sql = "DELETE FROM `res_equi` 213 WHERE CONVERT(`res_equi`.`login` USING utf8)='$login' 214 AND `res_equi`.`idequipacion`=$iditem 215 AND `res_equi`.`fecha`='$fecha' "; 216 } 217 218 $result = consulta ($sql, $link); 219 $correcto =false; 220 221 if($result) 222 { 223 $filas = mysql_affected_rows(); 224 if ( $filas == 0 ) 225 { 226 //echo "La reserva ya hab&iacute;a sido eliminada"; 227 $correcto =false; 228 } 229 else

Page 171: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 169

230 { 231 //echo "La reserva ha sido eliminada"; 232 $correcto =true; 233 } 234 } 235 else 236 { 237 //echo"<p>Operacion NO efectuada</p>\n"; 238 //echo"<p>Error: " . mysql_error($link) . "</p>\n"; 239 //echo"SQL: $sql"; 240 $correcto =false; 241 } 242 243 Desconectar ($link); 244 return $correcto; 245 } 246 247 function bienvenido() 248 { 249 $dp = Conectar(); 250 $sql = 'SELECT * FROM usuario WHERE login ="' . $_SESSION[ 251 "id"] .'"'; 252 $resultado = consulta($sql, $dp); 253 while($row = siguiente($resultado)) 254 echo 'Bienvenido ' . $row['nombre']; 255 desconectar($dp); 256 } 257 258 function rellenar_eventos_curso() 259 { 260 $conn = Conectar(); 261 $sql="SELECT * FROM evento WHERE titulo = 'Curso' ORDER BY fecha"; 262 $res=consulta($sql,$conn); 263 264 while($row = siguiente($res)) 265 { 266 $fecha=split("-",sacarFecha($row["fecha"])); 267 $fechaComparar = "".$fecha[2].$fecha[1].$fecha[0]; 268 if($fechaComparar >= date("Ymd")) 269 for($i=0; $i<3 && $i<numeroFilas($res);$i++) 270 echo "<p><span class='fechaNoticia'>".sacarFecha($row[ 271 "fecha"])." </span>".tohtml($row["descripcion"])." </p> 272 "; 273 } 274 desconectar($conn); 275 } 276 277 function rellenar_tabla_faltas() 278 { 279 $conn = Conectar(); 280 $sql = "SELECT * FROM faltaasistencia WHERE alumno = '".$_SESSION[ 281 "id"]."' ORDER BY fecha"; 282 $faltas = consulta($sql,$conn); 283 if(numeroFilas($faltas) == 0) 284 echo "El alumno no tiene ninguna falta de asistencia."; 285 else 286 { 287 echo "<table width='100%' border='1'>"; 288 echo "<tr>"; 289 echo "<th scope='col'>Fecha</th>"; 290 echo "<th scope='col'>Asignatura</th>"; 291 echo "<th scope='col'>Justificada</th>"; 292 echo "</tr>"; 293 while($row = siguiente($faltas)) 294 { 295 $sql = "SELECT nombre FROM asignatura WHERE codigoasignatura = 296 '".$row["asignatura"]."'"; 297 $asignatura = consulta($sql,$conn); 298 $asignatura = siguiente($asignatura); 299 echo "<tr>"; 300 echo "<th scope='row'>".sacarFecha($row["fecha"])."</th>"; 301 echo "<td>".tohtml($asignatura["nombre"])."</td>"; 302 if($row["justificada"] == 0) 303 echo "<td>NO</td>"; 304 else 305 echo "<td>S&Iacute;</td>"; 306 echo "</tr>";

Page 172: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 170

307 } 308 echo "</table>"; 309 } 310 desconectar($conn); 311 } 312 313 function poner_datos_grupo() 314 { 315 $conn = Conectar(); 316 $sql = "SELECT * FROM usuario U, alumno A, grupo G WHERE U.login = 317 '".$_SESSION["id"]."' AND U.login = A.login AND A.curso = G.curso 318 AND A.letra = G.letra"; 319 $res = consulta($sql, $conn); 320 $res = siguiente($res); 321 322 echo "<p>Curso: ".$res["curso"] . "</p>"; 323 echo "<p>Letra: ".$res["letra"] . "</p>"; 324 echo "<p>Aula: ".$res["aula"] . "</p>"; 325 // Delegado 326 $sql = "SELECT * FROM usuario U, grupo G WHERE U.login = G. 327 delegado"; 328 $row = consulta($sql, $conn); 329 $row = siguiente($row); 330 echo "<p>Delegado: ".tohtml($row["apellido1"]." ".$row["apellido2"]. 331 ", ".$row["nombre"])."</p>"; 332 // Tutor 333 $sql = "SELECT * FROM usuario U, grupo G WHERE U.login = G.tutor"; 334 $row = consulta($sql, $conn); 335 $row = siguiente($row); 336 echo "<p>Tutor: ".tohtml($row["apellido1"]." ".$row["apellido2"].", 337 ".$row["nombre"])."</p>"; 338 desconectar($conn); 339 } 340 341 function rellenar_tabla_alumnos() 342 { 343 $conn = Conectar(); 344 $sql1 = "SELECT * FROM alumno where login='" . $_SESSION[ 345 "id"] ."'"; 346 347 $a = consulta($sql1,$conn); 348 $res = siguiente($a); 349 if ($res) 350 { 351 $sql = "SELECT * FROM usuario U, alumno A WHERE U.login 352 = A.login AND A.curso = '".$res["curso"]."' AND A.letra 353 = '".$res["letra"]."' ORDER BY apellido1, apellido2"; 354 355 $alumnos = consulta($sql,$conn); 356 while($row = siguiente($alumnos)) 357 { 358 echo "<tr>"; 359 echo "<td>".tohtml($row["apellido1"]." ".$row[ 360 "apellido2"].", ".$row["nombre"])."</td>"; 361 echo "<td>".tohtml($row["direccion"])."</td>"; 362 echo "<td>".tohtml($row["poblacion"])."</td>"; 363 echo "<td>".$row["telefono"]."</td>"; 364 echo "</tr>"; 365 } 366 } 367 desconectar($conn); 368 } 369 370 function curso_actual() 371 { 372 if(date("m")<9) 373 { 374 $anyo_ant = date("Y") - 1; 375 echo "Curso: ".$anyo_ant." - ".date("Y"); 376 } 377 else 378 { 379 $anyo_pos = date("Y") + 1; 380 echo "Curso: ".date("Y")." - ".$anyo_pos; 381 } 382 } 383

Page 173: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 171

384 function rellenar_tabla_notas() 385 { 386 $conn = Conectar(); 387 $mes = date("m"); 388 if($mes<9) 389 $sql = "SELECT * FROM nota WHERE alumno = '".$_SESSION["id"] 390 ."' AND curso LIKE '%".date("Y")."' ORDER BY asignatura, 391 trimestre"; 392 else 393 $sql = "SELECT * FROM nota WHERE alumno = '".$_SESSION["id"] 394 ."' AND curso LIKE '".date("Y")."%' ORDER BY asignatura, 395 trimestre"; 396 $notas = consulta($sql,$conn); 397 $ultimo_trimestre = 0; 398 while($row = siguiente($notas)) 399 { 400 if($row["trimestre"] == 1) 401 { 402 if($ultimo_trimestre == 1) 403 { 404 echo "<td>&nbsp;</td>"; 405 echo "<td>&nbsp;</td>"; 406 echo "</tr>"; 407 } 408 if($ultimo_trimestre == 2) 409 { 410 echo "<td>&nbsp;</td>"; 411 echo "</tr>"; 412 } 413 $sql = "SELECT nombre FROM asignatura WHERE 414 codigoasignatura = '".$row["asignatura"]."'"; 415 $asignatura = consulta($sql,$conn); 416 $asignatura = siguiente($asignatura); 417 echo "<tr>"; 418 echo "<th scope='row'>".tohtml($asignatura["nombre"])."< 419 /th>"; 420 echo "<td>".$row["nota"]."</td>"; 421 $ultimo_trimestre = 1; 422 423 424 } 425 if($row["trimestre"] == 2) 426 { 427 $ultimo_trimestre = 2; 428 echo "<td>".$row["nota"]."</td>"; 429 } 430 if($row["trimestre"] == 3) 431 { 432 $ultimo_trimestre = 3; 433 echo "<td>".$row["nota"]."</td>"; 434 echo "</tr>"; 435 } 436 } 437 desconectar($conn); 438 } 439 440 function rellenar_tabla_profesores() 441 { 442 $conn = Conectar(); 443 $sql = "SELECT * FROM alumno A, grupo G WHERE A.login = '" . 444 $_SESSION["id"]."' AND A.curso = G.curso AND A.letra = G. 445 letra "; //Obtenemos el grupo 446 $grupo = consulta($sql,$conn); 447 $grupo = siguiente($grupo); 448 $sql = "SELECT * FROM impartida I, asignatura A, imparte IM, 449 profesor P WHERE I.curso = '".$grupo["curso"]."' AND I. 450 letra = '".$grupo["letra"]."' AND I.asignatura = A. 451 codigoasignatura AND A.codigoasignatura = IM.asignatura AND 452 IM.profesor = P.login ORDER BY nombre"; 453 $res = consulta($sql,$conn); 454 echo "sql vale: $sql<br>\n"; 455 while($row=siguiente($res)) 456 { 457 echo "<tr>"; 458 echo "<td>".tohtml($row["nombre"])."</td>"; 459 $sql = "SELECT * FROM usuario WHERE login = '".$row[ 460 "login"]."'";

Page 174: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 172

461 $profe = consulta($sql,$conn); 462 $profe = siguiente($profe); 463 echo "<td>".tohtml($profe["apellido1"]." ".$profe[ 464 "apellido2"].", ".$profe["nombre"])."</td>"; 465 echo "<td>".tohtml($row["tutorias"])."</td>"; 466 echo "<td><a href='mailto:".tohtml($row["email"])."'>". 467 tohtml($row["email"])."</a></td>"; 468 469 echo "</tr>"; 470 } 471 desconectar($conn); 472 } 473 474 function poner_anuncios_tablon() 475 { 476 $conn = Conectar(); 477 $sql = "SELECT * FROM anuncio ORDER BY idanuncio DESC"; 478 $anuncios = consulta($sql, $conn); 479 $anuncios_mostrados = 0; 480 $anuncios_amostrar = 10; 481 while($row = siguiente($anuncios)) 482 { 483 if($anuncios_mostrados >= $anuncios_amostrar) 484 break; 485 $anuncios_mostrados++; 486 $sql = "SELECT * FROM usuario WHERE login = '".$row["login"]."'"; 487 $usuario = consulta($sql,$conn); 488 $usuario = siguiente($usuario); 489 echo "<tr>"; 490 if($anuncios_mostrados>=3) 491 echo "<td></td>"; 492 echo "<td class='general'><p class='anuncioTitulo'>".tohtml($row["titulo"] 493 )." </p><br/>"; 494 echo "<span class='anuncioNombre'>".tohtml($usuario["nombre"])." ".tohtml( 495 $usuario["apellido1"])."</span> <span class='anuncioFecha'>- ".$row[ 496 "fecha"]."</span> </td>"; 497 echo "<td class='general'>&nbsp;</td>"; 498 echo "</tr>"; 499 500 echo "<tr>"; 501 echo "<td class='general'><p class='anuncio'><span class='anuncioTexto'> 502 ".tohtml($row["texto"])."</span></p></td>"; 503 echo "<td class='general'>&nbsp;</td>"; 504 echo "</tr>"; 505 //echo "<tr>"; 506 //echo "<td colspan='2' class='general'>&nbsp;</td>"; 507 //echo "</tr>"; 508 } 509 desconectar($conn); 510 } 511 512 function nombre_conectado() 513 { 514 515 $dp = Conectar(); 516 $sql = 'SELECT * FROM usuario WHERE login ="' . $_SESSION[ 517 "id"] .'"'; 518 $resultado = consulta($sql, $dp); 519 $row = siguiente($resultado); 520 echo tohtml($row['apellido1'] . " " . $row['apellido2'] . ", 521 " . $row['nombre']); 522 desconectar($dp); 523 } 524 525 ?>

Page 175: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 173

intranetAlumno.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 require_once ("Alumno_inc.php"); 6 ?> 7 8 9 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 10 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 11 <html xmlns="http://www.w3.org/1999/xhtml"> 12 <head> 13 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 14 <title>CP Emilio Lluch</title> 15 <link href="css/general.css" rel="stylesheet" type="text/css" /> 16 17 <script type="text/javascript" src="./js/fecha.js"> </script> 18 19 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 20 </head> 21 22 <body onload="javascript:displayTime();"> 23 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 24 <tr> 25 <td style="width: 150px;" class="logo">&nbsp;</td> 26 <td colspan="2" class="titulo">&nbsp;</td> 27 </tr> 28 <tr> 29 <td class="fecha">&nbsp;</td> 30 <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> 31 </tr> 32 <tr> 33 <td class="menu"> 34 <ul> 35 <li><a href="#">Inicio</a></li> 36 <li><a href="Alumno_horario.php">Horario</a></li> 37 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 38 <li><a href="Alumno_profes.php">Listado profesores </a></li> 39 <li><a href="Alumno_notas.php">Notas</a></li> 40 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 41 <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> 42 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 43 <li><a href="Alumno_tablon.php">Tabl&oacute;n de anuncios </a></li> 44 </ul> </td> 45 <td class="general"><h1>Intranet alumno </h1> 46 <p> 47 <?php 48 nombre_conectado(); 49 ?> 50 </p> 51 </td> 52 <td class="general">&nbsp;</td> 53 </tr> 54 <tr> 55 <td> 56 <p> 57 <?php 58 bienvenido(); 59 ?> 60 </p> 61 </td> 62 <td colspan="2" class="noticias"><h3>&nbsp;</h3> 63 <h3>Eventos del curso </h3> 64 65 <?php 66 rellenar_eventos_curso(); 67 ?> 68 69 <p>&nbsp; </p></td> 70 </tr> 71 </table> 72 </body> 73 </html>

Page 176: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 174

Alumno_horario.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 6 require_once ("Alumno_inc.php"); 7 ?> 8 9 10 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 11 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 12 <html xmlns="http://www.w3.org/1999/xhtml"> 13 <head> 14 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 15 <title>CP Emilio Lluch</title> 16 <link href="css/general.css" rel="stylesheet" type="text/css" /> 17 18 <script type="text/javascript" src="./js/fecha.js"> </script> 19 20 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 21 <link href="css/Alumno_horario.css" rel="stylesheet" type="text/css" /> 22 </head> 23 24 <body onload="javascript:displayTime();"> 25 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 26 <tr> 27 <td class="logo">&nbsp;</td> 28 <td colspan="2" class="titulo">&nbsp;</td> 29 </tr> 30 <tr> 31 <td class="fecha">&nbsp;</td> 32 <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> 33 </tr> 34 <tr> 35 <td class="menu"> 36 <ul> 37 <li><a href="intranetAlumno.php">Inicio</a></li> 38 <li><a href="Alumno_horario.php">Horario</a></li> 39 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 40 <li><a href="Alumno_profes.php">Listado profesores </a></li> 41 <li><a href="Alumno_notas.php">Notas</a></li> 42 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 43 <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> 44 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 45 <li><a href="Alumno_tablon.php">Tabl&oacute;n de anuncios </a></li> 46 </ul> </td> 47 <td class="general"><h1>Horario</h1> 48 <?php 49 $conn = Conectar(); 50 $sql = "SELECT * FROM alumno WHERE login = '".$_SESSION["id"]."'"; 51 $alumno = consulta($sql, $conn); 52 $alumno = siguiente($alumno); 53 $sql = "SELECT * FROM impartida I, asignatura A WHERE I.curso = '". 54 $alumno["curso"]."' AND I.letra = '".$alumno["letra"]."' AND A. 55 codigoasignatura = I.asignatura"; 56 57 58 59 ?> 60 61 <table class="tabla" width="100%" border="1"> 62 <tr> 63 <th scope="col">&nbsp;</th> 64 <th scope="col">Lunes</th> 65 <th scope="col">Martes</th> 66 <th scope="col">Mi&eacute;rcoles</th> 67 <th scope="col">Jueves</th> 68 <th scope="col">Viernes</th> 69 </tr> 70 <tr> 71 <th scope="row">9:00-10:00</th> 72 <td>&nbsp; 73 <?php 74 $asignaturas = consulta($sql,$conn); 75 while($row = siguiente($asignaturas))

Page 177: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 175

76 { 77 $horario = split(" ", $row['horario']); 78 for($i = 0; $i < count($horario); $i+=2) 79 { 80 if($horario[$i] == 'Lunes') 81 if($horario[$i+1] == "9") 82 { 83 echo tohtml($row['nombre']); 84 break; 85 } 86 } 87 88 } 89 ?> </td> 90 <td>&nbsp; 91 <?php 92 $asignaturas = consulta($sql,$conn); 93 while($row = siguiente($asignaturas)) 94 { 95 $horario = split(" ", $row['horario']); 96 for($i = 0; $i < count($horario); $i+=2) 97 { 98 if($horario[$i] == 'Martes') 99 if($horario[$i+1] == "9") 100 { 101 echo tohtml($row['nombre']); 102 break; 103 } 104 } 105 106 } 107 ?> </td> 108 <td>&nbsp; 109 <?php 110 $asignaturas = consulta($sql,$conn); 111 while($row = siguiente($asignaturas)) 112 { 113 $horario = split(" ", $row['horario']); 114 for($i = 0; $i < count($horario); $i+=2) 115 { 116 if($horario[$i] == 'Miércoles') 117 if($horario[$i+1] == "9") 118 { 119 echo tohtml($row['nombre']); 120 break; 121 } 122 } 123 124 } 125 ?> </td> 126 <td>&nbsp; 127 <?php 128 $asignaturas = consulta($sql,$conn); 129 while($row = siguiente($asignaturas)) 130 { 131 $horario = split(" ", $row['horario']); 132 for($i = 0; $i < count($horario); $i+=2) 133 { 134 if($horario[$i] == 'Jueves') 135 if($horario[$i+1] == "9") 136 { 137 echo tohtml($row['nombre']); 138 break; 139 } 140 } 141 142 } 143 ?> </td> 144 <td>&nbsp; 145 <?php 146 $asignaturas = consulta($sql,$conn); 147 while($row = siguiente($asignaturas)) 148 { 149 $horario = split(" ", $row['horario']); 150 for($i = 0; $i < count($horario); $i+=2) 151 { 152 if($horario[$i] == 'Viernes')

Page 178: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 176

153 if($horario[$i+1] == "9") 154 { 155 echo tohtml($row['nombre']); 156 break; 157 } 158 } 159 160 } 161 ?> 162 </td> 163 </tr> 164 <tr> 165 <th scope="row">10:00-11:00</th> 166 <td>&nbsp; 167 <?php 168 $asignaturas = consulta($sql,$conn); 169 while($row = siguiente($asignaturas)) 170 { 171 $horario = split(" ", $row['horario']); 172 for($i = 0; $i < count($horario); $i+=2) 173 { 174 if($horario[$i] == 'Lunes') 175 if($horario[$i+1] == "10") 176 { 177 echo tohtml($row['nombre']); 178 break; 179 } 180 } 181 182 } 183 ?> </td> 184 <td>&nbsp; 185 <?php 186 $asignaturas = consulta($sql,$conn); 187 while($row = siguiente($asignaturas)) 188 { 189 $horario = split(" ", $row['horario']); 190 for($i = 0; $i < count($horario); $i+=2) 191 { 192 if($horario[$i] == 'Martes') 193 if($horario[$i+1] == "10") 194 { 195 echo tohtml($row['nombre']); 196 break; 197 } 198 } 199 200 } 201 ?> </td> 202 <td>&nbsp; 203 <?php 204 $asignaturas = consulta($sql,$conn); 205 while($row = siguiente($asignaturas)) 206 { 207 $horario = split(" ", $row['horario']); 208 for($i = 0; $i < count($horario); $i+=2) 209 { 210 if($horario[$i] == 'Miércoles') 211 if($horario[$i+1] == "10") 212 { 213 echo tohtml($row['nombre']); 214 break; 215 } 216 } 217 218 } 219 ?> </td> 220 <td>&nbsp; 221 <?php 222 $asignaturas = consulta($sql,$conn); 223 while($row = siguiente($asignaturas)) 224 { 225 $horario = split(" ", $row['horario']); 226 for($i = 0; $i < count($horario); $i+=2) 227 { 228 if($horario[$i] == 'Jueves') 229 if($horario[$i+1] == "10")

Page 179: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 177

230 { 231 echo tohtml($row['nombre']); 232 break; 233 } 234 } 235 236 } 237 ?> 238 </td> 239 <td>&nbsp; 240 <?php 241 $asignaturas = consulta($sql,$conn); 242 while($row = siguiente($asignaturas)) 243 { 244 $horario = split(" ", $row['horario']); 245 for($i = 0; $i < count($horario); $i+=2) 246 { 247 if($horario[$i] == 'Viernes') 248 if($horario[$i+1] == "10") 249 { 250 echo tohtml($row['nombre']); 251 break; 252 } 253 } 254 255 } 256 ?> 257 </td> 258 </tr> 259 <tr class="recreo"> 260 <th scope="row">11:00-11:30</th> 261 <td>Recreo</td> 262 <td>Recreo</td> 263 <td>Recreo</td> 264 <td>Recreo</td> 265 <td>Recreo</td> 266 </tr> 267 <tr> 268 <th scope="row">11:30-12:30</th> 269 <td>&nbsp; 270 <?php 271 $asignaturas = consulta($sql,$conn); 272 while($row = siguiente($asignaturas)) 273 { 274 $horario = split(" ", $row['horario']); 275 for($i = 0; $i < count($horario); $i+=2) 276 { 277 if($horario[$i] == 'Lunes') 278 if($horario[$i+1] == "11") 279 { 280 echo tohtml($row['nombre']); 281 break; 282 } 283 } 284 285 } 286 ?> </td> 287 <td>&nbsp; 288 <?php 289 $asignaturas = consulta($sql,$conn); 290 while($row = siguiente($asignaturas)) 291 { 292 $horario = split(" ", $row['horario']); 293 for($i = 0; $i < count($horario); $i+=2) 294 { 295 if($horario[$i] == 'Martes') 296 if($horario[$i+1] == "11") 297 { 298 echo tohtml($row['nombre']); 299 break; 300 } 301 } 302 303 } 304 ?> </td> 305 <td>&nbsp; 306 <?php

Page 180: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 178

307 $asignaturas = consulta($sql,$conn); 308 while($row = siguiente($asignaturas)) 309 { 310 $horario = split(" ", $row['horario']); 311 for($i = 0; $i < count($horario); $i+=2) 312 { 313 if($horario[$i] == 'Miércoles') 314 if($horario[$i+1] == "11") 315 { 316 echo tohtml($row['nombre']); 317 break; 318 } 319 } 320 321 } 322 ?> </td> 323 <td>&nbsp; 324 <?php 325 $asignaturas = consulta($sql,$conn); 326 while($row = siguiente($asignaturas)) 327 { 328 $horario = split(" ", $row['horario']); 329 for($i = 0; $i < count($horario); $i+=2) 330 { 331 if($horario[$i] == 'Jueves') 332 if($horario[$i+1] == "11") 333 { 334 echo tohtml($row['nombre']); 335 break; 336 } 337 } 338 339 } 340 ?> 341 </td> 342 <td>&nbsp; 343 <?php 344 $asignaturas = consulta($sql,$conn); 345 while($row = siguiente($asignaturas)) 346 { 347 $horario = split(" ", $row['horario']); 348 for($i = 0; $i < count($horario); $i+=2) 349 { 350 if($horario[$i] == 'Viernes') 351 if($horario[$i+1] == "11") 352 { 353 echo tohtml($row['nombre']); 354 break; 355 } 356 } 357 358 } 359 ?> 360 </td> 361 </tr> 362 <tr class="comida"> 363 <th scope="row">12:30-15:00</th> 364 <td>Comida</td> 365 <td>Comida</td> 366 <td>Comida</td> 367 <td>Comida</td> 368 <td>Comida</td> 369 </tr> 370 <tr> 371 <th scope="row">15:00-16:00</th> 372 <td>&nbsp; 373 <?php 374 $asignaturas = consulta($sql,$conn); 375 while($row = siguiente($asignaturas)) 376 { 377 $horario = split(" ", $row['horario']); 378 for($i = 0; $i < count($horario); $i+=2) 379 { 380 if($horario[$i] == 'Lunes') 381 if($horario[$i+1] == "15") 382 { 383 echo tohtml($row['nombre']);

Page 181: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 179

384 break; 385 } 386 } 387 388 } 389 ?> </td> 390 <td>&nbsp; 391 <?php 392 $asignaturas = consulta($sql,$conn); 393 while($row = siguiente($asignaturas)) 394 { 395 $horario = split(" ", $row['horario']); 396 for($i = 0; $i < count($horario); $i+=2) 397 { 398 if($horario[$i] == 'Martes') 399 if($horario[$i+1] == "15") 400 { 401 echo tohtml($row['nombre']); 402 break; 403 } 404 } 405 406 } 407 ?> </td> 408 <td>&nbsp; 409 <?php 410 $asignaturas = consulta($sql,$conn); 411 while($row = siguiente($asignaturas)) 412 { 413 $horario = split(" ", $row['horario']); 414 for($i = 0; $i < count($horario); $i+=2) 415 { 416 if($horario[$i] == 'Miércoles') 417 if($horario[$i+1] == "15") 418 { 419 echo tohtml($row['nombre']); 420 break; 421 } 422 } 423 424 } 425 ?> </td> 426 <td>&nbsp; 427 <?php 428 $asignaturas = consulta($sql,$conn); 429 while($row = siguiente($asignaturas)) 430 { 431 $horario = split(" ", $row['horario']); 432 for($i = 0; $i < count($horario); $i+=2) 433 { 434 if($horario[$i] == 'Jueves') 435 if($horario[$i+1] == "15") 436 { 437 echo tohtml($row['nombre']); 438 break; 439 } 440 } 441 442 } 443 ?> 444 </td> 445 <td>&nbsp; 446 <?php 447 $asignaturas = consulta($sql,$conn); 448 while($row = siguiente($asignaturas)) 449 { 450 $horario = split(" ", $row['horario']); 451 for($i = 0; $i < count($horario); $i+=2) 452 { 453 if($horario[$i] == 'Viernes') 454 if($horario[$i+1] == "15") 455 { 456 echo tohtml($row['nombre']); 457 break; 458 } 459 } 460

Page 182: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 180

461 } 462 ?> 463 </td> 464 </tr> 465 <tr> 466 <th scope="row">16:00-17:00</th> 467 <td>&nbsp; 468 <?php 469 $asignaturas = consulta($sql,$conn); 470 while($row = siguiente($asignaturas)) 471 { 472 $horario = split(" ", $row['horario']); 473 for($i = 0; $i < count($horario); $i+=2) 474 { 475 if($horario[$i] == 'Lunes') 476 if($horario[$i+1] == "16") 477 { 478 echo tohtml($row['nombre']); 479 break; 480 } 481 } 482 483 } 484 ?> </td> 485 <td>&nbsp; 486 <?php 487 $asignaturas = consulta($sql,$conn); 488 while($row = siguiente($asignaturas)) 489 { 490 $horario = split(" ", $row['horario']); 491 for($i = 0; $i < count($horario); $i+=2) 492 { 493 if($horario[$i] == 'Martes') 494 if($horario[$i+1] == "16") 495 { 496 echo tohtml($row['nombre']); 497 break; 498 } 499 } 500 501 } 502 ?> </td> 503 <td>&nbsp; 504 <?php 505 $asignaturas = consulta($sql,$conn); 506 while($row = siguiente($asignaturas)) 507 { 508 $horario = split(" ", $row['horario']); 509 for($i = 0; $i < count($horario); $i+=2) 510 { 511 if($horario[$i] == 'Miércoles') 512 if($horario[$i+1] == "16") 513 { 514 echo tohtml($row['nombre']); 515 break; 516 } 517 } 518 519 } 520 ?></td> 521 <td>&nbsp; 522 <?php 523 $asignaturas = consulta($sql,$conn); 524 while($row = siguiente($asignaturas)) 525 { 526 $horario = split(" ", $row['horario']); 527 for($i = 0; $i < count($horario); $i+=2) 528 { 529 if($horario[$i] == 'Jueves') 530 if($horario[$i+1] == "16") 531 { 532 echo tohtml($row['nombre']); 533 break; 534 } 535 } 536 537 }

Page 183: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 181

538 ?> 539 </td> 540 <td>&nbsp; 541 <?php 542 $asignaturas = consulta($sql,$conn); 543 while($row = siguiente($asignaturas)) 544 { 545 $horario = split(" ", $row['horario']); 546 for($i = 0; $i < count($horario); $i+=2) 547 { 548 if($horario[$i] == 'Viernes') 549 if($horario[$i+1] == "16") 550 { 551 echo tohtml($row['nombre']); 552 break; 553 } 554 } 555 556 } 557 desconectar($conn); 558 ?> 559 </td> 560 </tr> 561 </table> 562 <p>&nbsp;</p></td> 563 <td class="general">&nbsp;</td> 564 </tr> 565 <tr> 566 <td> 567 <p> 568 <?php 569 570 bienvenido(); 571 ?> 572 <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesi&oacute;n</a> 573 </p> 574 </td> 575 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 576 577 <?php 578 579 rellenar_eventos_curso(); 580 ?> 581 </td> 582 </tr> 583 </table> 584 </body> 585 </html>

Page 184: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 182

Alumno_alumnos.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 6 require_once ("Alumno_inc.php"); 7 ?> 8 9 10 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 11 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 12 <html xmlns="http://www.w3.org/1999/xhtml"> 13 <head> 14 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 15 <title>CP Emilio Lluch</title> 16 <link href="css/general.css" rel="stylesheet" type="text/css" /> 17 18 <script type="text/javascript" src="./js/fecha.js"> </script> 19 20 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 21 </head> 22 23 <body onload="javascript:displayTime();"> 24 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 25 <tr> 26 <td width="150" class="logo">&nbsp;</td> 27 <td colspan="2" class="titulo">&nbsp;</td> 28 </tr> 29 <tr> 30 <td class="fecha">&nbsp;</td> 31 <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> 32 </tr> 33 <tr> 34 <td class="menu"> 35 <ul> 36 <li><a href="intranetAlumno.php">Inicio</a></li> 37 <li><a href="Alumno_horario.php">Horario</a></li> 38 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 39 <li><a href="Alumno_profes.php">Listado profesores </a></li> 40 <li><a href="Alumno_notas.php">Notas</a></li> 41 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 42 <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> 43 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 44 <li><a href="Alumno_tablon.php">Tabl&oacute;n de anuncios </a></li> 45 </ul> </td> 46 <td class="general"><h1>Listado de alumnos </h1> 47 <?php 48 poner_datos_grupo(); 49 ?> 50 51 52 <table width="100%" border="1"> 53 <tr> 54 <th scope="col">Nombre</th> 55 <th scope="col">Direcci&oacute;n</th> 56 <th scope="col">Poblaci&oacute;n</th> 57 <th scope="col">Tel&eacute;fono</th> 58 </tr> 59 60 <?php 61 rellenar_tabla_alumnos(); 62 ?> 63 64 </table> <p>&nbsp;</p></td> 65 <td class="general">&nbsp;</td> 66 </tr> 67 <tr> 68 <td> 69 <p> 70 <?php 71 bienvenido(); 72 ?> 73 <br><a href="cerrar_sesion_Alumno.php">Cerrar sesi&oacute;n</a>

Page 185: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 183

74 </p> 75 </td> 76 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 77 <p> 78 <?php 79 80 rellenar_eventos_curso(); 81 ?> 82 </p></td> 83 </tr> 84 </table> 85 </body> 86 </html>

Page 186: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 184

Alumno_profes.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 require_once ("Alumno_inc.php"); 6 ?> 7 8 9 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 10 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 11 <html xmlns="http://www.w3.org/1999/xhtml"> 12 <head> 13 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 14 <title>CP Emilio Lluch</title> 15 <link href="css/general.css" rel="stylesheet" type="text/css" /> 16 17 <script type="text/javascript" src="./js/fecha.js"> </script> 18 19 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 20 </head> 21 22 <body onload="javascript:displayTime();"> 23 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 24 <tr> 25 <td style="width: 150px;" class="logo">&nbsp;</td> 26 <td colspan="2" class="titulo">&nbsp;</td> 27 </tr> 28 <tr> 29 <td class="fecha">&nbsp;</td> 30 <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> 31 </tr> 32 <tr> 33 <td class="menu"> 34 <ul> 35 <li><a href="intranetAlumno.php">Inicio</a></li> 36 <li><a href="Alumno_horario.php">Horario</a></li> 37 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 38 <li><a href="Alumno_profes.php">Listado profesores </a></li> 39 <li><a href="Alumno_notas.php">Notas</a></li> 40 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 41 <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> 42 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 43 <li><a href="Alumno_tablon.php">Tabl&oacute;n de anuncios </a></li> 44 </ul> </td> 45 <td class="general"><h1>Listado de profesores </h1> 46 <p>&nbsp;</p> 47 <?php 48 poner_datos_grupo() 49 ?> 50 51 52 <table width="100%" border="1"> 53 <tr> 54 <th scope="col">Asignatura</th> 55 <th scope="col">Profesor</th> 56 <th scope="col">Tutorias</th> 57 <th scope="col">E-mail</th> 58 </tr> 59 60 <?php 61 rellenar_tabla_profesores(); 62 ?> 63 64 </table></td> 65 <td class="general">&nbsp;</td> 66 </tr> 67 <tr> 68 <td> 69 <p> 70 <?php 71 bienvenido(); 72 ?> 73 <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesi&oacute;n</a>

Page 187: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 185

74 </p> 75 </td> 76 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 77 78 <?php 79 rellenar_eventos_curso() 80 ?> 81 </td> 82 </tr> 83 </table> 84 </body> 85 </html>

Page 188: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 186

Alumno_notas.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 require_once ("Alumno_inc.php"); 6 ?> 7 8 9 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 10 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 11 <html xmlns="http://www.w3.org/1999/xhtml"> 12 <head> 13 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 14 <title>CP Emilio Lluch</title> 15 <link href="css/general.css" rel="stylesheet" type="text/css" /> 16 17 <script type="text/javascript" src="./js/fecha.js"> </script> 18 19 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 20 </head> 21 22 <body onload="javascript:displayTime();"> 23 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 24 <tr> 25 <td style="width: 150px;" class="logo">&nbsp;</td> 26 <td colspan="2" class="titulo">&nbsp;</td> 27 </tr> 28 <tr> 29 <td class="fecha">&nbsp;</td> 30 <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> 31 </tr> 32 <tr> 33 <td class="menu"> 34 <ul> 35 <li><a href="intranetAlumno.php">Inicio</a></li> 36 <li><a href="Alumno_horario.php">Horario</a></li> 37 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 38 <li><a href="Alumno_profes.php">Listado profesores </a></li> 39 <li><a href="Alumno_notas.php">Notas</a></li> 40 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 41 <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> 42 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 43 <li><a href="Alumno_tablon.php">Tabl&oacute;n de anuncios </a></li> 44 </ul> </td> 45 <td class="general"><h1>Notas</h1> 46 <?php 47 curso_actual(); 48 ?> 49 <table width="100%" border="1"> 50 <tr> 51 <th scope="col">Asignatura</th> 52 <th scope="col">1</th> 53 <th scope="col">2</th> 54 <th scope="col">3</th> 55 </tr> 56 <?php 57 rellenar_tabla_notas(); 58 ?> 59 </table> <p>&nbsp;</p></td> 60 <td class="general">&nbsp;</td> 61 </tr> 62 <tr> 63 <td> 64 <p> 65 <?php 66 bienvenido(); 67 ?> 68 <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesi&oacute;n</a> 69 </p> 70 </td> 71 <td colspan="2" class="noticias"><p style=' font-weight: bold;'>Eventos 72 del curso </p> 73

Page 189: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 187

74 <?php 75 76 rellenar_eventos_curso() 77 ?> 78 </td> 79 </tr> 80 </table> 81 </body> 82 </html>

Page 190: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 188

Alumno_faltas.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 6 require_once ("Alumno_inc.php"); 7 ?> 8 9 10 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 11 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 12 <html xmlns="http://www.w3.org/1999/xhtml"> 13 <head> 14 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 15 <title>CP Emilio Lluch</title> 16 <link href="css/general.css" rel="stylesheet" type="text/css" /> 17 18 <script type="text/javascript" src="./js/fecha.js"> </script> 19 20 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 21 </head> 22 23 <body onload="javascript:displayTime();"> 24 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 25 <tr> 26 <td style="width: 150px;" class="logo">&nbsp;</td> 27 <td colspan="2" class="titulo">&nbsp;</td> 28 </tr> 29 <tr> 30 <td class="fecha">&nbsp;</td> 31 <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> 32 </tr> 33 <tr> 34 <td class="menu"> 35 <ul> 36 <li><a href="intranetAlumno.php">Inicio</a></li> 37 <li><a href="Alumno_horario.php">Horario</a></li> 38 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 39 <li><a href="Alumno_profes.php">Listado profesores </a></li> 40 <li><a href="Alumno_notas.php">Notas</a></li> 41 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 42 <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> 43 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 44 <li><a href="Alumno_tablon.php">Tabl&oacute;n de anuncios </a></li> 45 </ul> </td> 46 <td class="general"><h1>Faltas de asistencia </h1> 47 48 <?php 49 rellenar_tabla_faltas(); 50 ?> 51 52 <p>&nbsp;</p></td> 53 <td class="general">&nbsp;</td> 54 </tr> 55 <tr> 56 <td> 57 <p> 58 <?php 59 60 bienvenido(); 61 ?> 62 <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesi&oacute;n</a> 63 </p> 64 </td> 65 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 66 67 <?php 68 rellenar_eventos_curso(); 69 ?> 70 </td> 71 </tr> 72 </table> 73 </body>

Page 191: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 189

74 </html>

Page 192: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 190

Alumno_menu.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 require_once ("Alumno_inc.php"); 6 ?> 7 8 9 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 10 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 11 <html xmlns="http://www.w3.org/1999/xhtml"> 12 <head> 13 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 14 <title>CP Emilio Lluch</title> 15 <link href="css/general.css" rel="stylesheet" type="text/css" /> 16 17 <script type="text/javascript" src="./js/fecha.js"> </script> 18 19 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 20 </head> 21 22 <body onload="javascript:displayTime();"> 23 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 24 <tr> 25 <td style="width: 150px;" class="logo">&nbsp;</td> 26 <td colspan="2" class="titulo">&nbsp;</td> 27 </tr> 28 <tr> 29 <td class="fecha">&nbsp;</td> 30 <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> 31 </tr> 32 <tr> 33 <td class="menu"> 34 <ul> 35 <li><a href="intranetAlumno.php">Inicio</a></li> 36 <li><a href="Alumno_horario.php">Horario</a></li> 37 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 38 <li><a href="Alumno_profes.php">Listado profesores </a></li> 39 <li><a href="Alumno_notas.php">Notas</a></li> 40 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 41 <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> 42 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 43 <li><a href="Alumno_tablon.php">Tabl&oacute;n de anuncios </a></li> 44 </ul> </td> 45 <td class="general"><h1>Men&uacute; semanal </h1> 46 <p><img src="img/menuJunio1.jpg" alt="menu" width="600" height="511" 47 longdesc="Menu del comedor del mes de junio" /></p></td> 48 <td class="general">&nbsp;</td> 49 </tr> 50 <tr> 51 <td> 52 <p> 53 <?php 54 bienvenido(); 55 ?> 56 <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesi&oacute;n</a> 57 </p> </td> 58 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 59 60 <?php 61 rellenar_eventos_curso(); 62 ?> 63 </td> 64 </tr> 65 </table> 66 </body> 67 </html>

Page 193: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 191

Alumno_instalaciones.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 6 require_once ("Alumno_inc.php"); 7 ?> 8 9 10 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 11 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 12 <html xmlns="http://www.w3.org/1999/xhtml"> 13 <head> 14 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 15 <title>CP Emilio Lluch</title> 16 <link href="css/general.css" rel="stylesheet" type="text/css" /> 17 18 <script type="text/javascript" src="./js/fecha.js"> </script> 19 <script type="text/javascript" src="./js/reservas.js"> </script> 20 21 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 22 </head> 23 24 <body onload="javascript:displayTime();"> 25 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 26 <tr> 27 <td style="width: 150px;" class="logo">&nbsp;</td> 28 <td colspan="2" class="titulo">&nbsp;</td> 29 </tr> 30 <tr> 31 <td class="fecha">&nbsp;</td> 32 <td colspan="2" class="fecha"> 33 <div id="campoHora">&nbsp;</div> 34 </td> 35 </tr> 36 <tr> 37 <td class="menu"> 38 <ul> 39 <li><a href="intranetAlumno.php">Inicio</a></li> 40 <li><a href="Alumno_horario.php">Horario</a></li> 41 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 42 <li><a href="Alumno_profes.php">Listado profesores </a></li> 43 <li><a href="Alumno_notas.php">Notas</a></li> 44 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 45 <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> 46 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 47 <li><a href="Alumno_tablon">Tabl&oacute;n de anuncios </a></li> 48 </ul> 49 </td> 50 <td class="general"> 51 <p>Reserva de instalaciones</p> 52 <h3>Instalaciones Reservadas</h3> 53 <table border='1'> 54 <tbody> 55 <?php 56 $ins = listado_reservas_instalaciones(); 57 if ($ins == null) 58 { 59 echo "<tr><td><b>No hay instalaciones reservadas</b></td>< 60 /tr>\n"; 61 echo "</tbody>\n"; 62 } 63 else 64 { 65 echo "<tr>\n"; 66 echo " <th style='width: 140px;'>Instalaci&oacute;n</th> 67 \n"; 68 echo " <th style='width: 100px;'>Fecha</th>\n"; 69 echo " <th style='width: 425px;'>Proposito</th>\n"; 70 echo " <th style='width: 90px;'>Normas</th>\n"; 71 echo " <th style='width: 80px;'>&nbsp;</th>\n"; 72 echo "</tr>\n"; 73 echo "</tbody>\n";

Page 194: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 192

74 foreach ($ins as $actual) 75 { 76 $temp = convertir_fecha($actual["fecha"]); 77 $fecha = $fecha = split(" ",$temp); 78 echo "<tr>\n"; 79 echo "<td>" . tohtml($actual["instalacion"]) . "</td> 80 \n"; 81 echo "<td>" . $fecha[0] . "</td>\n"; 82 echo "<td>" . tohtml($actual["proposito"]) . "</td>\n"; 83 echo "<td><a href='" . $actual["normas"] . "'>Normativa< 84 /a></td>\n"; 85 echo "<td>\n"; 86 echo " <form method='get' 87 action='/webcole/Alumno_anular_reserva.php' 88 name='anular'> \n"; 89 echo " <div style='text-align: center;'> \n"; 90 echo " <button value='" . $actual["idinst"] . 91 "' name='iditem' onclick='javascript:enviar();'>Anular< 92 /button> \n"; 93 echo " </div> \n"; 94 echo " <input name='fecha' type='hidden' value='" . 95 urlencode($actual["fecha"]) . "'> \n"; 96 echo " <input name='item' type='hidden' value='" . 97 INST . "'> \n"; 98 echo " </form> \n"; 99 echo "</td>\n"; 100 echo "</tr>\n"; 101 } 102 } 103 ?> 104 105 </table> 106 <br/> 107 108 109 <a href="/webcole/Alumno_reservar_instalacion.php">Reservar 110 instalaci&oacute;n</a></td> 111 <td class="general">&nbsp;</td> 112 </tr> 113 <tr> 114 <td> 115 <p><?php 116 //include("bd.php"); 117 $conn = Conectar(); 118 $sql = 'SELECT * FROM usuario WHERE login ="' . $_SESSION["id"] . 119 '"'; 120 $resultado = consulta($sql, $conn); 121 while($row = siguiente($resultado)) 122 echo 'Bienvenido ' . $row['nombre']; 123 ?> 124 <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesi&oacute;n</a> 125 </p> 126 </td> 127 <td colspan="2" class="noticias"> 128 <h3>Eventos del curso</h3> 129 <?php 130 131 $sql="SELECT * FROM evento WHERE titulo = 'Curso' ORDER BY fecha"; 132 $res=consulta($sql,$conn); 133 134 while($row = siguiente($res)) 135 { 136 $fecha=split("-",sacarFecha($row["fecha"])); 137 $fechaComparar = "".$fecha[2].$fecha[1].$fecha[0]; 138 if($fechaComparar >= date("Ymd")) 139 for($i=0; $i<3 && $i<numeroFilas($res);$i++) 140 echo "<p><span class='fechaNoticia'>".sacarFecha($row["fecha"]). 141 " </span>".tohtml($row["descripcion"])." </p>"; 142 } 143 desconectar($conn); 144 ?> 145 </td> 146 </tr> 147 </table> 148 </body> 149 </html>

Page 195: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 193

Alumno_reserva.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 6 require_once ("Alumno_inc.php"); 7 ?> 8 <?php 9 //obtener datos enviados por el formulario 10 $dia = $_REQUEST["dia"]; 11 $mes = $_REQUEST["mes"]; 12 $anyo = $_REQUEST["anyo"]; 13 $iditem = $_REQUEST["iditem"]; 14 $motivo = substr($_REQUEST["motivo"], 0, MAX_LENGTH_MOTIVO-1); 15 $item = $_REQUEST["item"]; 16 $login = $_SESSION["id"]; 17 18 19 //por si en futuro al reservar se tiene en cuenta la hora(de inicio) 20 $hora = 00; 21 $min = 00; 22 $seg = 00; 23 24 $error = ""; 25 $ano_hoy=date("Y"); 26 27 //¿Estan definadas las variables? 28 if (!isset($dia) || $dia < 0 || $dia > 31) 29 { 30 $error = "D&iacute;a no v&aacute;lido<br>\n"; 31 } 32 33 if (!isset($mes) || $mes < 1 || $mes > 12 ) 34 { 35 $error .= "Mes no v&aacute;lido<br>\n"; 36 } 37 //solo reservas en este año 38 if ( !isset($anyo) || $anyo != $ano_hoy ) 39 { 40 $error .= "A&ntilde;o no v&aacute;lido<br>\n"; 41 } 42 43 if (!isset($iditem) || $iditem ==-1 ) 44 { 45 $error .= "Instalaci&oacute;n no v&aacute;lida<br>\n"; 46 } 47 48 if (!isset($motivo) || strlen($motivo) < 5 ) 49 { 50 $error .= "Motivo insuficiente<br>\n"; 51 } 52 $item1 = INST; 53 54 if (!isset($item) && (strcmp($item,$item1) != 0 )) 55 { 56 $error .= "Tipo desconocido: $item : <br>\n"; 57 } 58 59 if (strlen($error) > 1) 60 { 61 $es_valido = false; 62 } 63 else 64 { 65 $es_valido = true; 66 $res = reservar_instalacion($login,$iditem,$dia,$mes,$anyo,$hora,$min, 67 $seg,$motivo, $item); 68 69 if (!$res) 70 { 71 $es_valido = false; 72 $error = "Se produjo un error inesperado en la reserva de la 73 instalaci&oacute;n<br>\n";

Page 196: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 194

74 } 75 } 76 77 78 79 80 ?> 81 82 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 83 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 84 <html xmlns="http://www.w3.org/1999/xhtml"> 85 <head> 86 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 87 <?php 88 //Ruta de retorno que utilizaremos aqui si todo fue bien 89 if ( $es_valido ) 90 { 91 echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; 92 URL=/webcole/Alumno_instalaciones.php\">\n"; 93 } 94 95 ?> 96 97 <title>CP Emilio Lluch</title> 98 <link href="css/general.css" rel="stylesheet" type="text/css" /> 99 100 <script type="text/javascript" src="./js/fecha.js"> </script> 101 102 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 103 </head> 104 105 <body onload="javascript:displayTime(); redirigir();"> 106 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 107 <tr> 108 <td width="150" class="logo">&nbsp;</td> 109 <td colspan="2" class="titulo">&nbsp;</td> 110 </tr> 111 <tr> 112 <td class="fecha">&nbsp;</td> 113 <td colspan="2" class="fecha"> 114 <div id="campoHora">&nbsp;</div> 115 </td> 116 </tr> 117 <tr> 118 <td class="menu"> 119 <ul> 120 <li><a href="intranetAlumno.php">Inicio</a></li> 121 <li><a href="Alumno_horario.php">Horario</a></li> 122 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 123 <li><a href="Alumno_profes.php">Listado profesores </a></li> 124 <li><a href="Alumno_notas.php">Notas</a></li> 125 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 126 <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> 127 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 128 <li><a href="Alumno_tablon">Tabl&oacute;n de anuncios </a></li> 129 </ul> 130 </td> 131 <td class="general"><?php 132 //Ruta de retorno que utilizaremos aqui si todo fue bien 133 134 echo "Se han producido los siguientes errores: <br> $error<br>\n"; 135 echo "<br>\n"; 136 echo "Pulsa <a href='/webcole/Alumno_reservar_instalacion.php'>aquí< 137 /a> para volver al formulario de reserva<br>\n"; 138 139 ?></td> 140 <td class="general">&nbsp;</td> 141 </tr> 142 <tr> 143 <td> 144 <p><?php 145 146 //include("bd.php"); 147 $dp = Conectar(); 148 $sql = 'SELECT * FROM usuario WHERE login ="' . $_SESSION["id"] . 149 '"'; 150 $resultado = consulta($sql, $dp);

Page 197: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 195

151 while($row = siguiente($resultado)) 152 echo 'Bienvenido ' . $row['nombre']; 153 154 desconectar($dp); 155 echo "<br>\n<a href='/webcole/cerrar_sesion.php'>Cerrar sesi&oacute; 156 n</a>"; 157 ?> 158 <br><a href="cerrar_sesion_Alumno.php">Cerrar sesi&oacute;n</a> 159 </p> 160 </td> 161 <td colspan="2" class="noticias"></td> 162 </tr> 163 </table> 164 </body> 165 </html>

Page 198: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 196

Alumno_reservar_instalacion.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 require_once "Alumno_inc.php"; 6 ?> 7 8 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. 9 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 10 <html xmlns="http://www.w3.org/1999/xhtml"> 11 <head> 12 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 13 14 <title>CP Emilio Lluch</title> 15 <link href="css/general.css" rel="stylesheet" type="text/css" /> 16 <link href="css/calendario.css" rel="stylesheet" type="text/css" /> 17 18 <script type="text/javascript" src="./js/fecha.js"> </script> 19 <script type="text/javascript" src="./js/reservas.js"> </script> 20 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 21 </head> 22 23 <body onload="javascript:displayTime();"> 24 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 25 <tr> 26 <td style="width: 150px;" class="logo">&nbsp;</td> 27 <td colspan="2" class="titulo">&nbsp;</td> 28 </tr> 29 <tr> 30 <td class="fecha">&nbsp;</td> 31 <td colspan="2" class="fecha"> 32 <div id="campoHora">&nbsp;</div> 33 </td> 34 </tr> 35 <tr> 36 <td class="menu"> 37 <ul> 38 <li><a href="intranetAlumno.php">Inicio</a></li> 39 <li><a href="Alumno_horario.php">Horario</a></li> 40 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 41 <li><a href="Alumno_profes.php">Listado profesores </a></li> 42 <li><a href="Alumno_notas.php">Notas</a></li> 43 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 44 <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> 45 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 46 <li><a href="Alumno_tablon">Tabl&oacute;n de anuncios </a></li> 47 </ul> 48 </td> 49 <td class="general">Intranet Alumno 50 <form method="get" action="/webcole/Alumno_reserva.php" 51 name="reservar"> 52 <?php 53 echo "<input type='hidden' name='item' value='" . INST . "' />\n"; 54 ?> 55 <table style="text-align: left; width: 700px; height: 284px;" 56 border="0" cellpadding="2" cellspacing="2"> 57 <tbody> 58 <tr> 59 <td style="width: 300px; text-align: right;"><span 60 style="font-weight: bold; text-align: right;"> 61 Selecciona una 62 instalaci&oacute;n</span></td> 63 <td style="width: 400px; text-align: left;"><select 64 name="iditem" 65 onchange="javascript:redirigir('<?php echo ALUM; ?> 66 ', '<?php echo strtolower(INST); ?>');"> 67 <option value='-1'>Selecciona una instalaci&oacute; 68 n</option> 69 <?php 70 //Comprobamos si llegamos aqui despues de elegir 71 una instalacion 72 $iditem = $_REQUEST["iditem"]; 73

Page 199: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 197

74 75 if (!isset($iditem)) 76 $iditem = -1; 77 78 $ins = listado_instalacion(); 79 foreach ($ins as $actual) 80 { 81 if ($actual["idinstalacion"] == $iditem) 82 { 83 echo "<option value='" . $actual[ 84 "idinstalacion"]. "' selected='selected'>" . 85 $actual["instalacion"] . "</option>\n"; 86 } 87 else 88 { 89 echo "<option value='" . $actual[ 90 "idinstalacion"]. "'>" . $actual[ 91 "instalacion"] . "</option>\n"; 92 } 93 } 94 ?> 95 </select></td> 96 </tr> 97 <tr> 98 <td style="width: 200px; text-align: right;"><span 99 style="font-weight: bold; ">Selecciona una fecha< 100 /span></td> 101 <td style="width: 400px;"><?php 102 require_once ("calendario_ins.php"); 103 104 //if (!$HTTP_POST_VARS && !$HTTP_GET_VARS){ 105 if ((!isset($_GET["nuevo_mes"])) || (!isset($_GET[ 106 "nuevo_mes"])) || (!isset($_GET["nuevo_mes"]))) 107 { 108 //echo "http no definidos<br>\n"; 109 $tiempo_actual = time(); 110 $mes = date("n", $tiempo_actual); 111 $ano = date("Y", $tiempo_actual); 112 $dia=date("d"); 113 $fecha=$ano . "-" . $mes . "-" . $dia; 114 }else { 115 //echo "http definidos<br>\n"; 116 $mes = $_GET["nuevo_mes"]; 117 $ano = $_GET["nuevo_ano"]; 118 $dia = $_GET["dia"]; 119 $fecha=$ano . "-" . $mes . "-" . $dia; 120 } 121 if (!isset($dia)) 122 { 123 $dia=date("d"); 124 } 125 if (!isset($mes)) 126 { 127 $mes = date("n", $tiempo_actual); 128 } 129 if (!isset($ano)) 130 { 131 $ano = date("Y", $tiempo_actual); 132 } 133 echo "<input type=\"hidden\" name=\"dia\" value=''/>\n"; 134 echo "<input type=\"hidden\" name='dia_c' value='$dia'/> 135 \n"; 136 echo "<input type=\"hidden\" name='mes' value='$mes'/> 137 \n"; 138 echo "<input type=\"hidden\" name='anyo' value='$ano'/> 139 \n"; 140 $tabla = fecha_reservas($iditem, INST); 141 if (!isset($tabla)) 142 { 143 //utilizamos una variable no inicializada 144 //mostrar_calendario tiene en cuenta si esa 145 variable 146 //no esta inicializada 147 mostrar_calendario($dia_c,$mes,$ano, 148 $variable_no_asignada, INST, ALUM); 149 } 150 else

Page 200: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 198

151 { 152 mostrar_calendario($dia_c,$mes,$ano, $tabla, INST, 153 ALUM); 154 } 155 ?> 156 </td> 157 </tr> 158 159 <tr> 160 <td style="font-weight: bold; text-align: right;">Fecha 161 seleccionada</td> 162 <td><input readonly="readonly" maxlength="15" 163 name="fecha" /></td> 164 </tr> 165 <tr> 166 <td style="width: 200px;text-align: right;font-weight: 167 bold;"><label>Motivo</label> 168 <br /> 169 <i>(m&aacute;ximo 1500 car&aacute;cteres)</i></td> 170 <td style="width: 400px;"><textarea cols="50" rows="2" 171 name="motivo" 172 onkeydown="if(document.reservar.motivo.value.length> 173 = longitud()){return false;}"></textarea> 174 </td> 175 </tr> 176 <tr> 177 <td style="width: 200px;">&nbsp;</td> 178 <td style="width: 400px; text-align: right;"> 179 <div align="left"><input type='button' name='Submit' 180 value='Enviar' 181 onclick="javascript:enviar();" /></div> 182 </td> 183 </tr> 184 </tbody> 185 </table> 186 </form> 187 </td> 188 <td class="general">&nbsp;</td> 189 </tr> 190 <tr> 191 <td><?php 192 //include("bd.php"); 193 $dp = Conectar(); 194 $sql = 'SELECT * FROM usuario WHERE login ="' . $_SESSION["id"] . 195 '"'; 196 $resultado = consulta($sql, $dp); 197 while($row = siguiente($resultado)) 198 echo 'Bienvenido ' . $row['nombre']; 199 200 desconectar($dp); 201 ?> 202 <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesi&oacute;n</a> 203 </td> 204 <td colspan="2" class="noticias"></td> 205 </tr> 206 </table> 207 </body> 208 </html>

Page 201: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 199

Alumno_tablon.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 require_once ("Alumno_inc.php"); 6 ?> 7 8 9 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 10 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 11 <html xmlns="http://www.w3.org/1999/xhtml"> 12 <head> 13 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 14 <title>CP Emilio Lluch</title> 15 <link href="css/general.css" rel="stylesheet" type="text/css" /> 16 17 <script type="text/javascript" src="./js/fecha.js"> </script> 18 19 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 20 </head> 21 22 <body onload="javascript:displayTime();"> 23 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 24 <tr> 25 <td style="width: 150px;" class="logo">&nbsp;</td> 26 <td colspan="3" class="titulo">&nbsp;</td> 27 </tr> 28 <tr> 29 <td class="fecha">&nbsp;</td> 30 <td colspan="3" class="fecha"><div id="campoHora">&nbsp;</div></td> 31 </tr> 32 <tr> 33 <td rowspan="5" class="menu"> 34 <ul> 35 <li><a href="intranetAlumno.php">Inicio</a></li> 36 <li><a href="Alumno_horario.php">Horario</a></li> 37 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 38 <li><a href="Alumno_profes.php">Listado profesores </a></li> 39 <li><a href="Alumno_notas.php">Notas</a></li> 40 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 41 <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> 42 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 43 <li><a href="Alumno_tablon.php">Tabl&oacute;n de anuncios </a></li> 44 </ul> </td> 45 <td colspan="2" class="general"><h1>Tabl&oacute;n de anuncios </h1> 46 <p>&nbsp;</p></td> 47 <td rowspan="5" class="general">&nbsp;</td> 48 </tr> 49 <?php 50 poner_anuncios_tablon(); 51 ?> 52 53 <tr> 54 <td></td> 55 <td colspan="2" class="general"><h3>Insertar nuevo anuncio</h3> 56 <form id="form1" method="post" action="Alumno_tablon_insertar.php"> 57 <div> 58 <label> 59 T&iacute;tulo 60 </label> 61 62 <br /> 63 <input type="text" name="titulo" /> 64 65 <p> 66 Texto 67 <br /> 68 <label> 69 <textarea name="texto" cols="60" rows="3"></textarea> 70 </label> 71 </p> 72 73 <p>

Page 202: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 200

74 <label> 75 <input type="submit" name="Submit" value="Insertar" /> 76 </label> 77 </p> 78 </div> 79 </form> <p>&nbsp; </p></td> 80 <td class="general"></td> 81 </tr> 82 <tr> 83 <td> 84 <p> 85 <?php 86 bienvenido(); 87 ?> 88 <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesi&oacute;n</a> 89 </p> </td> 90 <td colspan="3" class="noticias"><h3>Eventos del curso </h3> 91 92 <?php 93 94 rellenar_eventos_curso(); 95 ?> 96 </td> 97 </tr> 98 </table> 99 </body> 100 </html>

Page 203: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 201

Alumno_tablon_insertar.php 1 <?php 2 3 session_start(); 4 if($_SESSION["tipo"] != "Alumno") 5 header("Location: prohibido.php"); 6 7 $titulo = $_POST["titulo"]; 8 $texto = $_POST["texto"]; 9 $fecha = date("Y-m-d H:i:s"); 10 11 include("bd.php"); 12 $conn = Conectar(); 13 $sql = "SELECT * FROM anuncio ORDER BY idanuncio DESC"; 14 $num = consulta($sql,$conn); 15 if($num = siguiente($num)) 16 $idanun= $num["idanuncio"] + 1; 17 else 18 $idanun = 1; 19 $sql = "INSERT INTO `anuncio` ( `idanuncio` , `login` , `fecha` , `titulo` , 20 `texto` ) VALUES ('".$idanun."', '".$_SESSION["id"]."', '".$fecha."', '". 21 $titulo."', '".$texto."')"; 22 $insert = consulta($sql,$conn); 23 //echo "id".$_SESSION["id"]."error: " . mysql_error($conn); 24 Desconectar($conn); 25 26 ?> 27 <head> 28 <meta http-equiv="refresh" content="3;URL=Alumno_tablon.php"> 29 </head> 30 31 Insertando...

Page 204: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 202

Alumno_anular_reserva.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 require_once "Alumno_inc.php"; 6 // 7 $fecha = urldecode($_REQUEST["fecha"]); 8 $iditem = $_REQUEST["iditem"]; 9 $login = $_SESSION["id"]; 10 $item = $_REQUEST["item"]; 11 $error = ""; 12 $es_valido = true; 13 14 if ( !isset($login)) 15 { 16 header("Location: /webcole/prohibido.php"); 17 $es_valido = false; 18 } 19 //ya estara en el formato de mysql, 20 //si no es correcto sencillamente no se borrara el registro. 21 if ( !isset($fecha)) 22 { 23 $error .="Error en la Fecha. No valida<br>\n"; 24 $es_valido = false; 25 } 26 if ( !isset($iditem) || $iditem < 1 ) 27 { 28 $error .="Error en el codigo de instalacion. No valido<br>\n"; 29 $es_valido = false; 30 } 31 32 if ($es_valido) 33 { 34 $resultado = anular_reserva($login, $fecha, $iditem, $item); 35 if (!$resultado) 36 { 37 $error = "Han ocurrido problemas durante la anulacion de la reserva 38 <br>\n"; 39 $es_valido = false; 40 } 41 } 42 else 43 { 44 $error = "Han ocurrido errores en los parametros de anulacion<br>\n" . 45 $error; 46 //echo $error; 47 $es_valido = false; 48 } 49 ?> 50 51 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 52 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 53 <html xmlns="http://www.w3.org/1999/xhtml"> 54 <head> 55 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 56 <?php 57 if ($es_valido) 58 echo "<meta http-equiv=\"refresh\" content=\"5;URL=Alumno_instalaciones. 59 php\" />\n"; 60 ?> 61 <title>CP Emilio Lluch</title> 62 <link href="css/general.css" rel="stylesheet" type="text/css" /> 63 64 <script type="text/javascript" src="./js/fecha.js"> </script> 65 66 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 67 </head> 68 69 <body onload="javascript:displayTime();"> 70 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 71 <tr> 72 <td width="150" class="logo">&nbsp;</td> 73 <td colspan="2" class="titulo">&nbsp;</td>

Page 205: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 203

74 </tr> 75 <tr> 76 <td class="fecha">&nbsp;</td> 77 <td colspan="2" class="fecha"> 78 <div id="campoHora">&nbsp;</div> 79 </td> 80 </tr> 81 <tr> 82 <td class="menu"> 83 <ul> 84 <li><a href="intranetAlumno.php">Inicio</a></li> 85 <li><a href="Alumno_horario.php">Horario</a></li> 86 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 87 <li><a href="Alumno_profes.php">Listado profesores </a></li> 88 <li><a href="Alumno_notas.php">Notas</a></li> 89 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 90 <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> 91 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 92 <li><a href="Alumno_tablon">Tabl&oacute;n de anuncios </a></li> 93 </ul> 94 </td> 95 <td class="general">Intranet Alumno 96 <p><?php 97 if ($es_valido) 98 { 99 echo "Reservar anulada correctamente !!!!<br>\n"; 100 echo "<p>En 5 segundos ser&aacute;s a la p&aacute;gina de 101 instalaciones. Si no pulsa"; 102 echo "<a href=\"/webcole/Alumno_instalaciones.php\"> aqu&iacute; 103 </a></p>\n"; 104 } 105 else 106 { 107 echo "Han ocurrido problemas durante la anulacion de la reserva< 108 br>\n"; 109 echo "Errores: $error<br>\n"; 110 111 echo "Pulsa <a href=\"/webcole/Alumno_instalaciones.php\"> 112 aqu&iacute;</a> para regresar a la p&aacute;gina de reservas</p> 113 \n"; 114 } 115 ?></p> 116 117 </td> 118 <td class="general">&nbsp;</td> 119 </tr> 120 <tr> 121 <td> 122 <p><?php 123 //include("bd.php"); 124 $dp = Conectar(); 125 $sql = 'SELECT * FROM usuario WHERE login ="' . $_SESSION["id"] . 126 '"'; 127 $resultado = consulta($sql, $dp); 128 while($row = siguiente($resultado)) 129 echo 'Bienvenido ' . $row['nombre']; 130 131 desconectar($dp); 132 ?> 133 <br><a href="cerrar_sesion_Alumno.php">Cerrar sesi&oacute;n</a> 134 </p> 135 </td> 136 <td colspan="2" class="noticias"></td> 137 </tr> 138 </table> 139 </body> 140 </html>

Page 206: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 204

calendario_faltas.php 1 <?php 2 include_once("bd.php"); 3 4 function calcula_numero_dia_semana($dia,$mes,$ano){ 5 $numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano)); 6 if ($numerodiasemana == 0) 7 $numerodiasemana = 6; 8 else 9 $numerodiasemana--; 10 return $numerodiasemana; 11 } 12 13 //funcion que devuelve el último día de un mes y año dados 14 function ultimoDia($mes,$ano){ 15 $ultimo_dia=28; 16 while (checkdate($mes,$ultimo_dia + 1,$ano)){ 17 $ultimo_dia++; 18 } 19 return $ultimo_dia; 20 } 21 22 function dame_nombre_mes($mes){ 23 switch ($mes){ 24 case 1: 25 $nombre_mes="Enero"; 26 break; 27 case 2: 28 $nombre_mes="Febrero"; 29 break; 30 case 3: 31 $nombre_mes="Marzo"; 32 break; 33 case 4: 34 $nombre_mes="Abril"; 35 break; 36 case 5: 37 $nombre_mes="Mayo"; 38 break; 39 case 6: 40 $nombre_mes="Junio"; 41 break; 42 case 7: 43 $nombre_mes="Julio"; 44 break; 45 case 8: 46 $nombre_mes="Agosto"; 47 break; 48 case 9: 49 $nombre_mes="Septiembre"; 50 break; 51 case 10: 52 $nombre_mes="Octubre"; 53 break; 54 case 11: 55 $nombre_mes="Noviembre"; 56 break; 57 case 12: 58 $nombre_mes="Diciembre"; 59 break; 60 } 61 return $nombre_mes; 62 } 63 64 //Muestra el calendario, puede recibir una tablas con fechas 65 //en que una instalacion ha sido reservada, en este caso marcar dichas 66 //fechas en el calencia 67 function mostrar_calendario($dia,$mes,$ano){ 68 $mes_hoy=date("m"); 69 $ano_hoy=date("Y"); 70 71 $parametros_formulario = "formulario=" . $_GET["formulario"] . "&nomcampo=" 72 . $_GET["nomcampo"]; 73

Page 207: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 205

74 75 //obtenemos 76 77 if (($mes_hoy <> $mes) || ($ano_hoy <> $ano)) 78 { 79 $hoy=0; 80 } 81 else 82 { 83 $hoy=date("d"); 84 } 85 //tomo el nombre del mes que hay que imprimir 86 $nombre_mes = dame_nombre_mes($mes); 87 88 //construyo la cabecera de la tabla 89 echo "<table width='200px' cellspacing='3' cellpadding='2' border='0'>< 90 tr><td colspan='7' align='center' class='tit'>"; 91 echo "<table width='100%' cellspacing='2' cellpadding='2' border='0'>< 92 tr><td style='font-size:10pt;font-weight:bold;color:white'>"; 93 //calculo el mes y ano del mes anterior 94 $mes_anterior = $mes - 1; 95 $ano_anterior = $ano; 96 if ($mes_anterior==0){ 97 $ano_anterior--; 98 $mes_anterior=12; 99 } 100 echo "<a style='color:white;text-decoration:none' 101 href='calendario_faltas.php?$parametros_formulario&amp;dia=$dia&amp; 102 nuevo_mes=$mes_anterior&amp;nuevo_ano=$ano_anterior'>&lt;&lt;</a></td>"; 103 echo "<td align=center class=tit>$nombre_mes $ano</td>"; 104 echo "<td align=right style=font-size:10pt;font-weight:bold;color: 105 white>"; 106 //calculo el mes y ano del mes siguiente 107 $mes_siguiente = $mes + 1; 108 $ano_siguiente = $ano; 109 if ($mes_siguiente==13){ 110 $ano_siguiente++; 111 $mes_siguiente=01; 112 } 113 echo "<a style='color:white;text-decoration:none' 114 href='calendario_faltas.php?$parametros_formulario&amp;dia=$dia&amp; 115 nuevo_mes=$mes_siguiente&amp;nuevo_ano=$ano_siguiente'>&gt;&gt;</a></td> 116 </tr></table></td></tr>"; 117 echo ' <tr> 118 <td style="width: 14%;text-align: center ;" class="altn">Lu< 119 /td> 120 <td style="width: 14%;text-align: center ;" class="altn">Ma< 121 /td> 122 <td style="width: 14%;text-align: center ;" class="altn">Mi< 123 /td> 124 <td style="width: 14%;text-align: center ;" class="altn">Ju< 125 /td> 126 <td style="width: 14%;text-align: center ;" class="altn">Vi< 127 /td> 128 <td style="width: 14%;text-align: center ;" class="altn">Sa< 129 /td> 130 <td style="width: 14%;text-align: center ;" class="altn">Do< 131 /td> 132 </tr>'; 133 134 //Variable para llevar la cuenta del dia actual 135 $dia_actual = 1; 136 137 //calculo el numero del dia de la semana del primer dia 138 $numero_dia = calcula_numero_dia_semana(1,$mes,$ano); 139 //echo "Numero del dia de demana del primer: $numero_dia <br>"; 140 141 //calculo el último dia del mes 142 $ultimo_dia = ultimoDia($mes,$ano); 143 144 $nodis = array(); 145 146 //comprobamos si la variable con las fechas reservadas esta 147 inicializada 148 if (isset($reservas)) 149 { 150 //eliminamos las reservas que nos son del actual anyo y mes

Page 208: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 206

151 foreach ( $reservas as $actual) 152 { 153 if ( $actual["anyo"] == $ano && $actual["mes"] == $mes) 154 { 155 $nodis [] = $actual["dia"]; 156 } 157 } 158 } 159 160 //escribo la primera fila de la semana 161 echo "<tr>"; 162 for ($i=0;$i<7;$i++){ 163 if ($i < $numero_dia){ 164 //si el dia de la semana i es menor que el numero del primer 165 dia de la semana no pongo nada en la celda 166 echo "<td></td>"; 167 } else { 168 if (($i == 5) || ($i == 6)) 169 { 170 //comprobamos si esta fecha esta en la tabla de las 171 //fechas reservadas. 172 if (in_array($dia_actual, $nodis )) 173 { 174 echo "<td class='nd'>$dia_actual</td>\n"; 175 } 176 else if ($dia_actual == $hoy) 177 { 178 echo "<td class='da'>$dia_actual</td>\n"; 179 } 180 else if ($dia_actual == $dia) //Dia seleccionado 181 { 182 echo "<td class='da'>$dia_actual</td>\n"; 183 } 184 else 185 { 186 echo "<td class='da'>$dia_actual</td>\n"; 187 } 188 } 189 else 190 { 191 if (in_array($dia_actual, $nodis )) 192 { 193 echo "<td class='nd'>$dia_actual</td>\n"; 194 } 195 else if ($dia_actual == $hoy) 196 { 197 echo "<td class='laborable'><a href='javascript: 198 devuelveFecha($dia_actual,$mes,$ano)'>$dia_actual</a>< 199 /td>\n"; 200 } 201 else if ($dia_actual == $dia) //Dia seleccionado 202 { 203 echo "<td class='laborable'><a href='javascript: 204 devuelveFecha($dia_actual,$mes,$ano)'>$dia_actual</a>< 205 /td>\n"; 206 } 207 208 else 209 { 210 211 echo "<td class='laborable'><a href='javascript: 212 devuelveFecha($dia_actual,$mes,$ano)'>$dia_actual</a>< 213 /td>\n"; 214 215 } 216 217 218 } 219 $dia_actual++; 220 } 221 } 222 echo "</tr>"; 223 224 //recorro todos los demás días hasta el final del mes 225 $numero_dia = 0; 226 while ($dia_actual <= $ultimo_dia){ 227 //si estamos a principio de la semana escribo el <TR>

Page 209: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 207

228 if ($numero_dia == 0) 229 echo "<tr>"; 230 //si es el uñtimo de la semana, me pongo al principio de la semana 231 y escribo el </tr> 232 233 //De momento no se permite reservar una instalacion los 234 //fines de semana 235 if (($numero_dia == 5) || ($numero_dia == 6)) 236 { 237 if (in_array($dia_actual, $nodis )) 238 { 239 echo "<td class='nd'>$dia_actual</td>\n"; 240 } 241 else if ($dia_actual == $hoy) 242 { 243 //echo "<td class=da><a href=calendario. 244 php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> 245 $dia_actual</a></td>"; 246 echo "<td class='da'>$dia_actual</td>\n"; 247 } 248 else if ($dia_actual == $dia) //Dia seleccionado 249 { 250 //echo "<td class=da><a href=calendario. 251 php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> 252 $dia_actual</a></td>"; 253 echo "<td class='da'>$dia_actual</td>\n"; 254 } 255 else 256 { 257 //echo "<td class=fs ><a href=calendario. 258 php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> 259 $dia_actual</a></td>"; 260 echo "<td class='da'>$dia_actual</td>\n"; 261 } 262 } 263 else 264 { 265 if (in_array($dia_actual, $nodis )) 266 { 267 echo "<td class='nd'>$dia_actual</td>\n"; 268 } 269 else if ($dia_actual == $hoy) 270 { 271 echo "<td class='laborable' ><a href='javascript: 272 devuelveFecha($dia_actual,$mes,$ano)'>$dia_actual</a>< 273 /td>\n"; 274 } 275 else if ($dia_actual == $dia) //Dia seleccionado 276 { 277 echo "<td class='laborable' ><a href='javascript: 278 devuelveFecha($dia_actual,$mes,$ano)'>$dia_actual</a>< 279 /td>\n"; 280 } 281 282 else 283 { 284 285 echo "<td class='laborable' ><a href='javascript: 286 devuelveFecha($dia_actual,$mes,$ano)'>$dia_actual</a>< 287 /td>\n"; 288 289 } 290 291 } 292 293 $dia_actual++; 294 $numero_dia++; 295 if ($numero_dia == 7) 296 { 297 $numero_dia = 0; 298 echo "</tr>\n"; 299 } 300 301 } 302 303 //compruebo que celdas me faltan por escribir vacias de la última 304 semana del mes

Page 210: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 208

305 for ($i=$numero_dia;$i<7;$i++){ 306 echo "<td></td>\n"; 307 } 308 309 echo "</tr>\n"; 310 echo "</table>\n"; 311 312 //echo "<input type='hidden' name='mes2' value='$mes' />\n"; 313 //echo "<input type='hidden' name='anyo2' value='$ano' />\n"; 314 } 315 316 if (!$HTTP_POST_VARS && !$HTTP_GET_VARS){ 317 $tiempo_actual = time(); 318 $mes = date("n", $tiempo_actual); 319 $ano = date("Y", $tiempo_actual); 320 $dia=date("d"); 321 $fecha=$ano . "-" . $mes . "-" . $dia; 322 }else { 323 $mes = $_GET["nuevo_mes"]; 324 $ano = $_GET["nuevo_ano"]; 325 $dia = $_GET["dia"]; 326 327 if ( !isset ($mes) || !isset ($ano) || !isset ($dia) ) 328 { 329 $tiempo_actual = time(); 330 $mes = date("n", $tiempo_actual); 331 $ano = date("Y", $tiempo_actual); 332 $dia=date("d"); 333 } 334 $fecha=$ano . "-" . $mes . "-" . $dia; 335 } 336 337 //echo"Fecha Seleccionada <input type=text name=fecha value=$fecha>"; 338 339 ?> 340 341 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 342 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 343 <html xmlns="http://www.w3.org/1999/xhtml"> 344 <head> 345 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 346 <title>CP Emilio Lluch</title> 347 <link href="css/general.css" rel="stylesheet" type="text/css" /> 348 <link href="css/calendario.css" rel="stylesheet" type="text/css" /> 349 350 <script type="text/javascript"> 351 function devuelveFecha(dia,mes,ano) 352 { 353 //Se encarga de escribir en el formulario adecuado los valores 354 seleccionados 355 //también debe cerrar la ventana del calendario 356 var formulario_destino = '<?echo $_GET["formulario"]?>'; 357 var campo_destino = '<?echo $_GET["nomcampo"]?>'; 358 359 //meto el dia 360 eval ("opener.document." + formulario_destino + "." + campo_destino + ". 361 value='" + dia + "-" + mes + "-" + ano + "'") 362 eval ("opener.document." + formulario_destino + "." + campo_destino + ". 363 focus()"); 364 window.close(); 365 } 366 </script> 367 </head> 368 369 <body> 370 <? mostrar_calendario($dia,$mes,$ano); ?> 371 </body> 372 </html> 373

Page 211: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 209

calendario_ins.php 1 <?php 2 include_once("bd.php"); 3 4 function calcula_numero_dia_semana($dia,$mes,$ano){ 5 $numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano)); 6 if ($numerodiasemana == 0) 7 $numerodiasemana = 6; 8 else 9 $numerodiasemana--; 10 return $numerodiasemana; 11 } 12 13 //funcion que devuelve el último día de un mes y año dados 14 function ultimoDia($mes,$ano){ 15 $ultimo_dia=28; 16 while (checkdate($mes,$ultimo_dia + 1,$ano)){ 17 $ultimo_dia++; 18 } 19 return $ultimo_dia; 20 } 21 22 function dame_nombre_mes($mes){ 23 switch ($mes){ 24 case 1: 25 $nombre_mes="Enero"; 26 break; 27 case 2: 28 $nombre_mes="Febrero"; 29 break; 30 case 3: 31 $nombre_mes="Marzo"; 32 break; 33 case 4: 34 $nombre_mes="Abril"; 35 break; 36 case 5: 37 $nombre_mes="Mayo"; 38 break; 39 case 6: 40 $nombre_mes="Junio"; 41 break; 42 case 7: 43 $nombre_mes="Julio"; 44 break; 45 case 8: 46 $nombre_mes="Agosto"; 47 break; 48 case 9: 49 $nombre_mes="Septiembre"; 50 break; 51 case 10: 52 $nombre_mes="Octubre"; 53 break; 54 case 11: 55 $nombre_mes="Noviembre"; 56 break; 57 case 12: 58 $nombre_mes="Diciembre"; 59 break; 60 } 61 return $nombre_mes; 62 } 63 64 //Muestra el calendario, puede recibir una tablas con fechas 65 //en que una instalacion ha sido reservada, en este caso marcar dichas 66 //fechas en el calencia 67 function mostrar_calendario($dia,$mes,$ano, $reservas, $tipo, $usuario){ 68 $mes_hoy=date("m"); 69 $ano_hoy=date("Y"); 70 71 if (strcmp($tipo, INST) == 0 ) 72 { 73 $url= $usuario . "_reservar_instalacion.php";

Page 212: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 210

74 } 75 else //aqui solo puede llegar los profesores 76 { 77 $url="Profesor_reservar_equipacion.php"; 78 } 79 80 81 //obtenemos 82 83 if (($mes_hoy <> $mes) || ($ano_hoy <> $ano)) 84 { 85 $hoy=0; 86 } 87 else 88 { 89 $hoy=date("d"); 90 } 91 //tomo el nombre del mes que hay que imprimir 92 $nombre_mes = dame_nombre_mes($mes); 93 94 //construyo la cabecera de la tabla 95 echo "<table width=200 cellspacing=3 cellpadding=2 border=0><tr><td 96 colspan=7 align=center class=tit>"; 97 echo "<table width=100% cellspacing=2 cellpadding=2 border=0><tr><td 98 style=font-size:10pt;font-weight:bold;color:white>"; 99 //calculo el mes y ano del mes anterior 100 $mes_anterior = $mes - 1; 101 $ano_anterior = $ano; 102 if ($mes_anterior==0){ 103 $ano_anterior--; 104 $mes_anterior=12; 105 } 106 echo "<a style=color:white;text-decoration:none 107 href=$url?dia=$dia&nuevo_mes=$mes_anterior&nuevo_ano=$ano_anterior>&lt; 108 &lt;</a></td>"; 109 echo "<td align=center class=tit>$nombre_mes $ano</td>"; 110 echo "<td align=right style=font-size:10pt;font-weight:bold;color: 111 white>"; 112 //calculo el mes y ano del mes siguiente 113 $mes_siguiente = $mes + 1; 114 $ano_siguiente = $ano; 115 if ($mes_siguiente==13){ 116 $ano_siguiente++; 117 $mes_siguiente=01; 118 } 119 echo "<a style=color:white;text-decoration:none 120 href=$url?dia=$dia&nuevo_mes=$mes_siguiente&nuevo_ano=$ano_siguiente> 121 &gt;&gt;</a></td></tr></table></td></tr>"; 122 echo ' <tr> 123 <td width=14% align=center class=altn>Lu</td> 124 <td width=14% align=center class=altn>Ma</td> 125 <td width=14% align=center class=altn>Mi</td> 126 <td width=14% align=center class=altn>Ju</td> 127 <td width=14% align=center class=altn>Vi</td> 128 <td width=14% align=center class=altn>Sa</td> 129 <td width=14% align=center class=altn>Do</td> 130 </tr>'; 131 132 //Variable para llevar la cuenta del dia actual 133 $dia_actual = 1; 134 135 //calculo el numero del dia de la semana del primer dia 136 $numero_dia = calcula_numero_dia_semana(1,$mes,$ano); 137 //echo "Numero del dia de demana del primer: $numero_dia <br>"; 138 139 //calculo el último dia del mes 140 $ultimo_dia = ultimoDia($mes,$ano); 141 142 $nodis = array(); 143 144 //comprobamos si la variable con las fechas reservadas esta 145 inicializada 146 if (isset($reservas)) 147 { 148 //eliminamos las reservas que nos son del actual anyo y mes 149 foreach ( $reservas as $actual) 150 {

Page 213: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 211

151 if ( $actual["anyo"] == $ano && $actual["mes"] == $mes) 152 { 153 $nodis [] = $actual["dia"]; 154 } 155 } 156 } 157 158 //escribo la primera fila de la semana 159 echo "<tr>"; 160 for ($i=0;$i<7;$i++){ 161 if ($i < $numero_dia){ 162 //si el dia de la semana i es menor que el numero del primer 163 dia de la semana no pongo nada en la celda 164 echo "<td></td>"; 165 } else { 166 if (($i == 5) || ($i == 6)) 167 { 168 //comprobamos si esta fecha esta en la tabla de las 169 //fechas reservadas. 170 if (in_array($dia_actual, $nodis )) 171 { 172 echo "<td class=nd>$dia_actual</td>\n"; 173 } 174 else if ($dia_actual == $hoy) 175 { 176 echo "<td class=da>$dia_actual</td>\n"; 177 } 178 else if ($dia_actual == $dia) //Dia seleccionado 179 { 180 echo "<td class=da>$dia_actual</td>\n"; 181 } 182 else 183 { 184 echo "<td class=da>$dia_actual</td>\n"; 185 } 186 } 187 else 188 { 189 if (in_array($dia_actual, $nodis )) 190 { 191 echo "<td class=nd>$dia_actual</td>\n"; 192 } 193 else if ($dia_actual == $hoy) 194 { 195 echo "<td class=laborable><a href='javascript:cambiar( 196 $dia_actual);'>$dia_actual</a></td>\n"; 197 } 198 else if ($dia_actual == $dia) //Dia seleccionado 199 { 200 echo "<td class=laborable><a href='javascript:cambiar( 201 $dia_actual);'>$dia_actual</a></td>\n"; 202 } 203 204 else 205 { 206 207 echo "<td class=laborable><a href='javascript:cambiar( 208 $dia_actual);'>$dia_actual</a></td>\n"; 209 210 } 211 212 213 } 214 $dia_actual++; 215 } 216 } 217 echo "</tr>"; 218 219 //recorro todos los demás días hasta el final del mes 220 $numero_dia = 0; 221 while ($dia_actual <= $ultimo_dia){ 222 //si estamos a principio de la semana escribo el <TR> 223 if ($numero_dia == 0) 224 echo "<tr>"; 225 //si es el uñtimo de la semana, me pongo al principio de la semana 226 y escribo el </tr> 227

Page 214: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 212

228 //De momento no se permite reservar una instalacion los 229 //fines de semana 230 if (($numero_dia == 5) || ($numero_dia == 6)) 231 { 232 if (in_array($dia_actual, $nodis )) 233 { 234 echo "<td class=nd>$dia_actual</td>\n"; 235 } 236 else if ($dia_actual == $hoy) 237 { 238 //echo "<td class=da><a href=calendario. 239 php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> 240 $dia_actual</a></td>"; 241 echo "<td class=da>$dia_actual</td>\n"; 242 } 243 else if ($dia_actual == $dia) //Dia seleccionado 244 { 245 //echo "<td class=da><a href=calendario. 246 php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> 247 $dia_actual</a></td>"; 248 echo "<td class=da>$dia_actual</td>\n"; 249 } 250 else 251 { 252 //echo "<td class=fs ><a href=calendario. 253 php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> 254 $dia_actual</a></td>"; 255 echo "<td class=da>$dia_actual</td>\n"; 256 } 257 } 258 else 259 { 260 if (in_array($dia_actual, $nodis )) 261 { 262 echo "<td class=nd>$dia_actual</td>\n"; 263 } 264 else if ($dia_actual == $hoy) 265 { 266 echo "<td class=laborable ><a href='javascript:cambiar( 267 $dia_actual);'>$dia_actual</a></td>\n"; 268 } 269 else if ($dia_actual == $dia) //Dia seleccionado 270 { 271 echo "<td class=laborable ><a href='javascript:cambiar( 272 $dia_actual);'>$dia_actual</a></td>\n"; 273 } 274 275 else 276 { 277 278 echo "<td class=laborable ><a href='javascript:cambiar( 279 $dia_actual);'>$dia_actual</a></td>\n"; 280 281 } 282 283 } 284 285 $dia_actual++; 286 $numero_dia++; 287 if ($numero_dia == 7) 288 { 289 $numero_dia = 0; 290 echo "</tr>\n"; 291 } 292 293 } 294 295 //compruebo que celdas me faltan por escribir vacias de la última 296 semana del mes 297 for ($i=$numero_dia;$i<7;$i++){ 298 echo "<td></td>\n"; 299 } 300 301 echo "</tr>\n"; 302 echo "</table>\n"; 303 304 //echo "<input type='hidden' name='mes2' value='$mes' />\n";

Page 215: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 213

305 //echo "<input type='hidden' name='anyo2' value='$ano' />\n"; 306 }

Page 216: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 214

profesor_inc.php 1 <?php 2 3 define (INST, "INSTALACION"); 4 define (EQUIP, "EQUIPACION"); 5 define (PROFE, "Profesor"); 6 define (TRIMESTRE, 4); 7 define (CLAVE_REPETIDA, 1062); 8 9 require_once "bd.php"; 10 11 12 session_start(); 13 if($_SESSION["tipo"] != "Profesor") 14 header("Location: prohibido.php"); 15 16 //el maximo de la longitud del motivo para reservar una instalacion 17 //o equipamiento. Solo habra que cambiarlo de aqui 18 //el maximo que podria soportar la tabla en mysql es de 65535 caracteres 19 define( MAX_LENGTH_MOTIVO, 1500); 20 21 //devuelve una tabla con el id de las instalaciones, 22 //el nombre de la instalacion y las normas 23 //Acceso: 24 // idinstalacion => id de la instalacion 25 // instalacion => nombre de la instalacion 26 // normas => ruta para llegar a las normas de la instalacion 27 // (no contiene las normas, apunta al fichero 28 // que las tiene) 29 function listado_instalacion() 30 { 31 $link = Conectar(); 32 $sql = "SELECT * FROM instalacion"; 33 34 //ejecutamos la consulta 35 $resultado = consulta ($sql, $link); 36 37 //sacamos los valores que nos interesan de los 38 //resultados (en este caso todos) 39 $i = 0; 40 while ($fila = siguiente($resultado)) 41 { 42 $tabla[$i]["idinstalacion"] = $fila["idinstalacion"]; 43 $tabla[$i]["instalacion"] = $fila["instalacion"]; 44 $tabla[$i++]["normas"] = $fila["normas"]; 45 } 46 47 Desconectar ($link); 48 return $tabla; 49 } 50 51 //devuelve una tabla con el id de las equipaciones, 52 //el nombre de la equipacion y las normas 53 //Acceso: 54 // idequipacion => id de la equipacion 55 // equipacion => nombre de la equipacion 56 // normas => ruta para llegar a las normas de la equipacion 57 // (no contiene las normas, apunta al fichero 58 // que las tiene) 59 function listado_equipacion() 60 { 61 $link = Conectar(); 62 $sql = "SELECT * FROM equipacion"; 63 64 //ejecutamos la consulta 65 $resultado = consulta ($sql, $link); 66 67 //sacamos los valores que nos interesan de los 68 //resultados (en este caso todos) 69 $i = 0; 70 while ($fila = siguiente($resultado)) 71 { 72 $tabla[$i]["idequipacion"] = $fila["idequipacion"]; 73 $tabla[$i]["equipacion"] = $fila["equipacion"];

Page 217: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 215

74 $tabla[$i++]["normas"] = $fila["normas"]; 75 } 76 77 Desconectar ($link); 78 return $tabla; 79 } 80 81 //Devuelve una tabla con las reservas de instalaciones que 82 //ha efectuado el usuario. 83 //El usuario se obtiene de la sesion iniciada 84 //Acceso: 85 // idinst => id de la instalacion 86 // instalacion => nombre de la instalacion 87 // normas => ruta para llegar a las normas de la instalacion 88 // (no contiene las normas, apunta al fichero 89 // que las tiene) 90 // fecha => fecha de la reserva con formato "mm-dd-aa hh:mm:ss" 91 // proposito => Motivo de la reserva (introducido por el usuario 92 // cuando realiza la reserva. 93 function listado_reservas_instalaciones() 94 { 95 $link = Conectar(); 96 $sql = "SELECT * FROM res_ins WHERE login = '" . $_SESSION["id"] ."'"; 97 98 //ejecutamos la consulta 99 $resultado = consulta ($sql, $link); 100 101 //sacamos los valores que nos interesan de los 102 //resultados (en este caso todos) 103 $i = 0; 104 $tabla = null; 105 while ($fila = siguiente($resultado)) 106 { 107 $tabla[$i]["fecha"] = $fila["fecha"]; 108 //$tabla[$i]["fecha"] = $fila["fecha"]; 109 $tabla[$i]["proposito"] = $fila["proposito"]; 110 111 $sql_ins = "SELECT * FROM instalacion WHERE idinstalacion = '" . 112 $fila["idinstalacion"] . "'"; 113 $res_ins = consulta ($sql_ins, $link); 114 $ins = siguiente($res_ins); 115 if ($ins) 116 { 117 $tabla[$i]["idinst"] = $ins["idinstalacion"]; 118 $tabla[$i]["instalacion"] = $ins["instalacion"]; 119 $tabla[$i++]["normas"] = $ins["normas"]; 120 } 121 else 122 { 123 $tabla[$i]["idinst"] = -1; 124 $tabla[$i]["instalacion"] = "Instalacion desconocida"; 125 $tabla[$i++]["normas"] = "Normas no encontradas"; 126 } 127 } 128 129 Desconectar ($link); 130 return $tabla; 131 } 132 133 //Devuelve una tabla con las reservas de equipamientos que 134 //ha efectuado el usuario. 135 //El usuario se obtiene de la sesion iniciada 136 //Acceso: 137 // idequi => id de la equipacion 138 // equipacion => nombre de la equipacion 139 // normas => ruta para llegar a las normas de la equipacion 140 // (no contiene las normas, apunta al fichero 141 // que las tiene) 142 // fecha => fecha de la reserva con formato "mm-dd-aa hh:mm:ss" 143 // proposito => Motivo de la reserva (introducido por el usuario 144 // cuando realiza la reserva. 145 function listado_reservas_equipaciones() 146 { 147 $link = Conectar(); 148 $sql = "SELECT * FROM res_equi WHERE login = '" . $_SESSION["id"] ."'"; 149 150 //ejecutamos la consulta

Page 218: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 216

151 $resultado = consulta ($sql, $link); 152 153 //sacamos los valores que nos interesan de los 154 //resultados (en este caso todos) 155 $i = 0; 156 $tabla = null; 157 while ($fila = siguiente($resultado)) 158 { 159 $tabla[$i]["fecha"] = $fila["fecha"]; 160 //$tabla[$i]["fecha"] = $fila["fecha"]; 161 $tabla[$i]["proposito"] = $fila["proposito"]; 162 163 $sql_ins = "SELECT * FROM equipacion WHERE idequipacion = '" . 164 $fila["idequipacion"] . "'"; 165 $res_ins = consulta ($sql_ins, $link); 166 $ins = siguiente($res_ins); 167 if ($ins) 168 { 169 $tabla[$i]["idequipacion"] = $ins["idequipacion"]; 170 $tabla[$i]["equipacion"] = $ins["equipacion"]; 171 $tabla[$i++]["normas"] = $ins["normas"]; 172 } 173 else 174 { 175 $tabla[$i]["idequipacion"] = -1; 176 $tabla[$i]["equipacion"] = "Equipacion desconocida"; 177 $tabla[$i++]["normas"] = "Normas no encontradas"; 178 } 179 } 180 181 Desconectar ($link); 182 return $tabla; 183 } 184 185 186 //Esta funcion elimina una reserva del usuario dado una fecha y el 187 //id del item y el tipo (instalacion o equipamiento 188 function anular_reserva($login, $fecha, $iditem, $item) 189 { 190 $link = Conectar(); 191 if ($item == INST) 192 { 193 $sql = "DELETE FROM `res_ins` 194 WHERE CONVERT(`res_ins`.`login` USING utf8)='$login' 195 AND `res_ins`.`idinstalacion`=$iditem 196 AND `res_ins`.`fecha`='$fecha' "; 197 } 198 else 199 { 200 $sql = "DELETE FROM `res_equi` 201 WHERE CONVERT(`res_equi`.`login` USING utf8)='$login' 202 AND `res_equi`.`idequipacion`=$iditem 203 AND `res_equi`.`fecha`='$fecha' "; 204 } 205 206 $result = consulta ($sql, $link); 207 $correcto =false; 208 209 if($result) 210 { 211 $filas = mysql_affected_rows(); 212 if ( $filas == 0 ) 213 { 214 //echo "La reserva ya hab&iacute;a sido eliminada"; 215 $correcto =false; 216 } 217 else 218 { 219 //echo "La reserva ha sido eliminada"; 220 $correcto =true; 221 } 222 } 223 else 224 { 225 //echo"<p>Operacion NO efectuada</p>\n"; 226 //echo"<p>Error: " . mysql_error($link) . "</p>\n"; 227 //echo"SQL: $sql";

Page 219: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 217

228 $correcto =false; 229 } 230 231 Desconectar ($link); 232 return $correcto; 233 } 234 235 236 //Obtiene los dias en que esta reservado una instalacion dada 237 //Devuelve una tabla con las fechas 238 //Acceso: 239 // dia 240 // mes 241 // anyo 242 //Parametros recibido 243 // id de una instalacion 244 function fecha_reservas($iditem, $item) 245 { 246 if ( !isset($iditem) || $iditem == -1) 247 { 248 //echo "id instalacion no definido<br>\n"; 249 return; 250 } 251 252 $link = Conectar(); 253 if ($item == INST) 254 { 255 $sql = "SELECT fecha FROM `res_ins` 256 WHERE `res_ins`.`idinstalacion`=$iditem" ; 257 } 258 else 259 { 260 $sql = "SELECT fecha FROM `res_equi` 261 WHERE `res_equi`.`idequipacion`=$iditem" ; 262 } 263 264 $result = consulta ($sql, $link); 265 266 //sacamos los valores que nos interesan de los 267 //resultados (en este caso todos) 268 $i = 0; 269 $tabla; 270 while ($fila = siguiente($result)) 271 { 272 $fecha = sacarFecha($fila["fecha"]); 273 $trozo = explode ("-", $fecha); 274 //echo " fecha: " . $fecha . "\n<br>"; 275 $tabla[$i]["dia"] = $trozo[0]; 276 $tabla[$i]["mes"] = $trozo[1]; 277 $tabla[$i++]["anyo"] = $trozo[2]; 278 } 279 280 Desconectar ($link); 281 return $tabla; 282 } 283 284 //Permite hacer una reserva 285 //Recibe como parametros 286 //Login del usuario, fecha(dia, mes, anyo) y hora(hora, min, seg) 287 //el codigo del item a reservar (puede ser una instalacion o un 288 //equipamiento y el motivo 289 //Devuelve: 290 // True si reveserva se pudo hacer 291 // Falso en caso contrario 292 function reservar_instalacion($login,$iditem,$dia,$mes,$anyo,$hora,$min, 293 $seg,$motivo, $item) 294 { 295 $fecha = $anyo . "-" . $mes . "-" . $dia . " " . $hora . ":" . $min . ": 296 " . $seg; 297 298 $link = Conectar(); 299 /*$sql = "INSERT INTO `webcole`.`res_ins` 300 (`login`, 301 `idinstalacion`, 302 `fecha`, 303 `proposito`) VALUES 304 (\'$login\',

Page 220: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 218

305 \'$idins\', 306 \'$fecha\', 307 \'$motivo\');"; 308 */ 309 if ($item == INST) 310 { 311 $sql = "INSERT INTO `webcole`.`res_ins` 312 (`login`, 313 `idinstalacion`, 314 `fecha`, 315 `proposito`) VALUES 316 ('$login', 317 '$iditem', 318 '$fecha', 319 '$motivo');"; 320 } 321 else 322 { 323 $sql = "INSERT INTO `webcole`.`res_equi` 324 (`login`, 325 `idequipacion`, 326 `fecha`, 327 `proposito`) VALUES 328 ('$login', 329 '$iditem', 330 '$fecha', 331 '$motivo');"; 332 } 333 $result = consulta ($sql, $link); 334 335 echo "error: " . mysql_error($link); 336 Desconectar ($link); 337 return $result; 338 } 339 340 //Obtiene el listado de todos los profesores del centro 341 //Devuelve una tabla con la informacion de los profesores 342 // Nombre : Nombre 343 // apellido1 : Primer apellido del profesor 344 // apellido2 : Segundo apellido del profesor 345 // email : Direccion de correo del profesor 346 // tutorias : Las tutorias del profesor 347 function listado_profesores() 348 { 349 $link = Conectar(); 350 $sql = "SELECT u.nombre, u.apellido1, u.apellido2, p.email, p.tutorias 351 FROM profesor p, usuario u 352 WHERE p.login=u.login 353 ORDER BY u.apellido1"; 354 355 //ejecutamos la consulta 356 $resultado = consulta ($sql, $link); 357 //echo "error: " . mysql_error($link); 358 //sacamos los valores que nos interesan de los 359 //resultados (en este caso todos) 360 $i = 0; 361 $tabla = null; 362 while ($fila = siguiente($resultado)) 363 { 364 $tabla[$i]["nombre"] = $fila["nombre"]; 365 $tabla[$i]["apellido1"] = $fila["apellido1"]; 366 $tabla[$i]["apellido2"] = $fila["apellido2"]; 367 $tabla[$i]["email"] = $fila["email"]; 368 369 if ($fila["tutorias"] == "null") 370 { 371 $tabla[$i]["tutorias"] = "Sin tutorias"; 372 } 373 else 374 { 375 $tabla[$i]["tutorias"] = $fila["tutorias"]; 376 } 377 $i++; 378 379 } 380 381 Desconectar ($link);

Page 221: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 219

382 return $tabla; 383 384 } 385 386 //Obtiene las asignaturas del profesor 387 function asignaturas_profesor () 388 { 389 $login = $_SESSION["id"]; 390 391 $link = Conectar(); 392 $sql = "SELECT asignatura FROM imparte WHERE profesor='$login'"; 393 //ejecutamos la consulta 394 $resultado = consulta ($sql, $link); 395 $i = 0; 396 $tabla = null; 397 //recorremos los resultados 398 399 while ($fila = siguiente($resultado)) 400 { 401 $tabla[$i]["codasig"] = $fila["asignatura"]; 402 403 //por cada asignatura sacamos sus datos 404 $sql_asig = "SELECT nombre, curso, horario 405 FROM asignatura 406 WHERE codigoasignatura=" . $tabla[$i]["codasig"]; 407 $res_asig = consulta ($sql_asig, $link); 408 while ($fila_asig = siguiente($res_asig)) 409 { 410 $tabla[$i]["nombre"] = $fila_asig["nombre"]; 411 $tabla[$i]["curso"] = $fila_asig["curso"]; 412 $tabla[$i]["horario"] = $fila_asig["horario"]; 413 } 414 415 $i++; 416 417 } 418 419 desconectar($link); 420 return $tabla; 421 } 422 423 //Obtiene los datos de la asignatura que se le pasa como parametro 424 function obtener_datos_asignatura($codasig) 425 { 426 $login = $_SESSION["id"]; 427 $link = Conectar(); 428 $sql = "SELECT nombre, curso, horario 429 FROM asignatura 430 WHERE codigoasignatura='$codasig'"; 431 //ejecutamos la consulta 432 $resultado = consulta ($sql, $link); 433 $fila = siguiente($resultado); 434 if ($fila) 435 { 436 $tabla["codasig"] = $codasig; 437 $tabla["nombre"] = $fila["nombre"]; 438 $tabla["curso"] = $fila["curso"]; 439 $tabla["horario"] = $fila["horario"]; 440 } 441 else 442 { 443 //posible error en el codigo de la asignatura ¿mejor volver ya= 444 return ; 445 } 446 $sql = "SELECT letra 447 FROM impartida 448 WHERE asignatura='$codasig'"; 449 //ejecutamos la consulta 450 $resultado = consulta ($sql, $link); 451 $fila = siguiente($resultado); 452 if ($fila) 453 { 454 $tabla["letra"] = $fila["letra"]; 455 } 456 else 457 { 458 echo "fallo la letra. Error: " . mysql_error();

Page 222: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 220

459 460 } 461 462 $sql = "SELECT aula 463 FROM grupo 464 WHERE curso='" . $tabla["curso"] . "' and letra='" . $tabla[ 465 "letra"] . "'"; 466 //ejecutamos la consulta 467 $resultado = consulta ($sql, $link); 468 $fila = siguiente($resultado); 469 if ($fila) 470 { 471 $tabla["aula"] = $fila["aula"]; 472 } 473 else 474 { 475 echo "fallo el aula. Error: " . mysql_error(); 476 477 } 478 479 480 desconectar($link); 481 return $tabla; 482 } 483 484 function obtener_alumnos_asignatura($codasig) 485 { 486 $link = Conectar(); 487 $sql = "SELECT curso, letra 488 FROM impartida 489 WHERE asignatura='$codasig'"; 490 //ejecutamos la consulta 491 $resultado = consulta ($sql, $link); 492 $fila = siguiente($resultado); 493 if ($fila) 494 { 495 $letra = $fila["letra"]; 496 $curso = $fila["curso"]; 497 } 498 else 499 { 500 echo "fallo la letra. Error: " . mysql_error(); 501 return; 502 } 503 504 //obtener los datos de los alumnos que estan en ese curso y letra 505 $sql_alumnos = "SELECT usu.apellido1, usu.apellido2, usu.nombre, usu. 506 login 507 FROM usuario usu, alumno alu 508 WHERE alu.curso=$curso and alu.letra='$letra' and alu. 509 login=usu.login 510 ORDER BY usu.apellido1"; 511 $res_alumno = consulta ($sql_alumnos, $link); 512 513 514 while ($fila_alu = siguiente($res_alumno)) 515 { 516 517 $tabla[$i]["nombre"] = $fila_alu["nombre"]; 518 $tabla[$i]["apellido1"] = $fila_alu["apellido1"]; 519 $tabla[$i]["apellido2"] = $fila_alu["apellido2"]; 520 $tabla[$i]["login"] = $fila_alu["login"]; 521 $i++; 522 } 523 524 desconectar($link); 525 return $tabla; 526 } 527 528 function poner_nota($alumno,$codasig, $trimestre, $nota) 529 { 530 $datos = obtener_datos_asignatura($codasig); 531 $link = Conectar(); 532 $sql = "INSERT INTO `webcole`.`nota` 533 (`alumno`, `asignatura`, `curso`, `trimestre`, `nota`) 534 VALUES ('$alumno', '$codasig', '" . $datos["curso"] . "', 535 '$trimestre', '$nota');";

Page 223: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 221

536 537 $result = consulta ($sql, $link); 538 if (!$result) 539 echo "error: " . mysql_error($link) . " codigo: " . mysql_errno(); 540 //si el error devuelto es CLAVE_REPETIDA, entonces el alumno ya habia 541 sido 542 //puntuado, por tanto deberemos actualizar la nota. 543 if ( mysql_errno() == CLAVE_REPETIDA) 544 { 545 $sql_actualizar = "UPDATE `webcole`.`nota` 546 SET `nota` = '$nota' 547 WHERE CONVERT(`nota`.`alumno` USING utf8) = 548 '$alumno' 549 AND `nota`.`asignatura` = $codasig 550 AND CONVERT(`nota`.`trimestre` USING utf8) = 551 '$trimestre' 552 LIMIT 1;"; 553 $res_actualizar = consulta ($sql_actualizar, $link); 554 if ( !$res_actualizar ) 555 { 556 echo "Se produjo un error cuando se estaba actualizando la nota 557 del alumno $alumno<br>\n"; 558 echo "error: " . mysql_error($link) . " codigo: " . 559 mysql_errno(); 560 } 561 } 562 563 Desconectar ($link); 564 return $result; 565 } 566 567 function obtener_alumnos_asignatura_trimestre($codasig, $trimestre) 568 { 569 $link = Conectar(); 570 $sql = "SELECT curso, letra 571 FROM impartida 572 WHERE asignatura='$codasig'"; 573 //ejecutamos la consulta 574 $resultado = consulta ($sql, $link); 575 $fila = siguiente($resultado); 576 if ($fila) 577 { 578 $letra = $fila["letra"]; 579 $curso = $fila["curso"]; 580 } 581 else 582 { 583 echo "fallo la letra. Error: " . mysql_error(); 584 return; 585 } 586 587 //obtener los datos de los alumnos que estan en ese curso y letra 588 $sql_alumnos = "SELECT usu.apellido1, usu.apellido2, usu.nombre, usu. 589 login 590 FROM usuario usu, alumno alu 591 WHERE alu.curso=$curso and alu.letra='$letra' and alu. 592 login=usu.login 593 ORDER BY usu.apellido1"; 594 $res_alumno = consulta ($sql_alumnos, $link); 595 596 if ($res_alumno) 597 { 598 while ($fila_alu = siguiente($res_alumno)) 599 { 600 //por cada alumno sacamos su nota para esa asignatura y 601 trimestre (si esta puesta) 602 $sql_nota = "SELECT n.nota 603 FROM nota n 604 WHERE n.alumno='" . $fila_alu["login"] . "' 605 and n.trimestre='$trimestre' and n. 606 asignatura='$codasig'"; 607 $res_nota = consulta ($sql_nota, $link); 608 $fila = siguiente($res_nota); 609 if ($fila) 610 { 611 $tabla[$i]["nota"] = $fila["nota"]; 612 }

Page 224: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 222

613 else 614 { 615 $tabla[$i]["nota"] = $fila[""]; 616 } 617 $tabla[$i]["nombre"] = $fila_alu["nombre"]; 618 $tabla[$i]["apellido1"] = $fila_alu["apellido1"]; 619 $tabla[$i]["apellido2"] = $fila_alu["apellido2"]; 620 $tabla[$i]["login"] = $fila_alu["login"]; 621 $i++; 622 //echo "fallo la nota. Error: " . mysql_error(); 623 //echo "login vale : " . $fila_alu["login"] . "<br>\n"; 624 //echo " sql vale: $sql_nota <br>\n"; 625 } 626 } 627 else 628 { 629 echo "Se produjo un error al acceder a las notas del alumno<br>\n"; 630 } 631 632 desconectar($link); 633 return $tabla; 634 } 635 636 function obtener_faltas_alumnos ($codasig, $fecha) 637 { 638 639 $alumnos = obtener_alumnos_asignatura($codasig); 640 if (isset($fecha)) 641 { 642 $fecha_mysql = cambiar_a_date($fecha); 643 } 644 else 645 { 646 $fecha_mysql = "0000-00-00"; 647 } 648 649 $link = Conectar(); 650 651 $lon = count($alumnos); 652 653 foreach ($alumnos as $actual) 654 { 655 $sql = "SELECT justificada 656 FROM faltaasistencia 657 WHERE asignatura='$codasig' and fecha='$fecha_mysql' and 658 alumno='" . $actual["login"]."'"; 659 //ejecutamos la consulta 660 $tabla[$i] = $actual; 661 $resultado = consulta ($sql, $link); 662 $fila = siguiente($resultado); 663 if ($fila) 664 { 665 $tabla[$i]["justificada"] = $fila["justificada"]; 666 $tabla[$i]["fecha"] = $fecha; 667 } 668 else 669 { 670 $tabla[$i]["justificada"] = ""; 671 $tabla[$i]["fecha"] = ""; 672 } 673 $i++; 674 } 675 desconectar($link); 676 return $tabla; 677 } 678 679 //Se recibe una fecha en formato dd-mm-aaaa 680 //Se devuelve una fecha en formato aaaa-mm-dd 681 682 function cambiar_a_date($fecha) 683 { 684 //$nuevafecha = ""; 685 $separada = explode("-", $fecha); 686 $nuevafecha = $separada[2] . "-" . $separada[1] . "-"; 687 if ($separada[0] < 10) 688 { 689 $separada[0] = "0" . $separada[0];

Page 225: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 223

690 } 691 $nuevafecha .= $separada[0]; 692 693 // echo "nueva fecha vale: $nuevafecha<br>\n"; 694 695 return $nuevafecha; 696 } 697 698 function poner_falta($login, $codasig, $fecha, $just) 699 { 700 $link = Conectar(); 701 $fecmysql = cambiar_a_date($fecha); 702 703 $sql = "INSERT INTO `webcole`.`faltaasistencia` 704 (`alumno`, `asignatura`, `fecha`, `justificada`) 705 VALUES ('$login', '$codasig', '$fecmysql', '$just');"; 706 707 echo "login vale: $login<br>\n"; 708 $result = consulta ($sql, $link); 709 if (!$result) 710 { 711 echo "error: " . mysql_error($link) . " codigo: " . mysql_errno(); 712 //si el error devuelto es CLAVE_REPETIDA, entonces el alumno ya 713 habia sido 714 //puntuado, por tanto deberemos actualizar la nota. 715 if ( mysql_errno() == CLAVE_REPETIDA) 716 { 717 echo "actualizando la falta del login: $login<br>\n"; 718 $sql_actualizar = "UPDATE `webcole`.`faltaasistencia` 719 SET `justificada` = '$just' 720 WHERE CONVERT(`faltaasistencia`.`alumno` 721 USING utf8) = '$login' 722 AND `faltaasistencia`.`asignatura` = 723 $codasig 724 AND `faltaasistencia`.`fecha` = '$fecmysql' 725 LIMIT 1;"; 726 727 $res_actualizar = consulta ($sql_actualizar, $link); 728 if ( !$res_actualizar ) 729 { 730 echo "Se produjo un error cuando se estaba actualizando la 731 nota del alumno $login<br>\n"; 732 echo "error: " . mysql_error($link) . " codigo: " . 733 mysql_errno(); 734 } 735 } 736 } 737 else 738 { 739 echo "ocurrio algo raro: " . mysql_error($link) . "<br>\n"; 740 } 741 Desconectar ($link); 742 return $result; 743 } 744 745 function quitar_falta($login, $codasig, $fecha) 746 { 747 echo " se esta quitando una falta...<br>\n"; 748 $fecha_mysql = cambiar_a_date($fecha); 749 $link = Conectar(); 750 $sql= "DELETE FROM `faltaasistencia` 751 WHERE CONVERT(`faltaasistencia`.`alumno` USING utf8)= '$login' 752 AND `faltaasistencia`.`asignatura` = $codasig 753 AND `faltaasistencia`.`fecha` = '$fecha_mysql'"; 754 755 $resultado = consulta ($sql, $link); 756 if ( !$resultado ) 757 { 758 echo "Se produjo un error cuando se estaba eliminado la falta de 759 asistencia del alumno $login<br>\n"; 760 echo "error: " . mysql_error($link) . " codigo: " . mysql_errno(); 761 } 762 Desconectar ($link); 763 } 764 765 //Funcion que devuelve los grupos que son tutorizados por un profesor. 766 //el login del profesor lo obtenemos directamente de la sesion.

Page 226: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 224

767 //Se devuelve una tabla con todos los datos del grupo tutorizado 768 function obtener_grupos_tutorizados() 769 { 770 $login = $_SESSION["id"]; 771 /* 772 $link = Conectar(); 773 $sql = "SELECT curso, letra, aula, delegado 774 FROM grupo 775 WHERE tutor='$login'"; 776 //ejecutamos la consulta 777 $resultado = consulta ($sql, $link); 778 if ($resultado) 779 { 780 while ($fila = siguiente($resultado)) 781 { 782 $tabla[$i]["curso"] = $fila["curso"]; 783 $tabla[$i]["letra"] = $fila["letra"]; 784 $tabla[$i]["aula"] = $fila["aula"]; 785 $tabla[$i]["delegado"] = $fila["delegado"]; 786 $i++; 787 } 788 } 789 else 790 { 791 echo "Se produjo un error al acceder a las notas del alumno<br>\n"; 792 return; 793 } 794 */ 795 $link = Conectar(); 796 $sql = "SELECT curso, letra 797 FROM grupo 798 WHERE tutor='$login'"; 799 //ejecutamos la consulta 800 $resultado = consulta ($sql, $link); 801 if ($resultado) 802 { 803 while ($fila = siguiente($resultado)) 804 { 805 $tabla[$i]["codgrupo"] = $fila["curso"] . "-" . $fila["letra"]; 806 $tabla[$i]["curso"] = $fila["curso"]; 807 $tabla[$i]["letra"] = $fila["letra"]; 808 //$tabla[$i]["aula"] = $fila["aula"]; 809 //$tabla[$i]["delegado"] = $fila["delegado"]; 810 echo "grupo vale:" . $tabla[$i]["codgrupo"] . "<br>\n"; 811 $i++; 812 } 813 } 814 else 815 { 816 echo "Se produjo un error al acceder a las notas del alumno<br>\n"; 817 return; 818 } 819 desconectar($link); 820 return $tabla; 821 } 822 823 // 824 //El formato del codgrupo es "curso-letra" 825 function obtener_datos_grupo ($codgrupo) 826 { 827 828 $curso = substr($codgrupo,0, 1); 829 $letra = substr($codgrupo,2, 1); 830 $login = $_SESSION["id"]; 831 //echo "curso vale: $curso<br>\n"; 832 //echo "letra vale: $letra<br>\n"; 833 $link = Conectar(); 834 $sql = "SELECT curso, letra, aula, delegado 835 FROM grupo 836 WHERE tutor='$login' and curso='$curso' and letra='$letra'"; 837 //ejecutamos la consulta 838 $resultado = consulta ($sql, $link); 839 if ($resultado) 840 { 841 if ($fila = siguiente($resultado)) 842 { 843 $tabla["codgrupo"] = $curso . "-" . $letra;

Page 227: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 225

844 $tabla["curso"] = $curso; 845 $tabla["letra"] = $letra; 846 $tabla["aula"] = $fila["aula"]; 847 $tabla["delegado"] = $fila["delegado"]; 848 849 if (isset($fila["delegado"])) 850 { 851 $sql_alumnos = "SELECT usu.apellido1, usu.apellido2, usu. 852 nombre, usu.login 853 FROM usuario usu 854 WHERE usu.login='" . $fila["delegado"] . 855 "'"; 856 $res_alumno = consulta ($sql_alumnos, $link); 857 858 if ($fila_alu = siguiente($res_alumno)) 859 { 860 $tabla["del_nombre"] = $fila_alu["nombre"]; 861 $tabla["del_ape1"] = $fila_alu["apellido1"]; 862 $tabla["del_ape2"] = $fila_alu["apellido2"]; 863 } 864 } 865 else 866 { 867 $tabla["del_nombre"] = ""; 868 $tabla["del_ape1"] = ""; 869 $tabla["del_ape2"] = ""; 870 } 871 872 //echo "aula vale " . $fila["aula"] . "<br>\n"; 873 // echo "grupo vale:" . $tabla[$i]["codgrupo"] . "<br>\n"; 874 } 875 else 876 { 877 echo "fila nula<br>\n"; 878 } 879 } 880 else 881 { 882 echo "Se produjo un error al acceder a las notas del alumno<br>\n"; 883 return; 884 } 885 desconectar($link); 886 return $tabla; 887 } 888 889 function obtener_alumnos_grupo($codgrupo) 890 { 891 $curso = substr($codgrupo,0, 1); 892 $letra = substr($codgrupo,2, 1); 893 $login = $_SESSION["id"]; 894 echo "curso vale: $curso<br>\n"; 895 echo "letra vale: $letra<br>\n"; 896 $link = Conectar(); 897 898 //obtener los datos de los alumnos que estan en ese curso y letra 899 $sql_alumnos = "SELECT usu.apellido1, usu.apellido2, usu.nombre, usu. 900 login 901 FROM usuario usu, alumno alu 902 WHERE alu.curso='$curso' and alu.letra='$letra' and alu. 903 login=usu.login 904 ORDER BY usu.apellido1"; 905 $res_alumno = consulta ($sql_alumnos, $link); 906 echo "sql vale: $sql_alumnos<br>\n"; 907 $i = 0; 908 909 if ($res_alumno) 910 { 911 echo "dentro if<br>\n"; 912 while ($fila_alu = siguiente($res_alumno)) 913 { 914 echo "login vale: " .$fila_alu["usu.login"]."<br>\n"; 915 $tabla[$i]["nombre"] = $fila_alu["nombre"]; 916 $tabla[$i]["apellido1"] = $fila_alu["apellido1"]; 917 $tabla[$i]["apellido2"] = $fila_alu["apellido2"]; 918 $tabla[$i]["login"] = $fila_alu["login"]; 919 echo "login vale: " .$fila_alu["login"]."<br>\n"; 920 $i++;

Page 228: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 226

921 } 922 } 923 else 924 { 925 echo "se produjo un error en obtener_alumnos_grupo "; 926 echo mysql.errno(); 927 } 928 929 desconectar($link); 930 return $tabla; 931 932 } 933 934 935 function hacer_delegado($codgrupo, $alumno) 936 { 937 $curso = substr($codgrupo,0, 1); 938 $letra = substr($codgrupo,2, 1); 939 if (strcmp ($alumno, "NULL") == 0) 940 { 941 $sql = "UPDATE `webcole`.`grupo` 942 SET `delegado` = NULL 943 WHERE CONVERT(`grupo`.`curso` USING utf8) = '$curso' 944 AND CONVERT(`grupo`.`letra` USING utf8) = '$letra' 945 LIMIT 1;" ; 946 947 } 948 else 949 { 950 $sql = "UPDATE `webcole`.`grupo` 951 SET `delegado` = '$alumno' 952 WHERE CONVERT(`grupo`.`curso` USING utf8) = '$curso' 953 AND CONVERT(`grupo`.`letra` USING utf8) = '$letra' 954 LIMIT 1;" ; 955 956 } 957 $link = Conectar(); 958 959 $result = consulta ($sql, $link); 960 if (!$result) 961 echo "error: " . mysql_error($link) . " codigo: " . mysql_errno(); 962 963 Desconectar ($link); 964 return $result; //devolver ok o ko 965 } 966 967 function rellenar_eventos_curso() 968 { 969 $conn = Conectar(); 970 $sql="SELECT * FROM evento WHERE titulo = 'Curso' ORDER BY fecha"; 971 $res=consulta($sql,$conn); 972 973 while($row = siguiente($res)) 974 { 975 $fecha=split("-",sacarFecha($row["fecha"])); 976 $fechaComparar = "".$fecha[2].$fecha[1].$fecha[0]; 977 if($fechaComparar >= date("Ymd")) 978 for($i=0; $i<3 && $i<numeroFilas($res);$i++) 979 echo "<p><span class='fechaNoticia'>".sacarFecha($row[ 980 "fecha"])." </span>".tohtml($row["descripcion"])." </p> 981 "; 982 } 983 desconectar($conn); 984 } 985 986 987 function bienvenida() 988 { 989 //include("bd.php"); 990 $dp = Conectar(); 991 $sql = 'SELECT * FROM usuario WHERE login ="' . $_SESSION["id"] . 992 '"'; 993 $resultado = consulta($sql, $dp); 994 while($row = siguiente($resultado)) 995 echo 'Bienvenido ' . $row['nombre']; 996 desconectar($dp); 997 echo "<br/>\n<a href='/webcole/cerrar_sesion.php'>Cerrar

Page 229: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 227

998 sesi&oacute;n</a>"; 999 } 1000 1001 1002 ?>

Page 230: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 228

intranetProfe.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 6 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 7 <html xmlns="http://www.w3.org/1999/xhtml"> 8 <head> 9 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 10 <title>CP Emilio Lluch</title> 11 <link href="css/general.css" rel="stylesheet" type="text/css" /> 12 13 <script type="text/javascript" src="./js/fecha.js"> </script> 14 15 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 16 </head> 17 18 <body onload="javascript:displayTime();"> 19 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 20 <tr> 21 <td style="width: 150px;" class="logo">&nbsp;</td> 22 <td colspan="2" class="titulo">&nbsp;</td> 23 </tr> 24 <tr> 25 <td class="fecha">&nbsp;</td> 26 <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> 27 </tr> 28 <tr> 29 <td class="menu"> 30 <ul> 31 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 32 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 33 <li><a href="/webcole/Profesor_profesores.php">Profesores</a></li> 34 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 35 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia </a>< 36 /li> 37 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones </a> 38 </li> 39 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos</a>< 40 /li> 41 <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de 42 anuncios </a></li> 43 </ul> </td> 44 <td class="general"> 45 <p style='text-align: center ; font-weight: bold; font-size:18px'> 46 Intranet Profesor 47 </p> 48 <p> 49 <?php 50 51 //include("bd.php"); 52 $conn = Conectar(); 53 $sql = "SELECT * FROM usuario WHERE login = '" . $_SESSION[ 54 "id"] ."'"; 55 $resultado = consulta($sql, $conn); 56 $row = siguiente($resultado); 57 echo tohtml($row['apellido1']) . " " . tohtml($row[ 58 'apellido2']) . ", " . tohtml($row['nombre']); 59 desconectar($conn); 60 ?> 61 </p> 62 </td> 63 <td class="general">&nbsp;</td> 64 </tr> 65 <tr> 66 <td><?php 67 bienvenida(); 68 ?></td> 69 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 70 <?php 71 rellenar_eventos_curso(); 72 ?> 73 </td>

Page 231: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 229

74 </tr> 75 </table> 76 </body> 77 </html>

Page 232: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 230

Profesor_alumnos.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 <?php 5 //leemos los datos recibidos (si se reciben) 6 $codasig = $_REQUEST["codasig"]; 7 $asignaturas = asignaturas_profesor(); 8 9 if (!isset($codasig)) 10 { 11 $codasig = -1; 12 } 13 else 14 { 15 $encontrado = false; 16 foreach ($asignaturas as $actual ) 17 { 18 if ( strcmp($actual["codasig"],$codasig ) == 0) 19 { 20 $encontrado = true; 21 } 22 } 23 if (!$encontrado) 24 { 25 $codasig = -1; 26 } 27 } 28 ?> 29 30 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 31 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 32 <html xmlns="http://www.w3.org/1999/xhtml"> 33 <head> 34 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 35 <title>CP Emilio Lluch</title> 36 <link href="css/general.css" rel="stylesheet" type="text/css" /> 37 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 38 <link href="css/profesor.css" rel="stylesheet" type="text/css" /> 39 <script type="text/javascript" src="./js/fecha.js"> </script> 40 <script type="text/javascript" > 41 <!-- 42 function buscarasignatura() 43 { 44 //var id = document.asignatura.idasig.value; 45 var id = document.getElementById("asignatura").idasig.value; 46 document.location.href='/webcole/Profesor_alumnos.php?codasig=' + 47 id ; 48 } 49 --> 50 </script> 51 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 52 </head> 53 54 <body onload="javascript:displayTime();"> 55 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 56 <tr> 57 <td style="width: 150px;" class="logo">&nbsp;</td> 58 <td colspan="2" class="titulo">&nbsp;</td> 59 </tr> 60 <tr> 61 <td class="fecha">&nbsp;</td> 62 <td colspan="2" class="fecha"> 63 <div id="campoHora">&nbsp;</div> 64 </td> 65 </tr> 66 <tr> 67 <td class="menu"> 68 <ul> 69 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 70 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 71 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 72 /li> 73 <li><a href="/webcole/Profesor_notas.php">Notas</a></li>

Page 233: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 231

74 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 75 /a></li> 76 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 77 </a></li> 78 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 79 /a></li> 80 <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de 81 anuncios </a></li> 82 </ul> 83 </td> 84 <td class="general" style="text-align: center;"> 85 <p style='text-align: center ; font-weight: bold; font-size:18px'> 86 Alumnos del profesor 87 </p> 88 <div style="text-align: center;"> 89 <form method='get' action='#' id="asignatura"> 90 <p style="font-weight: bold;">Asignaturas disponibles 91 <select name="idasig" onchange="javascript:buscarasignatura();"> 92 <option value='-1'>Selecciona una asignatura</option> 93 <?php 94 95 foreach ($asignaturas as $asig) 96 { 97 if ( $codasig == $asig["codasig"]) 98 echo "<option value='" . $asig["codasig"]. "' 99 selected='selected'>" . tohtml($asig["nombre"]) 100 . "</option>\n"; 101 else 102 echo "<option value='" . $asig["codasig"]. "'>" 103 . tohtml($asig["nombre"]) . "</option>\n"; 104 } 105 106 //Obtenemos los datos necesarios para rellenar la tabla 107 if ( $codasig <= 0 ) 108 { 109 $nombre = "----"; 110 $codigo = "----"; 111 $curso = "----"; 112 $letra = "-"; 113 $horario = "----"; 114 $clase = "----"; 115 116 } 117 else 118 { 119 //recuperamos los datos 120 $datos = obtener_datos_asignatura($codasig); 121 $nombre = $datos["nombre"]; 122 $codigo = $codasig; 123 $curso = $datos["curso"]; 124 $letra = $datos["letra"]; 125 $horario = $datos["horario"]; 126 $clase = $datos["aula"]; 127 128 $alumnos = obtener_alumnos_asignatura($codasig); 129 } 130 ?> 131 </select> 132 </p> 133 </form> 134 135 <br/> 136 <table style="text-align: center; width: 100%;height: 100%" 137 border="1" class="general"> 138 <tr> 139 <td style="height: 39px; width: 25%;" class='cabecera'><div 140 style="text-align: right" ><strong>Nombre Asignatura </strong>< 141 /div></td> 142 <td style="width: 25%;"><div style="text-align: center;"><?php 143 echo $nombre ?>&nbsp;</div></td> 144 <td style="width: 25%;" class='cabecera'><div style="text- 145 align: right;" ><strong>C&oacute;digo Asignatura </strong></div> 146 </td> 147 <td style="width: 25%;"><div style="text-align: center;" >< 148 ?php echo $codigo ?>&nbsp;</div></td> 149 </tr> 150 <tr>

Page 234: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 232

151 <td style="height: 34px;"><div style="text-align: right;" 152 class='cabecera'><strong>Curso</strong></div></td> 153 <td><div style="text-align: center;" ><?php echo $curso ?> 154 &nbsp;</div></td> 155 <td class='cabecera'><div style="text-align: right;"><strong> 156 Letra</strong></div></td> 157 <td><div style="text-align: center;"><?php echo $letra ?>&nbsp; 158 </div></td> 159 </tr> 160 <tr> 161 <td style="height: 34px;" class='cabecera'><div style="text- 162 align: right;"><strong>Horario</strong></div></td> 163 <td><div style="text-align: center;"><?php echo $horario ?> 164 &nbsp;</div></td> 165 <td class='cabecera'><div style="text-align: right;"><strong> 166 Clase</strong></div></td> 167 <td><div style="text-align: center;"><?php echo $clase ?>&nbsp; 168 </div></td> 169 </tr> 170 <tr> 171 <td style="height: 34px;" colspan="4"><div style="text-align: 172 center;"><strong>Alumnos</strong></div></td> 173 </tr> 174 <tr> 175 <td style="height: 34px;" class='cabecera'><div style="text- 176 align: center;"><strong>Primer Apellido </strong></div></td> 177 <td class='cabecera'><div style="text-align: center;"><strong> 178 Segundo Apellido </strong></div></td> 179 <td class='cabecera'><div style="text-align: center;"><strong> 180 Nombre</strong></div></td> 181 <td class='cabecera'><div style="text-align: center;"><strong> 182 Login</strong></div></td> 183 </tr> 184 <?php 185 if (isset($alumnos)) 186 { 187 $i = 0; 188 foreach ($alumnos as $actual) 189 { 190 191 $resto = $i % 2; 192 echo"<tr class='fila" . $resto . "'>\n"; 193 echo" <td style=\"height: 34px;\"><div style=\"text-align: 194 center;\" >" . tohtml($actual["apellido1"]) . " </div></td> 195 \n"; 196 echo" <td><div style=\"text-align: center;\"> " . tohtml( 197 $actual["apellido2"]) . " </div></td>\n"; 198 echo" <td><div style=\"text-align: center;\"> " . tohtml( 199 $actual["nombre"]). " </div></td>\n"; 200 echo" <td><div style=\"text-align: center;\"> " . tohtml( 201 $actual["login"]) . "</div></td>\n"; 202 echo"</tr>\n"; 203 $i++; 204 } 205 } 206 ?> 207 </table> 208 </div> 209 </td> 210 <td class="general">&nbsp;</td> 211 </tr> 212 <tr> 213 <td><?php 214 bienvenida(); 215 ?></td> 216 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 217 <?php 218 rellenar_eventos_curso(); 219 ?> 220 </td> 221 </tr> 222 </table> 223 </body> 224 </html>

Page 235: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 233

Profesor_profesores.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 6 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 7 <html xmlns="http://www.w3.org/1999/xhtml"> 8 <head> 9 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 10 <title>CP Emilio Lluch</title> 11 <link href="css/general.css" rel="stylesheet" type="text/css" /> 12 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 13 <link href="css/profesor.css" rel="stylesheet" type="text/css" /> 14 <script type="text/javascript" src="./js/fecha.js"> </script> 15 16 17 18 </head> 19 20 <body onload="javascript:displayTime();"> 21 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 22 <tr> 23 <td style="width: 150px;" class="logo">&nbsp;</td> 24 <td colspan="2" class="titulo">&nbsp;</td> 25 </tr> 26 <tr> 27 <td class="fecha">&nbsp;</td> 28 <td colspan="2" class="fecha"> 29 <div id="campoHora">&nbsp;</div> 30 </td> 31 </tr> 32 <tr> 33 <td class="menu"> 34 <ul> 35 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 36 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 37 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 38 /li> 39 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 40 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 41 /a></li> 42 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 43 </a></li> 44 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 45 /a></li> 46 <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de 47 anuncios </a></li> 48 </ul> 49 </td> 50 <td class="general"><p style="font-weight: bold;">Profesores del 51 Colegio P&uacute;blico Emilio Lluch&nbsp;&nbsp;</p> 52 <table border="1" style='width: 100%;'> 53 54 <?php 55 $profesores = listado_profesores(); 56 57 echo "<tr >\n"; 58 echo " <td style='width: 20%;' class='cabecera'>Primer 59 apellido</td>\n"; 60 echo " <td style='width: 20%;' class='cabecera'>Segundo 61 apellido</td>\n"; 62 echo " <td style='width: 20%;' class='cabecera'>Nombre</td> 63 \n"; 64 echo " <td style='width: 20%;' class='cabecera'>E-mail</td> 65 \n"; 66 echo " <td style='width: 20%;' class='cabecera'>Tutorias< 67 /td>\n"; 68 echo "</tr>\n"; 69 70 71 $i = 0; 72 73 foreach ($profesores as $actual)

Page 236: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 234

74 { 75 $resto = $i % 2; 76 echo "<tr class='fila" . $resto . "'>\n"; 77 echo "<td>" . tohtml($actual["apellido1"]) . "</td>"; 78 echo "<td>" . tohtml($actual["apellido2"]) . "</td>"; 79 echo "<td>" . tohtml($actual["nombre"]) . "</td>"; 80 echo "<td><a href='mailto:" . $actual["email"] . "'>" . 81 $actual["email"] . "</a></td>"; 82 echo "<td>" . $actual["tutorias"] . "</td>"; 83 echo "</tr>\n"; 84 85 $i++; 86 } 87 ?> 88 89 </table> 90 </td> 91 <td class="general">&nbsp;</td> 92 </tr> 93 <tr> 94 <td><?php 95 bienvenida(); 96 ?></td> 97 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 98 <?php 99 rellenar_eventos_curso(); 100 ?> 101 </td> 102 </tr> 103 </table> 104 </body> 105 </html>

Page 237: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 235

guardar_notas.php 1 <?php 2 require_once "profesor_inc.php"; 3 4 $codasig = $_REQUEST["asignatura"]; 5 $trimestre = $_REQUEST["trimestre"]; 6 $datos = $_REQUEST["datos"]; 7 8 if (isset($codasig) && isset($trimestre) && isset($datos) ) 9 { 10 11 //echo "datos vale: $datos<br>\n"; 12 //separamos los alumnos (con sus notas) unos de otros 13 $alu_notas = explode( "|" , $datos); 14 15 foreach ($alu_notas as $actual) 16 { 17 if(strlen($actual) > 1) 18 { 19 20 $lognota = explode(";", $actual); 21 $aux = explode(":", $lognota[0]); $login = $aux[1]; 22 $aux = explode(":", $lognota[1]); $nota = $aux[1]; 23 //echo "Login vale: $login, Nota vale: $nota<br>\n"; 24 25 poner_nota($login, $codasig, $trimestre, $nota); 26 } 27 } 28 } 29 else 30 { 31 $codasig = $_REQUEST["asignatura"]; 32 $trimestre = $_REQUEST["trim"]; 33 $login = $_REQUEST["login"]; 34 $nota = $_REQUEST["nota"]; 35 36 if (isset($codasig) && isset($trimestre) && isset($login) && isset( 37 $nota)) 38 { 39 poner_nota($login, $codasig, $trimestre, $nota); 40 } 41 else 42 { 43 header("Location: Profesor_notas.php"); 44 } 45 } 46 47 //header("Location: Profesor_notas.php"); 48 49 ?> 50 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 51 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 52 <html xmlns="http://www.w3.org/1999/xhtml"> 53 <head> 54 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 55 <META HTTP-EQUIV="Refresh" CONTENT="0;URL=Profesor_notas.php?trimestre=<? 56 echo $trimestre;?>&codasig=<? echo $codasig;?>"> 57 58 59 <title>CP Emilio Lluch</title> 60 <link href="css/general.css" rel="stylesheet" type="text/css" /> 61 62 <script type="text/javascript" src="./js/fecha.js"> </script> 63 64 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 65 </head> 66 <body></body></html>

Page 238: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 236

Profesor_notas.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 <?php 5 //leemos los datos recibidos (si se reciben) 6 $codasig = $_REQUEST["codasig"]; 7 $trimestre = $_REQUEST["trimestre"]; 8 9 if (!isset($codasig)) 10 { 11 $codasig = -1; 12 } 13 if (!isset($trimestre)) 14 { 15 $trimestre = -1; 16 } 17 18 //Si las dos variables estan definidas deberemos buscar los datos que 19 necesitaran. 20 ?> 21 22 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. 23 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 24 <html xmlns="http://www.w3.org/1999/xhtml"> 25 <head> 26 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 27 <title>CP Emilio Lluch</title> 28 <link href="css/general.css" rel="stylesheet" type="text/css" /> 29 <link href="css/profesor.css" rel="stylesheet" type="text/css" /> 30 31 <script type="text/javascript" src="./js/fecha.js"> </script> 32 <script type="text/javascript" src="./js/profesor.js"> </script> 33 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 34 </head> 35 36 <body onload="javascript:displayTime();"> 37 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 38 <tr> 39 <td style="width: 150px;" class="logo">&nbsp;</td> 40 <td colspan="2" class="titulo">&nbsp;</td> 41 </tr> 42 <tr> 43 <td class="fecha">&nbsp;</td> 44 <td colspan="2" class="fecha"> 45 <div id="campoHora">&nbsp;</div> 46 </td> 47 </tr> 48 <tr> 49 <td class="menu"> 50 <ul> 51 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 52 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 53 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 54 /li> 55 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 56 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 57 /a></li> 58 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 59 </a></li> 60 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 61 /a></li> 62 <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de 63 anuncios </a></li> 64 </ul> 65 </td> 66 <td class="general"> 67 <p style='text-align: center ; font-weight: bold; font-size:18px'> 68 Notas 69 </p> 70 <div align="center"> 71 <form name='asignatura' method='get' action='#'> 72 <br /> 73 <strong>Asignaturas disponibles</strong>

Page 239: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 237

74 <select name="idasig" onchange="javascript:buscarasignatura();"> 75 <option value='-1'>Selecciona una asignatura</option> 76 <?php 77 $asignaturas = asignaturas_profesor(); 78 foreach ($asignaturas as $asig) 79 { 80 if ( $codasig == $asig["codasig"]) 81 echo "<option value='" . $asig["codasig"]. "' 82 selected='selected'>" . tohtml($asig["nombre"]) . "</option> 83 \n"; 84 else 85 echo "<option value='" . $asig["codasig"]. "'>" . tohtml( 86 $asig["nombre"]) . "</option>\n"; 87 } 88 ?> 89 </select> 90 <? 91 //Obtenemos los datos necesarios para rellenar la tabla 92 if ( $codasig <= 0 ) 93 { 94 $nombre = "----"; 95 $codigo = "----"; 96 $curso = "----"; 97 $letra = "-"; 98 $horario = "----"; 99 $clase = "----"; 100 101 } 102 else 103 { 104 //recuperamos los datos 105 $datos = obtener_datos_asignatura($codasig); 106 $nombre = $datos["nombre"]; 107 $codigo = $codasig; 108 $curso = $datos["curso"]; 109 $letra = $datos["letra"]; 110 $horario = $datos["horario"]; 111 $clase = $datos["aula"]; 112 113 $alumnos = obtener_alumnos_asignatura_trimestre($codasig, 114 $trimestre); 115 } 116 117 ?> 118 119 <br /> 120 <br /> 121 <strong>Trimestre por defecto</strong> 122 <select name="trimestre" onchange="javascript:cambio_trimestre();"> 123 <? 124 echo"<option value=\"-1\">Trimestre</option>\n"; 125 for ($i = 1; $i <= TRIMESTRE; $i++) 126 { 127 if ( $trimestre == $i) 128 { 129 echo"<option value=\"$i\" selected=\"selected\">$i< 130 /option>\n"; 131 } 132 else 133 { 134 echo"<option value=\"$i\" >$i</option>\n"; 135 } 136 } 137 ?> 138 </select> 139 </form> 140 </div> 141 <br /> 142 143 <table style='width: 100%; height:100%; text-align:center;' 144 border="1" class="general"> 145 <tr> 146 <td style='width: 25%; text-align: right ; font-weight: 147 bold;' class="cabecera"> 148 Nombre Asignatura 149 </td> 150 <td style='width: 25%; text-align: center ; '>

Page 240: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 238

151 <?php echo tohtml($nombre) ?>&nbsp; 152 </td> 153 <td style='width: 25%; text-align: right ; font-weight: 154 bold;' class="cabecera"> 155 C&oacute;digo Asignatura 156 </td> 157 <td colspan="3" style='width: 25%; text-align: center ; '> 158 <?php echo $codigo ?>&nbsp; 159 </td> 160 </tr> 161 <tr> 162 <td style='width: 25%; text-align: right ; font-weight: 163 bold;' class="cabecera"> 164 Curso 165 </td> 166 <td style='width: 25%; text-align: center ; '> 167 <?php echo $curso ?>&nbsp; 168 </td> 169 <td style='width: 25%; text-align: right ; font-weight: 170 bold;' class="cabecera"> 171 Letra 172 </td> 173 <td colspan="3" style='width: 25%; text-align: center ; '> 174 <?php echo $letra ?>&nbsp; 175 </td> 176 </tr> 177 <tr> 178 <td style='width: 25%; text-align: right ; font-weight: 179 bold;' class="cabecera"> 180 Horario 181 </td> 182 <td style='width: 25%; text-align: center ; '> 183 <?php echo $horario ?>&nbsp; 184 </td> 185 <td style='width: 25%; text-align: right ; font-weight: 186 bold;' class="cabecera"> 187 Clase 188 </td> 189 <td colspan="3" style='width: 25%; text-align: center ; '> 190 <?php echo $clase ?>&nbsp; 191 </td> 192 </tr> 193 <tr> 194 <td height="39" colspan="6"> 195 <div align="center"><strong>Alumnos</strong></div> 196 </td> 197 </tr> 198 <tr> 199 <td style='width: 25%; text-align: center ; font-weight: 200 bold;' class="cabecera"> 201 Primer Apellido 202 </td> 203 <td style='width: 25%; text-align: center ; font-weight: 204 bold;' class="cabecera"> 205 Segundo Apellido 206 </td> 207 <td style='width: 25%; text-align: center ; font-weight: 208 bold;' class="cabecera"> 209 Nombre 210 </td> 211 212 <td style='width: 25%; text-align: center ; font-weight: 213 bold;' class="cabecera" colspan="2"> 214 Nota &nbsp; Guardar 215 </td> 216 <!--<td style='width:13%; text-align: center ; font-weight: 217 bold;' class="cabecera"> 218 Guardar 219 </td> --> 220 </tr> 221 222 <?php 223 if (isset($alumnos)) 224 { 225 $i = 0; 226 foreach ($alumnos as $actual) 227 {

Page 241: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 239

228 229 $resto = $i % 2; 230 echo "<tr class='fila" . $resto . "'>\n"; 231 echo" <td style=' text-align: center ;'>" . tohtml( 232 $actual["apellido1"]) . " </td>\n"; 233 echo" <td style=' text-align: center ;'>" . tohtml( 234 $actual["apellido2"]) . " </td>\n"; 235 //echo" <td><div align=\"center\"> " . tohtml($actual[ 236 "nombre"]). " </div></td>\n"; 237 echo" <td style=' text-align: center ;'> " . tohtml( 238 $actual["nombre"]). " </td>\n"; 239 echo" <td style=' text-align: center ;' colspan='2'> 240 "; 241 echo" <form method='get' name='alumno_" . $actual[ 242 "login"] . "' action='guardar_notas.php'>\n 243 <input type='text' name='nota' size='5' 244 onchange='javascript:nueva_nota(\"" . $actual[ 245 "login"] ."\");' value='".$actual["nota"]." '/> 246 \n 247 <input type='button' name='Submit' 248 value='Guardar' onclick='javascript: 249 enviar_alumno(\"" . $actual["login"] . "\");'/> 250 \n 251 <input type='hidden' name='trim' value=''/> 252 <input type='hidden' name='cambiado' 253 value='false'/> 254 <input type='hidden' name='login' value='" . 255 tohtml($actual["login"]). "'/> 256 <input type='hidden' name='asignatura' 257 value=''/>\n 258 </form>\n 259 </td>\n"; 260 echo"</tr>\n"; 261 262 $i++; 263 264 } 265 266 267 } 268 ?> 269 270 </table> 271 <form method='get' name='general' action='/webcole/guardar_notas. 272 php'> 273 <input type='hidden' name='datos' value=''/> 274 <input type='hidden' name='asignatura' value='' /> 275 <input type='hidden' name='trimestre' value=''/> 276 <div align="center"><input type="button" name='Submit' 277 value='Guardar Todos' onclick='javascript:enviar_todos();'/>< 278 /div> 279 280 </form> 281 </td> 282 <td class="general">&nbsp;</td> 283 </tr> 284 <tr> 285 <td><?php 286 bienvenida(); 287 ?></td> 288 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 289 <?php 290 rellenar_eventos_curso(); 291 ?> 292 </td> 293 </tr> 294 </table> 295 </body> 296 </html>

Page 242: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 240

Profesor_faltas.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 <?php 5 //leemos los datos recibidos (si se reciben) 6 $codasig = $_REQUEST["codasig"]; 7 $fecha = $_REQUEST["fecha"]; 8 9 $asignaturas = asignaturas_profesor(); 10 if (!isset($codasig)) 11 { 12 $codasig = -1; 13 } 14 else 15 { 16 if (!array_key_exists($codasig, $asignaturas)) 17 { 18 $codasig = -1; 19 } 20 } 21 22 if (!isset($fecha)) 23 { 24 $fecha = ""; 25 } 26 27 28 //Si las dos variables estan definidas deberemos buscar los datos que 29 necesitaran. 30 ?> 31 32 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. 33 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 34 <html xmlns="http://www.w3.org/1999/xhtml"> 35 <head> 36 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 37 <title>CP Emilio Lluch</title> 38 <link href="css/general.css" rel="stylesheet" type="text/css" /> 39 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 40 <link href="css/profesor.css" rel="stylesheet" type="text/css" /> 41 <script type="text/javascript" src="./js/fecha.js"> </script> 42 <script type="text/javascript" src="./js/profesor.js"> </script> 43 <script type="text/javascript"> 44 45 </script> 46 47 48 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 49 </head> 50 51 <body onload="javascript:displayTime();"> 52 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 53 <tr> 54 <td style="width: 150px;" class="logo">&nbsp;</td> 55 <td colspan="2" class="titulo">&nbsp;</td> 56 </tr> 57 <tr> 58 <td class="fecha">&nbsp;</td> 59 <td colspan="2" class="fecha"> 60 <div id="campoHora">&nbsp;</div> 61 </td> 62 </tr> 63 <tr> 64 <td class="menu"> 65 <ul> 66 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 67 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 68 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 69 /li> 70 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 71 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 72 /a></li> 73 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones

Page 243: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 241

74 </a></li> 75 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 76 /a></li> 77 <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de 78 anuncios </a></li> 79 </ul> 80 </td> 81 <td class="general"> 82 <p style='text-align: center ; font-weight: bold; font-size:18px'> 83 Faltas de Asistencia 84 </p> 85 <div align="center"> 86 87 88 <form name='asignatura' method='get' action='#'> 89 <br /> 90 <strong>Asignaturas disponibles</strong> 91 <select name="idasig" onchange="javascript:buscarasignaturafaltas(); 92 "> 93 <option value='-1'>Selecciona una asignatura</option> 94 <?php 95 96 foreach ($asignaturas as $asig) 97 { 98 if ( $codasig == $asig["codasig"]) 99 echo "<option value='" . $asig["codasig"]. "' 100 selected='selected'>" . tohtml($asig["nombre"]) . "</option> 101 \n"; 102 else 103 echo "<option value='" . $asig["codasig"]. "'>" . tohtml( 104 $asig["nombre"]) . "</option>\n"; 105 } 106 ?> 107 </select> 108 <? 109 //Obtenemos los datos necesarios para rellenar la tabla 110 if ( $codasig <= 0 ) 111 { 112 $nombre = "----"; 113 $codigo = "----"; 114 $curso = "----"; 115 $letra = "-"; 116 $horario = "----"; 117 $clase = "----"; 118 119 } 120 else 121 { 122 //recuperamos los datos 123 $datos = obtener_datos_asignatura($codasig); 124 $nombre = $datos["nombre"]; 125 $codigo = $codasig; 126 $curso = $datos["curso"]; 127 $letra = $datos["letra"]; 128 $horario = $datos["horario"]; 129 $clase = $datos["aula"]; 130 131 if ( strlen($fecha) > 0 ) 132 $alumnos = obtener_faltas_alumnos ($codasig, $fecha) ; 133 } 134 135 ?> 136 <br /> 137 <br /> 138 <strong>Fecha de la falta </strong> 139 <input type='text' value='<? echo $fecha; ?>' readonly="readonly" 140 size='10' name='fecha' onfocus="javascript:buscarasignaturafaltas(); 141 " /> 142 <input type='button' value='Selecciona Dia' 143 onclick="muestraCalendario('','asignatura','fecha')" /> 144 145 146 </form> 147 </div> 148 <br/> 149 150 <table style='width: 100%; height:100%; text-align:center;'

Page 244: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 242

151 border="1"> 152 <tr> 153 <td style='width:20%; text-align: right ; font-weight: bold;' 154 class='cabecera'>Nombre Asignatura </td> 155 <td style='width:20%; text-align: center ; ' ><?php echo tohtml( 156 $nombre) ?></td> 157 <td style='width:20%; text-align: center ; ' >&nbsp;</td> 158 <td style='width:20%; text-align: right ; font-weight: bold;' 159 colspan="3" class='cabecera'>C&oacute;digo Asignatura</td> 160 <td style='width:20%; text-align: center ; ' colspan="3"><?php 161 echo $codigo ?></td> 162 </tr> 163 <tr> 164 <td style='width:20%; text-align: right ; font-weight: bold;' 165 class='cabecera'>Curso</td> 166 <td style='width:20%; text-align: center ; '><?php echo $curso 167 ?></td> 168 <td style='width:20%; text-align: center ; ' >&nbsp;</td> 169 <td style='width:20%; text-align: right ; font-weight: bold; 170 'colspan="3" class='cabecera'>Letra</td> 171 <td style='width:20%; text-align: center ; 'colspan="3"><?php 172 echo $letra ?>&nbsp;</td> 173 </tr> 174 <tr> 175 <td style='width:20%; text-align: right ; font-weight: bold;' 176 class='cabecera'>Horario</td> 177 <td style='width:20%; text-align: center ; '><?php echo 178 $horario ?></td> 179 <td style='width:20%; text-align: center ; ' >&nbsp;</td> 180 <td style='width:20%; text-align: right ; font-weight: bold; 181 'colspan="3" class='cabecera'>Clase</td> 182 <td style='width:20%; text-align: center ; 'colspan="3"><?php 183 echo $clase ?>&nbsp;</td> 184 </tr> 185 <tr> 186 <td style=' text-align: center ; font-weight: bold;'colspan="8"> 187 Alumno</td> 188 </tr> 189 <tr> 190 <!--<td style='width:3%; text-align: center ; font-weight: bold; 191 '>Sel</td> --> 192 <td style='width:20%; text-align: center ; font-weight: bold;' 193 class='cabecera'>Primer Apellido</td> 194 <td style='width:20%; text-align: center ; font-weight: bold;' 195 class='cabecera'>Segundo Apellido </td> 196 <td style='width:20%; text-align: center ; font-weight: bold;' 197 class='cabecera'>Nombre</td> 198 <td colspan="5" style='width:40%; ' class='cabecera'> 199 <span style='width:5%; text-align: left ;'>Sel</span> 200 <span style='width:20%; text-align: center ;'>Fecha</span> 201 <span style='width:5%; text-align: center ;'>Just</span> 202 <span style='width:25%; text-align: center ;'>Poner Falta< 203 /span> 204 <span style='width:25%; text-align: center ;'>Quitar Falta< 205 /span> 206 207 </td> 208 <!-- <td style='width:5%; text-align: center ; font-weight: 209 bold;'>Jus.</td> 210 <td style='width:10%; text-align: center ; font-weight: bold;'> 211 Poner Falta </td> 212 <td style='width:10%; text-align: center ; font-weight: bold;'> 213 Quitar Falta </td> 214 --> 215 </tr> 216 217 218 <?php 219 if (isset($alumnos)) 220 { 221 $i = 0; 222 foreach ($alumnos as $actual) 223 { 224 if (strlen($actual["login"]) > 0) 225 { 226 $resto = $i % 2; 227 echo"<tr class='fila" . $resto . "'>\n";

Page 245: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 243

228 229 //echo" <td style='width:3%; text-align: center ;'>< 230 form method='get' name='alumno_" . $actual["login"] 231 . "_1' action='poner_faltas.php'>\n 232 // </form></td> "; 233 echo" <td style='width:20%; text-align: center ;'> 234 " . tohtml($actual["apellido1"]) . " </td>\n"; 235 echo" <td style='width:20%; text-align: center ;'> 236 " . tohtml($actual["apellido2"]) . " </td>\n"; 237 //echo" <td><div align=\"center\"> " . tohtml( 238 $actual["nombre"]). " </div></td>\n"; 239 echo" <td style='width:20%; text-align: center ;'> 240 " . tohtml($actual["nombre"]). " </td>\n"; 241 /*echo" <td style='width:10%; text-align: center ;'> 242 <form method='get' name='alumno_" . $actual["login"] 243 . "_2' action='poner_faltas.php'>\n 244 </form></td>\n"; 245 echo" <td style='width:5%; text-align: center ;'>< 246 form method='get' name='alumno_" . $actual["login"] 247 . "_3' action='poner_faltas.php'>\n"; 248 echo" <td style='width:10%; text-align: center ;'> 249 <form method='get' name='alumno_" . $actual["login"] 250 . "' action='poner_faltas.php'>\n 251 <input type=\"checkbox\" 252 name=\"seleccionado\" />\n 253 <input type=\"checkbox\" name=\"checkbox\" 254 "; 255 if ($actual["justificada"] != 0 ) 256 { 257 echo "checked=\"checked\" 258 onchange=\"javascript:cambio('" .tohtml( 259 $actual["login"]). "');\"/> </td>\n"; 260 } 261 else 262 { 263 echo " onchange=\"javascript:cambio('" . 264 tohtml($actual["login"]). "');\"/> < 265 /form></td>\n"; 266 } 267 echo" <input type='button' name='Submit' 268 value='Poner Falta' onclick='javascript: 269 enviar_alumno_faltas(\"" . $actual["login"] . "\"); 270 '/>\n 271 <input type='hidden' name='cambiado' 272 value='false'/> 273 <input type='hidden' name='borrar' 274 value='false'/> 275 <input type='hidden' name='login' value='" . 276 tohtml($actual["login"]). "'/> 277 <input type='hidden' name='asignatura' 278 value=''/> 279 \n 280 </td>\n"; 281 echo" <td style='width:10%; text-align: center ;'>< 282 input type='button' name='Submit' value='Quitar 283 Falta' onclick='javascript:quitar_falta(\"" . 284 $actual["login"] . "\");'/>\n</td>\n"; 285 286 echo"</form>\n"; 287 */ 288 echo" <td colspan=\"5\" style='width:40%; '> 289 <form method='get' name='alumno_" . 290 $actual["login"] . "' 291 action='poner_faltas.php'> 292 <span style='width:20%; text-align: 293 left ;'><input type=\"checkbox\" 294 name=\"seleccionado\" /></span> 295 <span style='width:20%; text-align: 296 center ;'><input type='text' 297 name='fecha' size='6' value='". 298 $actual["fecha"]." '/></span> 299 <span style='width:20%; text-align: 300 center ;'><input type=\"checkbox\" 301 name=\"checkbox\" "; 302 if ($actual["justificada"] != 0 ) 303 { 304 echo "checked=\"checked\"

Page 246: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 244

305 onchange=\"javascript:cambio('" 306 .tohtml($actual["login"]). "'); 307 \"/></span>\n"; 308 } 309 else 310 { 311 echo " onchange=\"javascript: 312 cambio('" .tohtml($actual[ 313 "login"]). "');\"/></span>\n"; 314 } 315 echo" <span style='width:20%; text-align: 316 center ;'><input type='button' name='Submit' 317 value='Poner Falta' onclick='javascript: 318 enviar_alumno_faltas(\"" . $actual["login"] . "\"); 319 '/></span> 320 <span style='width:20%; text-align: 321 center ;'><input type='button' 322 name='Submit' value='Quitar Falta' 323 onclick='javascript:quitar_falta( 324 \"" . $actual["login"] . "\");'/>< 325 /span> 326 <input type='hidden' 327 name='cambiado' value='false'/> 328 <input type='hidden' name='borrar' 329 value='false'/> 330 <input type='hidden' name='login' 331 value='" . tohtml($actual["login"]). 332 "'/> 333 <input type='hidden' 334 name='asignatura' value=''/>\n 335 </form>"; 336 echo" </td>"; 337 echo"</tr>\n"; 338 $i++; 339 } 340 341 } 342 } 343 else 344 { 345 346 } 347 ?> 348 <!-- <input type='hidden' name='fecha' value=''/> --> 349 </table> 350 <form method='get' name='general' action='/webcole/poner_faltas. 351 php'> 352 <input type='hidden' name='datos' value=''/> 353 <input type='hidden' name='asignatura' value='' /> 354 <input type='hidden' name='fecha' value=''/><br/> 355 <div align="center">Poner falta a todos los alumnos 356 seleccionados<br/><input type="button" name='Submit' 357 value='Poner Falta a Todos' onclick='javascript: 358 enviar_todos_faltas();'/><br/></div> 359 360 </form> 361 </td> 362 <td class="general">&nbsp;</td> 363 </tr> 364 <tr> 365 <td><?php 366 bienvenida(); 367 ?></td> 368 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 369 <?php 370 rellenar_eventos_curso(); 371 ?> 372 </td> 373 </tr> 374 </table> 375 </body> 376 </html>

Page 247: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 245

poner_faltas.php 1 <?php 2 require_once "profesor_inc.php"; 3 4 $codasig = $_REQUEST["asignatura"]; 5 $fecha = $_REQUEST["fecha"]; 6 $datos = $_REQUEST["datos"]; 7 $borrar = $_REQUEST["borrar"]; 8 9 if (isset($codasig) && isset($fecha) && isset($datos) ) 10 { 11 12 //echo "datos vale: $datos<br>\n"; 13 //separamos los alumnos ( unos de otros 14 $alu_faltas = explode( "|" , $datos); 15 16 foreach ($alu_faltas as $actual) 17 { 18 if(strlen($actual) > 1) 19 { 20 21 $logfalta = explode(";", $actual); 22 $aux = explode(":", $logfalta[0]); $login = $aux[1]; 23 $aux = explode(":", $logfalta[1]); 24 25 if (strcmp($aux[1], "false") == 0) 26 { 27 $just = 0; 28 } 29 else 30 { 31 $just = 1; 32 } 33 //echo "Login vale: $login, Nota vale: $nota<br>\n"; 34 35 if (strcmp($borrar, "true")==0) 36 { 37 quitar_falta($login, $codasig, $fecha); 38 } 39 else 40 { 41 poner_falta($login, $codasig, $fecha, $just); 42 } 43 } 44 } 45 } 46 else 47 { 48 $codasig = $_REQUEST["asignatura"]; 49 $fecha = $_REQUEST["fecha"]; 50 $login = $_REQUEST["login"]; 51 $just = $_REQUEST["checkbox"]; 52 53 if (!isset($_REQUEST["checkbox"])) 54 { 55 $just = 0; 56 } 57 else 58 { 59 $just = 1; 60 } 61 62 if (isset($codasig) && isset($fecha) && isset($login)) 63 { 64 if (strcmp($borrar, "true")==0) 65 { 66 quitar_falta($login, $codasig, $fecha); 67 } 68 else 69 { 70 poner_falta($login, $codasig, $fecha, $just); 71 } 72 } 73 else

Page 248: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 246

74 { 75 header("Location: Profesor_faltas.php"); 76 echo "header<br>\n"; 77 } 78 } 79 80 //header("Location: Profesor_notas.php"); 81 82 ?> 83 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 84 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 85 <html xmlns="http://www.w3.org/1999/xhtml"> 86 <head> 87 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 88 <META HTTP-EQUIV="Refresh" CONTENT="0;URL=Profesor_faltas.php?codasig=<? 89 echo $codasig;?>&fecha=<? echo $fecha;?>"> 90 91 92 <title>CP Emilio Lluch</title> 93 <link href="css/general.css" rel="stylesheet" type="text/css" /> 94 95 <script type="text/javascript" src="./js/fecha.js"> </script> 96 97 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 98 </head> 99 <body> 100 <p style='text-align: center ; font-weight: bold; font-size:18px'> 101 Poner faltas 102 </p> 103 Para volver a la pantalla de poner faltas de asistencia pulsa <a 104 href="Profesor_faltas.php"> aqu&iacute; </a> 105 </body></html>

Page 249: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 247

Profesor_instalaciones.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. 6 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 7 <html xmlns="http://www.w3.org/1999/xhtml"> 8 <head> 9 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 10 <title>CP Emilio Lluch</title> 11 <link href="css/general.css" rel="stylesheet" type="text/css" /> 12 <link href="css/profesor.css" rel="stylesheet" type="text/css" /> 13 <script type="text/javascript" src="./js/fecha.js"> </script> 14 15 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 16 </head> 17 18 <body onload="javascript:displayTime();"> 19 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 20 <tr> 21 <td style="width: 150px;" class="logo">&nbsp;</td> 22 <td colspan="2" class="titulo">&nbsp;</td> 23 </tr> 24 <tr> 25 <td class="fecha">&nbsp;</td> 26 <td colspan="2" class="fecha"> 27 <div id="campoHora">&nbsp;</div> 28 </td> 29 </tr> 30 <tr> 31 <td class="menu"> 32 <ul> 33 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 34 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 35 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 36 /li> 37 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 38 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 39 /a></li> 40 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 41 </a></li> 42 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 43 /a></li> 44 <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de 45 anuncios </a></li> 46 </ul> 47 </td> 48 <td class="general"> 49 <p style='text-align: center ; font-weight: bold; font-size:18px'> 50 Instalaciones 51 </p> 52 <table border="1"> 53 54 <?php 55 $ins = listado_reservas_instalaciones(); 56 if ($ins == null) 57 { 58 echo "<tr><td><b>No hay instalaciones reservadas</b></td>< 59 /tr>\n"; 60 } 61 else 62 { 63 echo "<tr>\n"; 64 echo " <td style='width: 140px;' class='cabecera'> 65 Instalaci&oacute;n</td>\n"; 66 echo " <td style='width: 100px;' class='cabecera'>Fecha< 67 /td>\n"; 68 echo " <td style='width: 425px;' class='cabecera'> 69 Proposito</td>\n"; 70 echo " <td style='width: 90px;' class='cabecera'>Normas< 71 /td>\n"; 72 echo " <td style='width: 80px;' class='cabecera'>&nbsp;< 73 /td>\n";

Page 250: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 248

74 echo "</tr>\n"; 75 $i = 0; 76 foreach ($ins as $actual) 77 { 78 $temp = convertir_fecha($actual["fecha"]); 79 $fecha = $fecha = split(" ",$temp); 80 $resto = $i % 2; 81 echo"<tr class='fila" . $resto . "'>\n"; 82 echo "<td>" . tohtml($actual["instalacion"]) . "</td>"; 83 echo "<td>" . $fecha[0] . "</td>"; 84 echo "<td>" . tohtml($actual["proposito"]) . "</td>"; 85 echo "<td><a href='" . $actual["normas"] . "'>Normativa< 86 /a></td>"; 87 echo "<td>"; 88 echo " <form method='get' 89 action='/webcole/Profesor_anular_reserva.php' 90 name='anular'> "; 91 echo " <div style='text-align: center;'> "; 92 echo " <button value='" . $actual["idinst"] . 93 "' name='iditem'>Anular</button> "; 94 echo " </div> "; 95 echo " <input name='fecha' type='hidden' value='" . 96 urlencode($actual["fecha"]) . "'/> "; 97 echo " <input name='item' type='hidden' value='" . 98 INST . "'/> "; 99 echo " </form> "; 100 echo "</td>"; 101 echo "</tr>\n"; 102 $i++; 103 } 104 } 105 ?> 106 107 </table> 108 <br/> 109 110 <a href="/webcole/Profesor_reservar_instalacion.php">Reservar 111 instalaci&oacute;n</a> 112 <?php 113 /* 114 $ins = listado_instalacion(); 115 116 foreach ($ins as $actual) 117 { 118 echo "Instalacion: " . $actual["instalacion"] . "<br>"; 119 echo "Normas: " . $actual["normas"] . "<br>"; 120 } 121 */ 122 ?> 123 124 </td> 125 <td class="general">&nbsp;</td> 126 </tr> 127 <tr> 128 <td><?php 129 bienvenida(); 130 ?></td> 131 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 132 <?php 133 rellenar_eventos_curso(); 134 ?> 135 </td> 136 </tr> 137 </table> 138 </body> 139 </html>

Page 251: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 249

Profesor_reservar_instalacion.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. 6 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 7 <html xmlns="http://www.w3.org/1999/xhtml"> 8 <head> 9 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 10 11 <title>CP Emilio Lluch</title> 12 <link href="css/general.css" rel="stylesheet" type="text/css" /> 13 <link href="css/calendario.css" rel="stylesheet" type="text/css" /> 14 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 15 <script type="text/javascript" src="./js/fecha.js"> </script> 16 <script type="text/javascript" src="./js/reservas.js"> </script> 17 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 18 </head> 19 20 <body onload="javascript:displayTime();"> 21 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 22 <tr> 23 <td style="width: 150px;" class="logo">&nbsp;</td> 24 <td colspan="2" class="titulo">&nbsp;</td> 25 </tr> 26 <tr> 27 <td class="fecha">&nbsp;</td> 28 <td colspan="2" class="fecha"> 29 <div id="campoHora">&nbsp;</div> 30 </td> 31 </tr> 32 <tr> 33 <td class="menu"> 34 <ul> 35 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 36 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 37 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 38 /li> 39 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 40 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 41 /a></li> 42 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 43 </a></li> 44 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 45 /a></li> 46 <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de 47 anuncios </a></li> 48 </ul> 49 </td> 50 <td class="general"> 51 <p style='text-align: center ; font-weight: bold; font-size:18px'> 52 Reservar de Instalaciones 53 </p> 54 <form method="get" action="/webcole/Profesor_reserva.php" 55 name="reservar"> 56 <?php 57 echo "<input type='hidden' name='item' value='" . INST . "' />"; 58 ?> 59 <table style="text-align: left; width: 700px; height: 284px;" 60 border="0" cellpadding="2" cellspacing="2"> 61 <tbody> 62 <tr> 63 <td style="width: 300px; text-align: right;"><span 64 style="font-weight: bold; text-align: right;"> 65 Seleccionauna 66 instalaci&oacute;n</span></td> 67 <td style="width: 400px; text-align: left;"><select 68 name="iditem" 69 onchange="javascript:redirigir('<?php echo PROFE; ?> 70 ', '<?php echo strtolower(INST); ?>');"> 71 <option value='-1'>Selecciona una instalaci&oacute; 72 n</option> 73 <?php

Page 252: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 250

74 //Comprobamos si llegamos aqui despues de elegir 75 una instalacion 76 $iditem = $_REQUEST["iditem"]; 77 78 //echo "id vale: $iditem\n"; 79 80 if (!isset($iditem)) 81 $iditem = -1; 82 //echo "id vale: $iditem\n"; 83 $ins = listado_instalacion(); 84 foreach ($ins as $actual) 85 { 86 if ($actual["idinstalacion"] == $iditem) 87 { 88 echo "<option value='" . $actual[ 89 "idinstalacion"]. "' selected='selected'>" . 90 $actual["instalacion"] . "</option>\n"; 91 } 92 else 93 { 94 echo "<option value='" . $actual[ 95 "idinstalacion"]. "'>" . $actual[ 96 "instalacion"] . "</option>\n"; 97 } 98 } 99 ?> 100 </select></td> 101 </tr> 102 <tr> 103 <td style="width: 200px; text-align: right;"><span 104 style="font-weight: bold; ">Selecciona una fecha< 105 /span></td> 106 <td style="width: 400px;"><?php 107 require_once ("calendario_ins.php"); 108 109 //if (!$HTTP_POST_VARS && !$HTTP_GET_VARS){ 110 if ((!isset($_GET["nuevo_mes"])) || (!isset($_GET[ 111 "nuevo_mes"])) || (!isset($_GET["nuevo_mes"]))) 112 { 113 //echo "http no definidos<br>\n"; 114 $tiempo_actual = time(); 115 $mes = date("n", $tiempo_actual); 116 $ano = date("Y", $tiempo_actual); 117 $dia=date("d"); 118 $fecha=$ano . "-" . $mes . "-" . $dia; 119 }else { 120 //echo "http definidos<br>\n"; 121 $mes = $_GET["nuevo_mes"]; 122 $ano = $_GET["nuevo_ano"]; 123 $dia = $_GET["dia"]; 124 $fecha=$ano . "-" . $mes . "-" . $dia; 125 } 126 if (!isset($dia)) 127 { 128 $dia=date("d"); 129 } 130 if (!isset($mes)) 131 { 132 $mes = date("n", $tiempo_actual); 133 } 134 if (!isset($ano)) 135 { 136 $ano = date("Y", $tiempo_actual); 137 } 138 echo "<input type=\"hidden\" name=\"dia\" value=''/>\n"; 139 echo "<input type=\"hidden\" name='dia_c' value='$dia'/> 140 \n"; 141 echo "<input type=\"hidden\" name='mes' value='$mes'/> 142 \n"; 143 echo "<input type=\"hidden\" name='anyo' value='$ano'/> 144 \n"; 145 $tabla = fecha_reservas($iditem, INST); 146 if (!isset($tabla)) 147 { 148 //utilizamos una variable no inicializada 149 //mostrar_calendario tiene en cuenta si esa 150 variable

Page 253: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 251

151 //no esta inicializada 152 mostrar_calendario($dia_c,$mes,$ano, 153 $variable_no_asignada, INST, PROFE); 154 } 155 else 156 { 157 mostrar_calendario($dia_c,$mes,$ano, $tabla, INST, 158 PROFE); 159 } 160 161 162 163 ?></td> 164 </tr> 165 166 <tr> 167 <td style="font-weight: bold; text-align: right;">Fecha 168 seleccionada</td> 169 <td><input readonly="readonly" maxlength="15" 170 name="fecha" /></td> 171 </tr> 172 <tr> 173 <td style="width: 200px;text-align: right;font-weight: 174 bold;"><label>Motivo</label> 175 <br /> 176 <i>(m&aacute;ximo 1500 car&aacute;cteres)</i></td> 177 <td style="width: 400px;"><textarea cols="50" rows="2" 178 name="motivo" 179 onkeydown="if(document.reservar.motivo.value.length> 180 = longitud()){return false;}"></textarea> 181 </td> 182 </tr> 183 <tr> 184 <td style="width: 200px;">&nbsp;</td> 185 <td style="width: 400px; text-align: right;"> 186 <div align="left"><input type='button' name='Submit' 187 value='Enviar' 188 onclick="javascript:enviar();" /></div> 189 </td> 190 </tr> 191 </tbody> 192 </table> 193 </form> 194 </td> 195 <td class="general">&nbsp;</td> 196 </tr> 197 <tr> 198 <td><?php 199 bienvenida(); 200 ?></td> 201 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 202 <?php 203 rellenar_eventos_curso(); 204 ?> 205 </td> 206 </tr> 207 </table> 208 </body> 209 </html>

Page 254: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 252

Profesor_reserva.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 <?php 5 //obtener datos enviados por el formulario 6 $dia = $_REQUEST["dia"]; 7 $mes = $_REQUEST["mes"]; 8 $anyo = $_REQUEST["anyo"]; 9 $iditem = $_REQUEST["iditem"]; 10 $motivo = substr($_REQUEST["motivo"], 0, MAX_LENGTH_MOTIVO-1); 11 $item = $_REQUEST["item"]; 12 $login = $_SESSION["id"]; 13 14 15 //por si en futuro al reservar se tiene en cuenta la hora(de 16 inicio) 17 $hora = 00; 18 $min = 00; 19 $seg = 00; 20 21 $error = ""; 22 $ano_hoy=date("Y"); 23 24 //¿Estan definadas las variables? 25 if (!isset($dia) || $dia < 0 || $dia > 31) 26 { 27 $error = "D&iacute;a no v&aacute;lido<br>\n"; 28 } 29 30 if (!isset($mes) || $mes < 1 || $mes > 12 ) 31 { 32 $error .= "Mes no v&aacute;lido<br>\n"; 33 } 34 //solo reservas en este año 35 if ( !isset($anyo) || $anyo != $ano_hoy ) 36 { 37 $error .= "A&ntilde;o no v&aacute;lido<br>\n"; 38 } 39 40 if (!isset($iditem) || $iditem ==-1 ) 41 { 42 $error .= "Instalacion no v&aacute;lida<br>\n"; 43 } 44 45 if (!isset($motivo) || strlen($motivo) < 5 ) 46 { 47 $error .= "Motivo insuficiente<br>\n"; 48 } 49 $item1 = INST; 50 $item2 = EQUIP; 51 if (!isset($item) && (strcmp($item,$item1) != 0 || strcmp( 52 $item,$item2) != 0 )) 53 { 54 $error .= "Tipo desconocido: $item : <br>\n"; 55 $error .="inst vale: " . INST . "<br>\n"; 56 } 57 58 if (strlen($error) > 1) 59 { 60 $es_valido = false; 61 } 62 else 63 { 64 $es_valido = true; 65 $res = reservar_instalacion($login,$iditem,$dia,$mes,$anyo, 66 $hora,$min,$seg,$motivo, $item); 67 68 if (!$res) 69 { 70 $es_valido = false; 71 $error = "Se produjo un error inesperado en la reserva 72 de la instalaci&oacute;n<br>\n"; 73 }

Page 255: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 253

74 } 75 76 77 78 79 ?> 80 81 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 82 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 83 <html xmlns="http://www.w3.org/1999/xhtml"> 84 <head> 85 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 86 <?php 87 //Ruta de retorno que utilizaremos aqui si todo fue bien 88 if (strcmp($item, INST)==0) 89 { 90 $url = "/webcole/Profesor_instalaciones.php"; 91 } 92 else 93 { 94 $url = "/webcole/Profesor_equipaciones.php"; 95 } 96 if ( $es_valido ) 97 { 98 echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=$url\">\n"; 99 } 100 101 ?> 102 103 <title>CP Emilio Lluch</title> 104 <link href="css/general.css" rel="stylesheet" type="text/css" /> 105 106 <script type="text/javascript" src="./js/fecha.js"> </script> 107 108 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 109 </head> 110 111 <body onload="javascript:displayTime(); redirigir();"> 112 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 113 <tr> 114 <td style="width: 150px;" class="logo">&nbsp;</td> 115 <td colspan="2" class="titulo">&nbsp;</td> 116 </tr> 117 <tr> 118 <td class="fecha">&nbsp;</td> 119 <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> 120 </tr> 121 <tr> 122 <td class="menu"> 123 <ul> 124 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 125 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 126 <li><a href="/webcole/Profesor_profesores.php">Profesores</a></li> 127 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 128 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia </a>< 129 /li> 130 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones </a> 131 </li> 132 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos</a>< 133 /li> 134 <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de 135 anuncios </a></li> 136 </ul> </td> 137 <td class="general"> 138 <?php 139 //Ruta de retorno que utilizaremos aqui si todo fue bien 140 if (strcmp($item, INST)==0) 141 { 142 $url_reserva = "/webcole/Profesor_reservar_instalacion.php"; 143 } 144 else 145 { 146 $url_reserva = "/webcole/Profesor_reservar_equipacion.php"; 147 } 148 echo "Se han producido los siguientes errores: <br> $error<br> 149 \n"; 150 echo "<br>\n";

Page 256: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 254

151 echo "Pulsa <a href='$url_reserva'>". tohtml("aquí"). "</a> 152 para volver al formulario de reserva<br>\n"; 153 154 ?> 155 </td> 156 <td class="general"> 157 <p style='text-align: center ; font-weight: bold; font-size:18px'> 158 Reservas 159 </p> 160 </td> 161 </tr> 162 <tr> 163 <td><?php 164 bienvenida(); 165 ?></td> 166 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 167 <?php 168 rellenar_eventos_curso(); 169 ?> 170 </td> 171 </tr> 172 </table> 173 </body> 174 </html>

Page 257: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 255

Profesor_anular_reserva.php 1 <?php 2 require_once "profesor_inc.php"; 3 // 4 $fecha = urldecode($_REQUEST["fecha"]); 5 $iditem = $_REQUEST["iditem"]; 6 $login = $_SESSION["id"]; 7 $item = $_REQUEST["item"]; 8 $error = ""; 9 $es_valido = true; 10 11 if ( !isset($login)) 12 { 13 header("Location: /webcole/prohibido.php"); 14 $es_valido = false; 15 } 16 //ya estara en el formato de mysql, 17 //si no es correcto sencillamente no se borrara el registro. 18 if ( !isset($fecha)) 19 { 20 $error .="Error en la Fecha. No v&aacute;lida<br>\n"; 21 $es_valido = false; 22 } 23 if ( !isset($iditem) || $iditem < 1 ) 24 { 25 $error .="Error en el codigo de instalaci&oacute;n. No v&aacute;lido<br> 26 \n"; 27 $es_valido = false; 28 } 29 30 if ($es_valido) 31 { 32 $resultado = anular_reserva($login, $fecha, $iditem, $item); 33 if ($resultado) 34 { 35 //echo "Reserva correctamente anulada<br>\n"; 36 } 37 else 38 { 39 $error = "Han ocurrido problemas durante la anulaci&oacute;n de la 40 reserva <br>\n"; 41 $es_valido = false; 42 } 43 } 44 else 45 { 46 $error = "Han ocurrido errores en los par&aacute;metros de 47 anulaci&oacute;n<br>\n" . $error; 48 //echo $error; 49 $es_valido = false; 50 } 51 52 if (strcmp($item, INST) == 0 ) 53 { 54 $url = "/webcole/Profesor_instalaciones.php"; 55 } 56 else 57 { 58 $url = "/webcole/Profesor_equipaciones.php"; 59 } 60 ?> 61 62 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 63 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 64 <html xmlns="http://www.w3.org/1999/xhtml"> 65 <head> 66 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 67 <?php 68 if ($es_valido) 69 echo "<meta http-equiv=\"refresh\" content=\"5;URL=$url\" />\n"; 70 ?> 71 <title>CP Emilio Lluch</title> 72 <link href="css/general.css" rel="stylesheet" type="text/css" /> 73

Page 258: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 256

74 <script type="text/javascript" src="./js/fecha.js"> </script> 75 76 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 77 </head> 78 79 <body onload="javascript:displayTime();"> 80 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 81 <tr> 82 <td style="width: 150px;" class="logo">&nbsp;</td> 83 <td colspan="2" class="titulo">&nbsp;</td> 84 </tr> 85 <tr> 86 <td class="fecha">&nbsp;</td> 87 <td colspan="2" class="fecha"> 88 <div id="campoHora">&nbsp;</div> 89 </td> 90 </tr> 91 <tr> 92 <td class="menu"> 93 <ul> 94 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 95 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 96 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 97 /li> 98 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 99 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 100 /a></li> 101 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 102 </a></li> 103 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 104 /a></li> 105 <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de 106 anuncios </a></li> 107 </ul> 108 </td> 109 <td class="general"> 110 <p style='text-align: center ; font-weight: bold; font-size:18px'> 111 Anular reservas 112 </p> 113 <?php 114 115 if ($es_valido) 116 { 117 echo "Reserva anulada correctamente<br/>\n"; 118 echo "<p>En 5 segundos ser&aacute;s a la p&aacute;gina de 119 instalaciones. Si no pulsa"; 120 echo "<a href=\"$url\"> aqu&iacute;</a></p>\n"; 121 } 122 else 123 { 124 echo "Han ocurrido problemas durante la anulaci&oacute;n de la 125 reserva"; 126 echo "Errores: $error<br/>\n"; 127 128 echo "<p>Pulsa <a href=\"$url\"> aqu&iacute;</a> para regresar 129 a la p&aacute;gina de reservas</p>\n"; 130 } 131 ?> 132 133 </td> 134 <td class="general">&nbsp;</td> 135 </tr> 136 <tr> 137 <td><?php 138 bienvenida(); 139 ?></td> 140 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 141 <?php 142 rellenar_eventos_curso(); 143 ?> 144 </td> 145 </tr> 146 </table> 147 </body> 148 </html>

Page 259: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 257

Profesor_equipaciones.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. 6 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 7 <html xmlns="http://www.w3.org/1999/xhtml"> 8 <head> 9 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 10 <title>CP Emilio Lluch</title> 11 <link href="css/general.css" rel="stylesheet" type="text/css" /> 12 <link href="css/profesor.css" rel="stylesheet" type="text/css" /> 13 <script type="text/javascript" src="./js/fecha.js"> </script> 14 15 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 16 </head> 17 18 <body onload="javascript:displayTime();"> 19 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 20 <tr> 21 <td style="width: 150px;" class="logo">&nbsp;</td> 22 <td colspan="2" class="titulo">&nbsp;</td> 23 </tr> 24 <tr> 25 <td class="fecha">&nbsp;</td> 26 <td colspan="2" class="fecha"> 27 <div id="campoHora">&nbsp;</div> 28 </td> 29 </tr> 30 <tr> 31 <td class="menu"> 32 <ul> 33 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 34 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 35 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 36 /li> 37 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 38 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 39 /a></li> 40 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 41 </a></li> 42 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 43 /a></li> 44 <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de 45 anuncios </a></li> 46 </ul> 47 </td> 48 <td class="general"> 49 <p style='text-align: center ; font-weight: bold; font-size:18px'> 50 Equipaciones Reservadas 51 </p> 52 <table border="1"> 53 <?php 54 $ins = listado_reservas_equipaciones(); 55 if ($ins == null) 56 { 57 echo "<tr><td><b>No hay equipamientos reservados</b></td>< 58 /tr>\n"; 59 } 60 else 61 { 62 echo "<tr>\n"; 63 echo " <td style='width: 140px;' class='cabecera'> 64 Equipamiento</td>\n"; 65 echo " <td style='width: 100px;' class='cabecera'>Fecha< 66 /td>\n"; 67 echo " <td style='width: 425px;' class='cabecera'> 68 Prop&oacute;sito</td>\n"; 69 echo " <td style='width: 90px;' class='cabecera'>Normas< 70 /td>\n"; 71 echo " <td style='width: 80px;' class='cabecera'>&nbsp;< 72 /td>\n"; 73 echo "</tr>\n";

Page 260: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 258

74 $i = 0; 75 foreach ($ins as $actual) 76 { 77 $temp = convertir_fecha($actual["fecha"]); 78 $fecha = $fecha = split(" ",$temp); 79 80 $resto = $i % 2; 81 echo"<tr class='fila" . $resto . "'>\n"; 82 echo " <td>" . tohtml($actual["equipacion"]) . "</td> 83 \n"; 84 echo " <td>" . $fecha[0] . "</td>\n"; 85 echo " <td>" . tohtml($actual["proposito"]) . "</td> 86 \n"; 87 echo " <td><a href='" . $actual["normas"] . "'> 88 Normativa</a></td>\n"; 89 echo " <td>\n"; 90 echo " <form method='get' 91 action='/webcole/Profesor_anular_reserva.php' 92 name='anular'> \n"; 93 echo " <div style='text-align: center;'> \n"; 94 echo " <button value='" . $actual[ 95 "idequipacion"] . "' name='iditem'>Anular</button> \n"; 96 echo " </div> \n"; 97 echo " <input name='fecha' type='hidden' 98 value='" . urlencode($actual["fecha"]) . "'/> \n"; 99 echo " <input name='item' type='hidden' 100 value='" . EQUIP . "'/> \n"; 101 echo " </form> \n"; 102 echo " </td>\n"; 103 echo "</tr>\n"; 104 $i++; 105 } 106 } 107 ?> 108 109 </table> 110 <br/> 111 112 <a href="/webcole/Profesor_reservar_equipacion.php">Reservar 113 equipaci&oacute;n</a> 114 <?php 115 /* 116 $ins = listado_instalacion(); 117 118 foreach ($ins as $actual) 119 { 120 echo "Instalacion: " . $actual["instalacion"] . "<br>"; 121 echo "Normas: " . $actual["normas"] . "<br>"; 122 } 123 */ 124 ?> 125 126 </td> 127 <td class="general">&nbsp;</td> 128 </tr> 129 <tr> 130 <td><?php 131 bienvenida(); 132 ?></td> 133 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 134 <?php 135 rellenar_eventos_curso(); 136 ?> 137 </td> 138 </tr> 139 </table> 140 </body> 141 </html>

Page 261: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 259

Profesor_reservar_equipacion.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. 6 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 7 <html xmlns="http://www.w3.org/1999/xhtml"> 8 <head> 9 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 10 11 <title>CP Emilio Lluch</title> 12 <link href="css/general.css" rel="stylesheet" type="text/css" /> 13 <link href="css/calendario.css" rel="stylesheet" type="text/css" /> 14 15 <script type="text/javascript" src="./js/fecha.js"> </script> 16 <script type="text/javascript" src="./js/reservas.js"> </script> 17 18 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 19 </head> 20 21 <body onload="javascript:displayTime();"> 22 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 23 <tr> 24 <td style="width: 150px;" class="logo">&nbsp;</td> 25 <td colspan="2" class="titulo">&nbsp;</td> 26 </tr> 27 <tr> 28 <td class="fecha">&nbsp;</td> 29 <td colspan="2" class="fecha"> 30 <div id="campoHora">&nbsp;</div> 31 </td> 32 </tr> 33 <tr> 34 <td class="menu"> 35 <ul> 36 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 37 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 38 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 39 /li> 40 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 41 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 42 /a></li> 43 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 44 </a></li> 45 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 46 /a></li> 47 <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de 48 anuncios </a></li> 49 </ul> 50 </td> 51 <td class="general"> 52 <p style='text-align: center ; font-weight: bold; font-size:18px'> 53 Reservas de equipaciones 54 </p> 55 <form method="get" action="/webcole/Profesor_reserva.php" 56 name="reservar"> 57 <?php 58 echo "<input type='hidden' name='item' value='" . EQUIP . "' />\n"; 59 ?> 60 <table style="text-align: left; width: 700px; height: 284px;" 61 border="0" cellpadding="2" cellspacing="2"> 62 <tbody> 63 <tr> 64 <td style="width: 300px; text-align: right;"><span 65 style="font-weight: bold; text-align: right;"> 66 Seleccionauna 67 instalaci&oacute;n</span></td> 68 <td style="width: 400px; text-align: left;"><select 69 name="iditem" onchange="javascript:redirigir('<?php 70 echo PROFE; ?>', '<?php echo strtolower(EQUIP); ?>');"> 71 <option value='-1'>Selecciona una equipaci&oacute;n< 72 /option> 73 <?php

Page 262: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 260

74 //Comprobamos si llegamos aqui despues de elegir 75 una instalacion 76 $iditem = $_REQUEST["iditem"]; 77 78 //echo "id vale: $iditem\n"; 79 80 if (!isset($iditem)) 81 $iditem = -1; 82 //echo "id vale: $iditem\n"; 83 $ins = listado_equipacion(); 84 foreach ($ins as $actual) 85 { 86 if ($actual["idequipacion"] == $iditem) 87 { 88 echo "<option value='" . $actual[ 89 "idequipacion"]. "' selected='selected'>" . 90 $actual["equipacion"] . "</option>\n"; 91 } 92 else 93 { 94 echo "<option value='" . $actual[ 95 "idequipacion"]. "'>" . $actual[ 96 "equipacion"] . "</option>\n"; 97 } 98 } 99 ?> 100 </select></td> 101 </tr> 102 <tr> 103 <td style="width: 200px; text-align: right;"><span 104 style="font-weight: bold; ">Selecciona una fecha< 105 /span></td> 106 <td style="width: 400px;"><?php 107 require_once ("calendario_ins.php"); 108 109 //if (!$HTTP_POST_VARS && !$HTTP_GET_VARS){ 110 if ((!isset($_GET["nuevo_mes"])) || (!isset($_GET[ 111 "nuevo_mes"])) || (!isset($_GET["nuevo_mes"]))) 112 { 113 //echo "http no definidos<br>\n"; 114 $tiempo_actual = time(); 115 $mes = date("n", $tiempo_actual); 116 $ano = date("Y", $tiempo_actual); 117 $dia=date("d"); 118 $fecha=$ano . "-" . $mes . "-" . $dia; 119 }else { 120 //echo "http definidos<br>\n"; 121 $mes = $_GET["nuevo_mes"]; 122 $ano = $_GET["nuevo_ano"]; 123 $dia = $_GET["dia"]; 124 $fecha=$ano . "-" . $mes . "-" . $dia; 125 } 126 if (!isset($dia)) 127 { 128 $dia=date("d"); 129 } 130 if (!isset($mes)) 131 { 132 $mes = date("n", $tiempo_actual); 133 } 134 if (!isset($ano)) 135 { 136 $ano = date("Y", $tiempo_actual); 137 } 138 echo "<input type=\"hidden\" name=\"dia\" value=''/>\n"; 139 echo "<input type=\"hidden\" name='dia_c' value='$dia'/> 140 \n"; 141 echo "<input type=\"hidden\" name='mes' value='$mes'/> 142 \n"; 143 echo "<input type=\"hidden\" name='anyo' value='$ano'/> 144 \n"; 145 $tabla = fecha_reservas($iditem, EQUIP); 146 if (!isset($tabla)) 147 { 148 //utilizamos una variable no inicializada 149 //mostrar_calendario tiene en cuenta si esa 150 variable

Page 263: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 261

151 //no esta inicializada 152 mostrar_calendario($dia_c,$mes,$ano, 153 $variable_no_asignada, EQUIP, PROFE); 154 } 155 else 156 { 157 mostrar_calendario($dia_c,$mes,$ano, $tabla, EQUIP, 158 PROFE); 159 } 160 161 162 163 ?></td> 164 </tr> 165 166 <tr> 167 <td style="font-weight: bold; text-align: right;">Fecha 168 seleccionada</td> 169 <td><input readonly="readonly" maxlength="15" 170 name="fecha" /></td> 171 </tr> 172 <tr> 173 <td style="width: 200px;text-align: right;font-weight: 174 bold;"><label>Motivo</label> 175 <br /> 176 <i>(m&aacute;ximo 1500 c&aacute;racteres)</i></td> 177 <td style="width: 400px;"><textarea cols="50" rows="2" 178 name="motivo" 179 onkeydown="if(document.reservar.motivo.value.length> 180 = longitud()){return false;}"></textarea> 181 </td> 182 </tr> 183 <tr> 184 <td style="width: 200px;">&nbsp;</td> 185 <td style="width: 400px; text-align: right;"> 186 <div align="left"><input type='button' name='Submit' 187 value='Enviar' 188 onclick="javascript:enviar();" /></div> 189 </td> 190 </tr> 191 </tbody> 192 </table> 193 </form> 194 </td> 195 <td class="general">&nbsp;</td> 196 </tr> 197 <tr> 198 <td><?php 199 bienvenida(); 200 ?></td> 201 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 202 <?php 203 rellenar_eventos_curso(); 204 ?> 205 </td> 206 </tr> 207 </table> 208 </body> 209 </html>

Page 264: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 262

Profesor_tablon.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Profesor") 4 header("Location: prohibido.php"); 5 ?> 6 7 8 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 9 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 10 <html xmlns="http://www.w3.org/1999/xhtml"> 11 <head> 12 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 13 <title>CP Emilio Lluch</title> 14 <link href="css/general.css" rel="stylesheet" type="text/css" /> 15 16 <script type="text/javascript" src="./js/fecha.js"> </script> 17 18 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 19 </head> 20 21 <body onload="javascript:displayTime();"> 22 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 23 <tr> 24 <td width="150" class="logo">&nbsp;</td> 25 <td colspan="3" class="titulo">&nbsp;</td> 26 </tr> 27 <tr> 28 <td class="fecha">&nbsp;</td> 29 <td colspan="3" class="fecha"><div id="campoHora">&nbsp;</div></td> 30 </tr> 31 <tr> 32 <td rowspan="5" class="menu"> 33 <ul> 34 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 35 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 36 <li><a href="/webcole/profesores.php">Profesores</a></li> 37 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 38 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 39 /a></li> 40 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 41 </a></li> 42 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 43 /a></li> 44 <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de 45 anuncios </a></li> 46 </ul> </td> 47 <td colspan="2" class="general"><h1>Tabl&oacute;n de anuncios </h1> 48 <p>&nbsp;</p></td> 49 <td rowspan="5" class="general">&nbsp;</td> 50 </tr> 51 <?php 52 include("bd.php"); 53 $conn = Conectar(); 54 $sql = "SELECT * FROM anuncio ORDER BY idanuncio DESC"; 55 $anuncios = consulta($sql, $conn); 56 $anuncios_mostrados = 0; 57 $anuncios_amostrar = 10; 58 while($row = siguiente($anuncios)) 59 { 60 if($anuncios_mostrados >= $anuncios_amostrar) 61 break; 62 $anuncios_mostrados++; 63 $sql = "SELECT * FROM usuario WHERE login = '".$row["login"]."'"; 64 $usuario = consulta($sql,$conn); 65 $usuario = siguiente($usuario); 66 echo "<tr>"; 67 if($anuncios_mostrados>=3) 68 echo "<td></td>"; 69 echo "<td class='general'><p class='anuncioTitulo'>".tohtml($row["titulo"] 70 )." <br/>"; 71 echo "<span class='anuncioNombre'>".tohtml($usuario["nombre"])." ".tohtml( 72 $usuario["apellido1"])."</span> <span class='anuncioFecha'>- ".$row[ 73 "fecha"]."</span> </td>";

Page 265: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 263

74 echo "<td class='general'>&nbsp;</td>"; 75 echo "</tr>"; 76 77 echo "<tr>"; 78 echo "<td class='general'><p class='anuncio'><span class='anuncioTexto'> 79 ".tohtml($row["texto"])."</span></td>"; 80 echo "<td class='general'>&nbsp;</td>"; 81 echo "</tr>"; 82 //echo "<tr>"; 83 //echo "<td colspan='2' class='general'>&nbsp;</td>"; 84 //echo "</tr>"; 85 } 86 ?> 87 88 <tr> 89 <td></td> 90 <td colspan="2" class="general"><h3>Insertar nuevo anuncio</h3> 91 <form id="form1" method="post" action="Profesor_tablon_insertar.php"> 92 <label> 93 T&iacute;tulo 94 <br /> 95 <input type="text" name="titulo" /> 96 </label> 97 <p> 98 Texto 99 <br /> 100 <label> 101 <textarea name="texto" cols="60" rows="3"></textarea> 102 </label> 103 </p> 104 105 <p> 106 <label> 107 <input type="submit" name="Submit" value="Insertar" /> 108 </label> 109 </p> 110 </form> <p>&nbsp; </p></td> 111 <td class="general"></td> 112 </tr> 113 <tr> 114 <td><?php 115 bienvenida(); 116 ?></td> 117 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 118 <?php 119 rellenar_eventos_curso(); 120 ?> 121 </td> 122 </tr> 123 </table> 124 </body> 125 </html>

Page 266: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 264

Profesor_tablon_insertar.php 1 <?php 2 3 session_start(); 4 if($_SESSION["tipo"] != "Profesor") 5 header("Location: prohibido.php"); 6 7 $titulo = $_POST["titulo"]; 8 $texto = $_POST["texto"]; 9 $fecha = date("Y-m-d H:i:s"); 10 11 include("bd.php"); 12 $conn = Conectar(); 13 $sql = "SELECT * FROM anuncio ORDER BY idanuncio DESC"; 14 $num = consulta($sql,$conn); 15 if($num = siguiente($num)) 16 $idanun= $num["idanuncio"] + 1; 17 else 18 $idanun = 1; 19 $sql = "INSERT INTO `anuncio` ( `idanuncio` , `login` , `fecha` , `titulo` , 20 `texto` ) VALUES ('".$idanun."', '".$_SESSION["id"]."', '".$fecha."', '". 21 $titulo."', '".$texto."')"; 22 $insert = consulta($sql,$conn); 23 //echo "id".$_SESSION["id"]."error: " . mysql_error($conn); 24 Desconectar($conn); 25 26 ?> 27 <head> 28 <meta http-equiv="refresh" content="15;URL=Profesor_tablon.php"> 29 </head> 30 31 Insertando...

Page 267: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 265

H. Código CSS

Calendario.css 1 TD { 2 font-family : verdana,arial,helvetica; 3 font-size : 10pt; 4 } 5 6 INPUT { 7 font-family : verdana,arial,helvetica; 8 font-size : 8pt; 9 } 10 11 TEXTAREA { 12 font-family : verdana,arial,helvetica; 13 font-size : 8pt; 14 } 15 16 SELECT { 17 font-family : verdana,arial,helvetica; 18 font-size : 8pt; 19 } 20 21 .altn { 22 font-family : verdana,arial,helvetica; 23 font-size : 10pt; 24 color: #ffffff; 25 background-color: #666666; 26 } 27 28 .tit { 29 font-family : verdana,arial,helvetica; 30 font-size : 10pt; 31 color: #ffffff; 32 background-color: #333333; 33 font-weight: bold; 34 } 35 .fs { 36 font-family : verdana,arial,helvetica; 37 background-color: #FFCCCC; 38 color: #FFFFFF; 39 font-weight: bold; 40 text-align: center; 41 } 42 .da { 43 font-family : verdana,arial,helvetica; 44 background-color: #F0E68C; 45 color: #FFFFFF; 46 font-weight: bold; 47 text-align: center; 48 } 49 .nd { 50 font-family : verdana,arial,helvetica; 51 background-color: #000066; 52 color: #FFFFFF; 53 font-weight: bold; 54 text-align: center; 55 } 56 .curso { 57 58 font-family : verdana,arial,helvetica; 59 background-color: #CCFFFF; 60 color: #FFFFFF; 61 font-weight: bold; 62 text-align: center; 63 } 64 .laborable { 65

Page 268: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 266

66 67 font-family : verdana,arial,helvetica; 68 background-color: #CCFF99; 69 color: #FFFFFF; 70 font-weight: bold; 71 text-align: center; 72 }

Page 269: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 267

general.css 1 .logo { 2 background-color: #99CC33; 3 background-image: url(../img/LogoPeq.jpg); 4 height: 150px; 5 width: 150px; 6 background-repeat: no-repeat; 7 background-position: center center; 8 } 9 .titulo { 10 background-color: #99CC33; 11 background-image: url(../img/titulo.png); 12 background-repeat: no-repeat; 13 background-position: center center; 14 width: 100%; 15 } 16 body { 17 background-color: #999933; 18 background-position: center; 19 } 20 .menu { 21 vertical-align: top; 22 } 23 24 .fecha { 25 font-family: Verdana, Arial, Helvetica, sans-serif; 26 color: #660033; 27 text-align: right; 28 background-color: #FFFF99; 29 } 30 .general { 31 background-color: #99CC66; 32 padding-left: 15px; 33 font-family: Arial, Helvetica, sans-serif; 34 text-align: center; 35 } 36 37 ul li { 38 border: medium ridge #CCFF66; 39 background-color: #99CC00; 40 list-style-type: none; 41 font-family: Verdana, Arial, Helvetica, sans-serif; 42 text-align: left; 43 font-size: 14px; 44 color: #FF66CC; 45 height: 24px; 46 vertical-align: middle; 47 margin-left: -40px; 48 padding-top: 8px; 49 width: 140px; 50 } 51 ul li a { 52 font-family: Verdana, Arial, Helvetica, sans-serif; 53 color: #003399; 54 font-weight: bold; 55 font-size: 13px; 56 } 57 ul li:hover { 58 background-color: #CCFFCC; 59 } 60 .imagenCalendario { 61 background-color: #99CC66; 62 padding-left: 15px; 63 font-family: Arial, Helvetica, sans-serif; 64 background-image: url(../img/calendario.jpg); 65 width: 130px; 66 background-repeat: no-repeat; 67 background-position: center center; 68 border-top-style: none; 69 border-right-style: none; 70 border-bottom-style: none; 71 border-left-style: none;

Page 270: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 268

72 border-top-color: #FFFF66; 73 border-right-color: #FFFF66; 74 border-bottom-color: #FFFF66; 75 border-left-color: #FFFF66; 76 } 77 .imagenReglamento { 78 background-color: #99CC66; 79 padding-left: 15px; 80 font-family: Arial, Helvetica, sans-serif; 81 background-image: url(../img/reglas.png); 82 width: 320px; 83 background-repeat: no-repeat; 84 background-position: center center; 85 border-top-style: none; 86 border-right-style: none; 87 border-bottom-style: none; 88 border-left-style: none; 89 border-top-color: #FFFF66; 90 border-right-color: #FFFF66; 91 border-bottom-color: #FFFF66; 92 border-left-color: #FFFF66; 93 } 94 .imagenLocalizacion { 95 96 background-color: #99CC66; 97 padding-left: 15px; 98 font-family: Arial, Helvetica, sans-serif; 99 background-image: url(../img/plano_valencia.gif); 100 width: 150px; 101 background-repeat: no-repeat; 102 background-position: center center; 103 border-top-style: none; 104 border-right-style: none; 105 border-bottom-style: none; 106 border-left-style: none; 107 border-top-color: #FFFF66; 108 border-right-color: #FFFF66; 109 border-bottom-color: #FFFF66; 110 border-left-color: #FFFF66; 111 } 112 .imagenEnlaces { 113 114 115 background-color: #99CC66; 116 padding-left: 15px; 117 font-family: Arial, Helvetica, sans-serif; 118 background-image: url(../img/arroba.jpg); 119 width: 150px; 120 background-repeat: no-repeat; 121 background-position: center center; 122 border-top-style: none; 123 border-right-style: none; 124 border-bottom-style: none; 125 border-left-style: none; 126 border-top-color: #FFFF66; 127 border-right-color: #FFFF66; 128 border-bottom-color: #FFFF66; 129 border-left-color: #FFFF66; 130 } 131 .imagenEmail { 132 133 134 135 background-color: #99CC66; 136 padding-left: 15px; 137 font-family: Arial, Helvetica, sans-serif; 138 background-image: url(../img/email.jpg); 139 width: 300px; 140 background-repeat: no-repeat; 141 background-position: center center; 142 border-top-style: none; 143 border-right-style: none; 144 border-bottom-style: none; 145 border-left-style: none; 146 border-top-color: #FFFF66; 147 border-right-color: #FFFF66; 148 border-bottom-color: #FFFF66;

Page 271: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 269

149 border-left-color: #FFFF66; 150 }

Page 272: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 270

principal.css 1 .foto { 2 background-color: #99CC66; 3 background-image: url(../img/colegio.JPG); 4 width: 250px; 5 background-repeat: no-repeat; 6 background-position: center center; 7 } 8 .noticias { 9 background-color: #99CC33; 10 padding-left: 15px; 11 border: medium dashed #FFFF99; 12 } 13 .fechaNoticia { 14 font-family: Geneva, Arial, Helvetica, sans-serif; 15 font-size: 14px; 16 color: #CC0066; 17 font-weight: bold; 18 }

Page 273: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 271

Professor.css 1 @CHARSET "ISO-8859-1"; 2 .cabecera 3 { 4 background-color:#000000; 5 color:#FFFFFF; 6 font:Arial, Helvetica, sans-serif; 7 } 8 .fila0 9 { 10 background-color: #99CC66; 11 color:#000000; 12 } 13 .fila1 14 { 15 background-color:#009900; 16 color:#000000; 17 }

Page 274: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 272

I. JavaScript

fecha.js 1 <!-- 2 var pong; 3 function makeArray(n){ 4 this.length = n; 5 for (i=1;i<=n;i++){ 6 this[i]=0; 7 } 8 return this; 9 } 10 11 function displayDate() { 12 var this_month = new makeArray(12); 13 this_month[0] = "Enero"; 14 this_month[1] = "Febrero"; 15 this_month[2] = "Marzo"; 16 this_month[3] = "Abril"; 17 this_month[4] = "Mayo"; 18 this_month[5] = "Junio"; 19 this_month[6] = "Julio"; 20 this_month[7] = "Agosto"; 21 this_month[8] = "Septiembre"; 22 this_month[9] = "Octubre"; 23 this_month[10] = "Noviembre"; 24 this_month[11] = "Deciembre"; 25 26 var this_day_e = new makeArray(7); 27 this_day_e[0] = "Domingo"; 28 this_day_e[1] = "Lunes"; 29 this_day_e[2] = "Martes"; 30 this_day_e[3] = "Miércoles"; 31 this_day_e[4] = "Jueves"; 32 this_day_e[5] = "Viernes"; 33 this_day_e[6] = "Sábado"; 34 35 var today = new Date(); 36 var day = today.getDate(); 37 var month = today.getMonth(); 38 var year = today.getYear(); 39 var dia = today.getDay(); 40 if (year < 1000) { 41 year += 1900; } 42 return( " " + this_day_e[dia] + ", " + day + " de " + this_month[month] + 43 " " + year); 44 } 45 46 function displayTime() { 47 var hora = new Date(); 48 var horas = hora.getHours(); 49 var minutos = hora.getMinutes(); 50 var segundos = hora.getSeconds(); 51 if (segundos < 10) 52 segundos = "0" + segundos; 53 if (minutos < 10) 54 minutos = "0" + minutos; 55 cadena = displayDate() + " " + horas + ":" + minutos + ":" + segundos; 56 document.getElementById('campoHora').innerHTML = cadena; 57 tiempo = setTimeout("displayTime()",1000); 58 } 59 60 function horaActualizada() { 61 tiempo = setTimeout("displayTime()",1000); 62 } 63 // -->

Page 275: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 273

profesor.js 1 var ventanaCalendario=false 2 3 function muestraCalendario(raiz,formulario_destino,campo_destino, 4 mes_destino,ano_destino) 5 { 6 //funcion para abrir una ventana con un calendario. 7 //Se deben indicar los datos del formulario y campos que se desean 8 editar con el calendario, es decir, los campos donde va la fecha. 9 if (typeof ventanaCalendario.document == "object") 10 { 11 ventanaCalendario.close() 12 } 13 ventanaCalendario = window.open("calendario_faltas.php?formulario=" 14 + formulario_destino + "&nomcampo=" + campo_destino,"calendario", 15 "width=225,height=200, left=100,top=100, scrollbars=no,menubars=no, 16 statusbar=NO, status=NO, resizable=NO,location=NO") 17 } 18 19 function buscarasignaturafaltas() 20 { 21 var idasig = document.asignatura.idasig.value; 22 var fecha = document.asignatura.fecha.value; 23 document.location.href='/webcole/Profesor_faltas.php?codasig=' + 24 idasig + "&fecha=" + fecha ; 25 } 26 function enviar_alumno_faltas(alumno) 27 { 28 var ha_cambiado = document.eval("alumno_" + alumno).cambiado.value; 29 var fecha_general = document.asignatura.fecha.value; 30 var idasig = document.asignatura.idasig.value; 31 var fecha = document.eval("alumno_" + alumno).fecha.value; 32 var justificado = document.eval("alumno_" + alumno).checkbox. 33 checked; 34 35 document.eval("alumno_" + alumno).fecha.value = document.asignatura. 36 fecha.value; 37 document.eval("alumno_" + alumno).asignatura.value = document. 38 asignatura.idasig.value; 39 document.eval("alumno_" + alumno).submit(); 40 } 41 42 function cambio(alumno) 43 { 44 var ha_cambiado = document.eval("alumno_" + alumno).cambiado.value; 45 if (ha_cambiado == "true") 46 { 47 document.eval("alumno_" + alumno).cambiado.value = "false"; 48 } 49 else 50 { 51 document.eval("alumno_" + alumno).cambiado.value = "true"; 52 } 53 } 54 55 function enviar_todos_faltas() 56 { 57 var lon = document.forms.length; 58 //alert("Hay " + lon + " formularios"); 59 var mensaje = ""; 60 var asig = document.asignatura.idasig.value; 61 var fecha = document.asignatura.fecha.value; 62 63 if ( fecha.length > 0 && asig > 0 ) 64 { 65 //empezamos en el 1 en vez del 0 porque hay un formulario que 66 no nos interesa al 67 //comienzo y acabamos uno antes porque el ultimo es el que 68 llama a esta funcion 69 //for(i = 0; i< 6; i++) 70 var i = 1 71 while ( i < lon -1 ) 72 {

Page 276: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 274

73 if (document.forms[i].seleccionado.checked == true) 74 { 75 var msg = "login:" + document.forms[i].login.value + "; 76 "; 77 msg += "just:" + document.forms[i].checkbox.checked + 78 "|"; 79 mensaje += msg; 80 } 81 i++; 82 } 83 document.general.datos.value = mensaje; 84 document.general.fecha.value = fecha; 85 document.general.asignatura.value = asig; 86 87 if (mensaje.length > 0) 88 { 89 document.general.submit(); 90 } 91 else 92 { 93 alert ("No has seleccionado a ningun alumno al que poner la 94 falta"); 95 } 96 } 97 else 98 { 99 alert("Debes seleccionar una asignatura y una fecha antes de 100 enviar las faltas"); 101 } 102 } 103 function quitar_falta(alumno) 104 { 105 var fecha_general = document.asignatura.fecha.value; 106 var idasig = document.asignatura.idasig.value; 107 var fecha = document.eval("alumno_" + alumno).fecha.value; 108 var justificado = document.eval("alumno_" + alumno).checkbox. 109 checked; 110 111 document.eval("alumno_" + alumno).fecha.value = document.asignatura. 112 fecha.value; 113 document.eval("alumno_" + alumno).asignatura.value = document. 114 asignatura.idasig.value; 115 document.eval("alumno_" + alumno).borrar.value = "true"; 116 document.eval("alumno_" + alumno).submit(); 117 118 } 119 120 121 function buscarasignatura() 122 { 123 var idasig = document.asignatura.idasig.value; 124 var trimestre = document.asignatura.trimestre.value; 125 document.location.href='/webcole/Profesor_notas.php?trimestre=' + 126 trimestre + '&codasig=' + idasig ; 127 } 128 129 function cambiar_trimestre() 130 { 131 132 } 133 134 function nueva_nota(login) 135 { 136 137 formulario = "alumno_" + login; 138 var ha_cambiado = document.eval("alumno_" + login).cambiado.value; 139 140 var nota_txt = document.eval("alumno_" + login).nota.value; 141 142 try 143 { 144 nota_txt = nota_txt.replace(",", "."); 145 if ( nota_txt.length > 0 ) 146 { 147 var nota = parseFloat(nota_txt); 148 if ( isNaN(nota) ) 149 {

Page 277: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 275

150 document.eval("alumno_" + login).cambiado.value = 151 "false"; 152 document.eval("alumno_" + login).eval("nota").value = 153 nota; 154 155 alert("El numero introducido no es correcto"); 156 } 157 else if ( nota >= 0 && nota <= 10 ) 158 { 159 document.eval("alumno_" + login).cambiado.value = 160 "true"; 161 document.eval("alumno_" + login).nota.value = nota; 162 } 163 else 164 { 165 alert("La nota debe estar comprendida entre 0 y 10"); 166 document.eval("alumno_" + login).nota.focus(); 167 } 168 } 169 else 170 { 171 document.eval("alumno_" + login).cambiado.value = "false"; 172 } 173 } 174 catch(e) 175 { 176 alert ("No has introducido un numero valido: " + e.message); 177 document.eval("alumno_" + login).cambiado.value = "false"; 178 } 179 180 document.eval("alumno_" + login).cambiado.value = "true"; 181 } 182 function enviar_alumno(login) 183 { 184 formulario = "alumno_" + login; 185 186 document.eval("alumno_" + login).trim.value = document.asignatura. 187 trimestre.value ; 188 189 var ha_cambiado = document.eval("alumno_" + login).cambiado.value; 190 var nota_txt = document.eval("alumno_" + login).nota.value; 191 nota_txt = nota_txt.replace(",", "."); 192 if ( ha_cambiado == "true" ) 193 { 194 if ( nota_txt.length > 0 ) 195 { 196 try 197 { 198 var nota = parseFloat(nota_txt); 199 if ( nota >= 0 && nota <= 10 ) 200 { 201 document.eval("alumno_" + login).eval("nota").value 202 = nota; 203 document.eval("alumno_" + login).asignatura.value = 204 document.asignatura.idasig.value; 205 document.eval("alumno_" + login).submit(); 206 } 207 else 208 { 209 alert("La nota debe estar comprendida entre 0 y 10") 210 ; 211 document.eval("alumno_" + login).nota.focus(); 212 } 213 } 214 catch(e) 215 { 216 alert ("No has introducido un numero valido: " + e. 217 message); 218 } 219 } 220 else 221 { 222 alert ("No has introducido ningun numero "); 223 } 224 } 225 else 226 {

Page 278: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 276

227 alert ("no se envia porque no ha cambiado su situacion"); 228 } 229 document.eval("alumno_" + login).submit(); 230 } 231 232 233 function enviar_todos() 234 { 235 var lon = document.forms.length; 236 var mensaje = ""; 237 //empezamos en el 1 en vez del 0 porque hay un formulario que no 238 nos interesa al 239 //comienzo y acabamos uno antes porque el ultimo es el que llama a 240 esta funcion 241 //for(i = 0; i< 6; i++) 242 var i = 1 243 while ( i < lon -1 ) 244 { 245 try 246 { 247 var nombre = document.forms[i].name; 248 var ha_cambiado = document.forms[i].cambiado.value; 249 if ( ha_cambiado == "true" ) 250 { 251 var nota_txt = document.forms[i].nota.value; 252 if ( nota_txt.length > 0 ) 253 { 254 try 255 { 256 nota_txt = nota_txt.replace(",", "."); 257 var nota = parseFloat(nota_txt); 258 if ( nota >= 0 && nota <= 10 ) 259 { 260 var msg = "login:"+document.forms[i].login. 261 value + ";"; 262 msg += "nota:" + nota + "|"; 263 264 mensaje += msg; 265 } 266 else 267 { 268 alert("La nota debe estar comprendida entre 269 0 y 10"); 270 document.forms[i].nota.focus(); 271 return; 272 } 273 } 274 catch(e) 275 { 276 alert ("No has introducido un numero valido: " + 277 e.message); 278 } 279 } 280 else 281 { 282 //alert ("No has introducido ningun numero "); 283 } 284 } 285 } 286 catch(e) 287 { 288 alert("Error: " + e.message); 289 } 290 i++; 291 } 292 document.general.datos.value = mensaje; 293 document.general.trimestre.value = document.asignatura.trimestre. 294 value; 295 document.general.asignatura.value = document.asignatura.idasig. 296 value; 297 document.general.submit(); 298 } 299 300 function cambio_trimestre() 301 { 302 var trimestre = document.asignatura.trimestre.value; 303 var idasig = document.asignatura.idasig.value;

Page 279: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 277

304 if ( trimestre != "-1" ) 305 { 306 document.location.href="/webcole/Profesor_notas.php?trimestre=" 307 + trimestre + "&codasig=" + idasig; 308 } 309 }

Page 280: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 278

reservas.js 1 MAX_LENGTH = 1500; 2 3 function cambiar(i) 4 { 5 alert ("id vale:" + i ); 6 if ( i < 10 ) 7 { 8 i = "0" + i; 9 } 10 11 document.reservar.fecha.value = i + "-" + document.reservar.mes. 12 value + "-" + document.reservar.anyo.value; 13 document.reservar.dia.value = i; 14 15 } 16 17 function redirigir(usuario, tipo) 18 { 19 iditem = document.reservar.iditem.value; 20 dia = document.reservar.dia.value; 21 mes = document.reservar.mes.value; 22 anyo = document.reservar.anyo.value; 23 24 document.location.href='/webcole/' + usuario + '_reservar_' + tipo + 25 '.php?iditem=' + iditem + '&dia=' + dia + '&nuevo_mes=' + mes + 26 '&nuevo_ano=' + anyo; 27 } 28 29 function enviar() 30 { 31 32 fecha = new Date(); 33 anyo_actual = fecha.getFullYear(); 34 35 //comprobar si tenemos todos los parametros necesarios 36 //de fecha 37 dia = document.reservar.dia.value; 38 mes = document.reservar.mes.value; 39 anyo = document.reservar.anyo.value; 40 41 correcto = true; 42 43 if (document.reservar.iditem.value == -1) 44 { 45 correcto = false; 46 alert ("Debes elegir una instalacion de las disponibles"); 47 } 48 49 else if (dia > 31 || dia < 1 || document.reservar.dia.value==0) 50 { 51 correcto = false; 52 alert ("Dia incorrecto. Debes elegir un dia de los disponibles 53 en el calendario"); 54 } 55 56 else if (mes < 1 || mes > 12 || document.reservar.mes.value==0 ) 57 { 58 correcto = false; 59 alert ("Mes incorrecto. Debes elegir un dia de los disponibles 60 en el calendario"); 61 } 62 else if (anyo != anyo_actual || document.reservar.anyo.value==0) 63 { 64 correcto = false; 65 alert ("Año incorrecto. Debes elegir un dia de este año "); 66 } 67 else if (document.reservar.motivo.value.length == 0) 68 { 69 correcto = false; 70 alert ("Debes rellenar el campo motivo"); 71 } 72

Page 281: Memoria Web Cole

Vicente Sancho Guijarro Proyecto Final de Carrera

E.T.S. de Informática Aplicada (U.P.V.) 279

73 if (document.reservar.motivo.value.length > MAX_LENGTH) 74 { 75 temp=""; 76 temp = document.reservar.motivo.value.substring(0, MAX_LENGTH-1) 77 ; 78 document.reservar.motivo.value = temp; 79 } 80 81 if (correcto) 82 { 83 document.reservar.submit(); 84 } 85 } 86 function maxCaracteres() 87 { 88 89 if(document.reservar.motivo.value.length>= MAX_LENGTH) 90 { 91 return "return false;"; 92 } 93 } 94 95 function longitud() 96 { 97 return MAX_LENGTH; 98 }