You are on page 1of 281

PROYECTO FINAL DE CARRERA

DESARROLLO DE UN SITIO WEB PARA UN COLEGIO


EMILIO LLUCH (NQUERA)
CURSO 2006/2007
Cdigo proyecto: DISCA-24

Autores Vicente Sancho Guijarro Vicente Blasco Snchez Director Flix Buenda Garca

Vicente Sancho Guijarro - Vicente Blasco Snchez

Proyecto Final de Carrera

INDICE
1. 2. 3. Introduccin.............................................................................................................. 6 Especificacin de Requisitos .................................................................................... 8 Anlisis ................................................................................................................... 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 sesin........................................................................................... 25 3.3.2. Aadir anuncio al tabln 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. Diseo..................................................................................................................... 34 4.1. Nivel de presentacin ..................................................................................... 34 4.2. Nivel de aplicacin ......................................................................................... 39 4.3. Nivel de persistencia....................................................................................... 40 5. Implementacin ...................................................................................................... 43 5.1. Tecnologas..................................................................................................... 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. Descripcin de la implementacin ................................................................. 50 5.2.1. Seccin pblica....................................................................................... 50 5.2.2. Seccin privada ...................................................................................... 52 6. Pruebas ................................................................................................................... 57 6.1 Tamao de la ventana ..................................................................................... 57 6.2 Comprobador de links .................................................................................... 59 6.3 Estndar XHTML ........................................................................................... 59 6.4 Estndar CSS .................................................................................................. 61 6.5 Navegadores ................................................................................................... 62 7. Conclusiones........................................................................................................... 66 8. Bibliografa............................................................................................................. 67 9. Anexos .................................................................................................................... 68 A. W3C.................................................................................................................... 68 B. Anexo II (Herramientas usadas) ......................................................................... 70 C. XAMPP .............................................................................................................. 77 E.T.S. de Informtica Aplicada (U.P.V.) i

Vicente Sancho Guijarro - Vicente Blasco Snchez

Proyecto Final de Carrera

D. E.

Plantillas de los casos de uso.............................................................................. 79 Gua del usuario.................................................................................................. 87 Usuario annimo .................................................................................................... 87 Intranet del profesor................................................................................................ 93 Intranet de alumno ................................................................................................ 103 F. Cdigo Setup.php (Base de datos).................................................................... 110 Interfaz_db.php..................................................................................................... 137 Connexion_i.php .................................................................................................. 141 Conexin.php........................................................................................................ 142 G. Cdigo 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 E.T.S. de Informtica Aplicada (U.P.V.) ii

Vicente Sancho Guijarro - Vicente Blasco Snchez

Proyecto Final de Carrera

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. Cdigo 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

E.T.S. de Informtica Aplicada (U.P.V.)

iii

Vicente Sancho Guijarro - Vicente Blasco Snchez

Proyecto Final de Carrera

INDICE DE FIGURAS
Figura 1 Diagrama de Clases de la aplicacin................................................................ 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 sesin ............................................................. 25 Figura 10 Diagrama de secuencia: Aadir 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 equipacin ............................................... 32 Figura 17 Diagrama de secuencia: Anular reserva de instalaciones. ............................. 33 Figura 18 - Arquitectura a tres capas.............................................................................. 34 Figura 19 Captura de la pgina de inicio........................................................................ 35 Figura 20 Cabecera de la pgina. ................................................................................... 35 Figura 21 Men del sitio web. ........................................................................................ 36 Figura 22 Formulario de inicio de sesin ....................................................................... 36 Figura 23 Zona de informacin de la pgina de inicio. .................................................. 36 Figura 24 Captura de la pgina 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-relacin. ............................................................................ 41 Figura 29 - Cabecera del sitio web. ................................................................................ 51 Figura 30 Men de la zona annima. ............................................................................. 52 Figura 31 Formulario de identificacin. ......................................................................... 52 Figura 32 Pgina principal con la zona de noticias en la parte inferior.......................... 56 Figura 33 Resolucin a 600x480 .................................................................................... 57 Figura 34 Resolucin 800x600....................................................................................... 58 Figura 35 Resolucin 1024x768..................................................................................... 58 Figura 36 XHTML - pgina con errores......................................................................... 60 Figura 37 XHTML - pgina vlida................................................................................. 60 Figura 38 xhtml .............................................................................................................. 61 Figura 39 Resultado de la validacin CSS ..................................................................... 61 Figura 40 Explorer 6 - Problemas visualizacin ............................................................ 62 Figura 41 Explorer 7 - pgina inicial.............................................................................. 63 Figura 42 Opera - pgina inicial ..................................................................................... 64 Figura 43 Mozilla - pgina 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 E.T.S. de Informtica Aplicada (U.P.V.) iv

Vicente Sancho Guijarro - Vicente Blasco Snchez

Proyecto Final de Carrera

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 annimo inicio............................................................................... 87 Figura 57 Usuario annimo - men navegacional.......................................................... 88 Figura 58 Usuario annimo Historia ........................................................................... 88 Figura 59 Usuario annimo - Equipo directivo.............................................................. 89 Figura 60 Usuario annimo - reglamento....................................................................... 89 Figura 61 Usuario annimo Calendario ...................................................................... 90 Figura 62 Usuario annimo localizacin..................................................................... 91 Figura 63 Usuario annimo contacto .......................................................................... 92 Figura 64 Usuario annimo 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 - tabln 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 - tabln anuncios .............................................................. 109 Figura 97 Intranet Profesor - Insertar anuncio.............................................................. 109 E.T.S. de Informtica Aplicada (U.P.V.) v

Vicente Sancho Guijarro

Proyecto Final de Carrera

1. Introduccin
Este proyecto trata sobre el desarrollo de un sitio web de un colegio pblico. El centro sobre el que se basa el sitio es el Colegio Pblico Emilio Lluch, situado en Nquera (Camp de Tria, Valencia). El objetivo de este sitio web es dar a conocer el centro a travs de Internet, as como hacer ms accesible informacin 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 pblica accesible a todos los usuarios que accedan al portal sin registrarse. Entre la informacin de la cual consta destaca la informacin general sobre el centro, as como informacin de contacto para que los usuarios que no pertenezcan al colegio puedan contactar con l para informarse de una forma ms personalizada o con dudas ms concretas. La parte privada del sitio es una intranet para los usuarios que se autentiquen. sta se diferencia segn el grupo al que pertenezca el usuario, ya sea profesor o padre/alumno. En ella puede encontrar informacin personalizada sobre las asignaturas que tiene, horarios, etc. y puede hacer reservas de los equipamientos del centro entre otras cosas. Por ltimo, el administrador tambin tiene su propia intranet desde la cual puede administrar el sitio, pudiendo realizar acciones como dar de alta usuarios o visualizar estadsticas del sitio web. La motivacin de este tipo de proyecto es el seguimiento ms activo por parte de los padres sobre la educacin de sus hijos, en un medio muy extendido como es Internet, en el cual la mayora de colegios e institutos ya tienen su sitio web. Tambin los profesores podrn agilizar sus trmites como son las faltas de asistencia o poner las notas, habiendo una comunicacin ms constante con los padres. Por ello, lo consideramos un proyecto motivador para que los alumnos del colegio puedan tener una buena educacin con la supervisin ms activa de los padres, y a la vez favorecer la comunicacin tanto con los profesores de sus hijos como con los padres de los compaeros 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 Pblico Llanares http://web.educastur.princast.es/cp/llaranes/ Colegio Pblico San Blas http://www.educa.madrid.org/portal/web/cp_sanblas_ajalvir Colegio Pblico Migjorn http://www.cpmigjorn.net/

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 realizacin del proyecto. Para ello, el primer paso fue redactar la especificacin de requisitos en la cual redactamos una primera visin del proyecto donde especificamos las funcionalidades y los requisitos que deba 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 realizacin del proyecto fue la de anlisis. En ella se realiz un anlisis del problema y el modelado conceptual de nuestra solucin mediante diagramas. Los diagramas realizados fueron el diagrama de clases y los diagramas de los casos de uso. Con esto ya tenemos una visin global de cmo va a estar estructurado nuestro proyecto por lo que ya nos ponemos a realizar el diseo de cmo vamos a implementar el sitio web. Tras realizar el diseo nos adentramos en la fase de implementacin del proyecto a partir de los diagramas obtenidos en la etapa anterior. Aqu explicamos las tecnologas utilizadas y cmo son usadas. Tras todo esto, damos por finalizado el proyecto, por lo que ya podemos redactar las conclusiones sacadas en la realizacin 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 estndares que hemos usado para desarrollar el proyecto como son HTML y CSS por ejemplo. En otro anexo presentamos brevemente las herramientas usadas para la elaboracin del diseo y del desarrollo del proyecto. Tambin 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 cdigo fuente de las pginas desarrolladas.

E.T.S. de Informtica Aplicada (U.P.V.)

Vicente Sancho Guijarro

Proyecto Final de Carrera

2. Especificacin de Requisitos
2.1 Introduccin
2.1.1 Propsito El propsito de la especificacin de requisitos expuesta a continuacin es mostrar al usuario cual va a ser la funcionalidad del proyecto. En esta ERS se realizar una descripcin general del mismo, as como una especificacin de los requisitos que debe cumplir. 1) mbito La aplicacin que vamos a desarrollar con el nombre WebCole. Ser la encargada de proporcionar informacin general sobre el colegio Emilio Lluch de Nquera (Valencia) e informacin ms especializada a los usuarios registrados. De esta forma, el usuario puede obtener informacin desde su propia casa sobre el colegio proporcionndole una mayor comodidad. As los padres podrn 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 tambin pueden agilizar la forma de comunicarles estos datos a los padres de sus alumnos. 2) Definiciones, acrnimos y abreviaturas Definiciones Interfaz - Parte del programa informtico que permite el flujo de informacin entre varias aplicaciones o entre el propio programa y el usuario. Navegador - Aplicacin software que permite al usuario recuperar y visualizar documentos de hipertexto. Portal Web - Pgina 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 contrasea que previamente se le ha sido asignada. Sitio Web - conjunto de pginas web, tpicamente comunes a un dominio de Internet o subdominio en la World Wide Web en Internet. Acrnimos 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. Gua del IEEE para la especificacin de requerimientos software. [2] Ejemplos de otros proyectos. 4) Visin global

E.T.S. de Informtica Aplicada (U.P.V.)

Vicente Sancho Guijarro

Proyecto Final de Carrera

Posteriormente en este documento se realizar la descripcin general del sistema que va desarrollarse con sus funciones, caractersticas del usuario, restricciones generales, supuestos y dependencias. Tambin se expondr una especificacin detallada de los requisitos detectados.

1.2 Descripcin general


2.2.1 Perspectiva del producto La aplicacin pretende proporcionar informacin general sobre el centro. Otra parte de la aplicacin suministrar informacin ms especfica para cada tipo de usuario que acceda a esta seccin del portal. Nuestra aplicacin podr ser accedida desde cualquier sistema operativo, utilizando para ello un navegador Web. 2.2.2 Funciones del producto Usuarios no registrados Informacin general
En esta seccin se presentar el centro

Historia
Se escribir un pequeo resumen de la historia del colegio (ao de fundacin, remodelaciones,...)

Equipo de direccin
Se dispondr el organigrama directivo con informacin de contacto de cada uno de los componentes del equipo directivo (e-mail, etc.)

Reglamento de rgimen interno


Se expondr un resumen del reglamento bsico del centro

Calendario escolar
En esta parte de la aplicacin se podr visualizar el calendario escolar con los festivos del centro y otras actividades que consideren importantes.

Localizacin
Se especificar la direccin y un pequeo mapa de la localizacin del centro

Contactar
En esta seccin se proporcionar un pequeo formulario para poder mandar correos electrnicos al centro con consultas y/o sugerencias.

Enlaces
Se listarn las direcciones de otros sitios Web que el centro considere de inters.

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 aplicacin en esos momentos.

Listado de profesores
Los usuarios podrn visualizar un listado de los profesores que imparten clase al alumno

Notas
Se mostrarn las calificaciones de las asignaturas matriculadas por el alumno conectado.

Faltas de asistencia E.T.S. de Informtica Aplicada (U.P.V.) 9

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 seccin se podrn realizar reservas de las instalaciones del centro (campo de ftbol sala, gimnasio, etc.)

Tabln de anuncios
Desde aqu se podr acceder al foro donde los usuarios pueden poner anuncios para buscar gente para practicar algn deporte.

o Profesores Listado de alumnos


Los profesores dispondrn de un listado de los alumnos ordenados por grupos

Listado de profesores
Se listarn los profesores que imparten clases en el centro

Poner notas
En esta seccin 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 podrn realizar reservas de las instalaciones del centro (campo de ftbol sala, gimnasio, aulas, etc.)

Reserva de equipamientos
Se podrn efectuar reservas de los equipamientos disponibles en el centro (radio-cd, proyector, etc.)

Tabln 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 estadsticas de la Web Mantenimiento del foro 2.2.3 Caractersticas del usuario Los tipos de usuarios registrados se pueden dividir en los padres y alumnos, los profesores y el administrador. Por otra parte estarn los usuarios no registrados, que slo tendrn acceso a la informacin general del centro, sin poder acceder a la informacin personalizada. Los padres y alumnos que podrn consultar informacin acerca del alumno a travs de la zona privada y hacer reservas de instalaciones del centro en horario extraescolar. Los profesores tambin tendrn acceso a su zona restringida desde la cual podrn consultar informacin propia y sobre los grupos de alumnos a los que imparte clases, como la composicin, las notas y las faltas de asistencia. Tambin podr hacer reservas de instalaciones y equipamientos del colegio para su uso en las distintas clases.

E.T.S. de Informtica Aplicada (U.P.V.)

10

Vicente Sancho Guijarro

Proyecto Final de Carrera

El administrador ser el que gestiones las altas, las modificaciones y las bajas de los usuarios registrados. Los usuarios debern de tener conocimientos mnimos de informtica y de navegacin por la Web para poder acceder al sitio Web. 2.2.4 Restricciones generales Se requiere un ordenador con conexin a Internet. 2.2.5 Supuestos y dependencias Se necesita un navegador de Internet, preferiblemente que respete los estndares de W3C.

2.3 Requerimientos especficos


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 Informacin general En est seccin se har una presentacin del centro acompaada de una foto. Entre la informacin que podemos encontrar estar la direccin, el telfono y otros datos de inters. 2.3.2.1.2 Historia Se har un breve resumen de la historia del centro indicando el ao de fundacin, acontecimientos que ellos consideren ms 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 direccin Se mostrar el organigrama directivo del centro en el que aparecer la organizacin interna del centro con todos sus componentes como el director, el jefe de estudios, etc. De cada uno se mostrar informacin como su telfono interno, su e-mail, su despacho y sus horarios de atencin. 2.3.2.1.4 Reglamento de rgimen interno Se podr acceder al reglamento de rgimen 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 podrn consultar los das festivos y los no lectivos del centro. En el mismo calendario se podr ver la fecha de las actividades

E.T.S. de Informtica Aplicada (U.P.V.)

11

Vicente Sancho Guijarro

Proyecto Final de Carrera

realizadas en el centro, as como los periodos de evaluacin o de los plazos de matriculacin y presentacin de becas. 2.3.2.1.6 Localizacin Aqu se pondr la direccin del centro acompaada de un mapa para facilitar la localizacin. Tambin se podrn consultar las rutas de autobuses existentes para recoger a los alumnos. Adems se colocarn los diferentes accesos por carretera al colegio, as como lneas de transporte pblico. 2.3.2.1.7 Contactar Se dispondr de un pequeo formulario a travs del cual se pueden hacer llegar las dudas o consultas por e-mail al centro. Tambin se mostrarn los telfonos del centro para los usuarios que prefieran ponerse en contacto con el centro por telfono. La direccin completa tambin se podr consultar en este apartado. 2.3.2.1.8 Enlaces Aqu aparecern enlaces a otras webs de inters para el usuario, como pueden ser las webs del Ministerio de Educacin, la Conselleria de Educacin, webs de recursos educativos y los que el colegio considere oportunos. Estos enlaces estarn ordenados por rea de inters. 2.3.2.2 Usuarios registrados como alumno/padre Las funcionalidades descritas a continuacin slo 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 sern nombre y apellidos del alumno, su direccin de correo electrnico. 2.3.2.2.3 Listado de profesores Se mostrar una lista con los profesores que imparten clase al alumno. Los datos mostrados sern nombre y apellidos del alumno, su direccin de correo electrnico y su despacho. 2.3.2.2.4 Notas Aqu se podrn consultar las notas obtenidas por el alumno en las asignaturas en las que est matriculado. Tambin 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. Tambin se podr diferenciar entre las justificadas y las no justificadas. 2.3.2.2.6 Men semanal

E.T.S. de Informtica Aplicada (U.P.V.)

12

Vicente Sancho Guijarro

Proyecto Final de Carrera

En esta seccin aparecer el men del comedor escolar. Tambin 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. Adems aparecern los precios del comedor diferenciados por das, semanas o meses segn se quiera consultar. 2.3.2.2.7 Reserva de instalaciones Desde aqu se podrn reservar las instalaciones del centro, como pueden ser la pista de ftbol, el gimnasio, el aula de usos mltiples, etc. Tambin se podr anular reservas. Las reservas slo pueden hacerse en horario extraescolar. Adems se dispondr de las normas a la hora de usar las instalaciones y de hacer la reserva. 2.3.2.2.8 Tabln de anuncios Aqu se publicarn anuncios en general. Por ejemplo, un alumno puede publicar un anuncio para buscar gente para practicar algn deporte. Tambin podrn eliminar mensajes creados por ellos mismos. 2.3.2.3 Usuarios registrados como profesores A continuacin 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 sern nombre y apellidos del alumno, su direccin de correo electrnico incluido el telfono 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 sern nombre y apellidos del profesor, su direccin de correo electrnico y su despacho. 2.3.2.3.3 Poner notas Desde aqu se podr introducir las notas de cada alumno que podrn ser visualizadas posteriormente por los alumnos desde su intranet. Los alumnos aparecern ordenados por grupos. En esta seccin tambin se podrn 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. Tambin se podr justificar las faltas que an no lo estn. En caso de error tambin 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 ftbol, el gimnasio, el aula de usos mltiples, etc. Tambin se podr anular reservas. Adems 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

E.T.S. de Informtica Aplicada (U.P.V.)

13

Vicente Sancho Guijarro

Proyecto Final de Carrera

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. Tambin se podrn anular reservas que haya efectuado antes el profesor. Adems se dispondr de las normas a la hora de usar las instalaciones y de hacer la reserva. 2.3.2.3.7 Tabln de anuncios Se podr acceder y publicar anuncios al mismo tabln de los alumnos/padres, con las mismas funcionalidades que ellos. Tambin podrn eliminar mensajes creados por ellos mismos. 2.3.2.4 Administrador del portal Por ltimo, las siguientes funcionalidades slo sern 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 informacin. Los usuarios a los que podr dar de alta sern aquellos profesores que estn impartiendo clases en el centro o a aquellos alumnos/padres que estn 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 informacin 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, telfono, etc. o por errores a la hora de dar de alta a algn usuario. Otra opcin desde esta seccin es poder sancionar a usuarios restringindole el acceso al tabln 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 sern visibles en la pgina principal del portal. 2.3.2.4.5 Ver estadsticas de la Web Aqu aparecern estadsticas de la Web, como el nmero 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.

E.T.S. de Informtica Aplicada (U.P.V.)

14

Vicente Sancho Guijarro

Proyecto Final de Carrera

3. Anlisis
Para realizar el anlisis de esta aplicacin 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 ayudarn a comprender la complejidad del futuro sistema, permitindonos plasmar en un lenguaje estndar aquellas funcionalidades, requisitos y dems caractersticas 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 permitirn comprender mejor la aplicacin, especialmente en grandes aplicaciones, lo que nos facilitar la tarea de implementacin, as como la ampliacin del sistema si fuera necesario. Aunque UML define una gran cantidad de diagramas para representar los distintos aspectos del desarrollo de la aplicacin, 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 interaccin 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. Tambin nos permitir conocer a grandes rasgos las clases u objetos de nuestro sistema. A continuacin describiremos brevemente dichas clases para conocer mejor la aplicacin. Usuario Registrado: Esta clase representa a aquellos usuarios que pueden acceder a la intranet de la aplicacin y que podrn interactuar con el sistema, en la medida de los permisos que les concedamos. Tiene una serie de atributos que permite definirlos, siendo los ms importantes, desde el punto del sistema, el login que deber ser nico dentro del sistema y la contrasenya ya que sern necesarios a la hora de poder acceder a la intranet del colegio. De esta clase se derivan las siguientes subclases: Alumno, Profesor, Progenitor, Equipo directivo y Administrador. Instalacin: Este objeto representa aquellas infraestructuras del colegio que pueden ser reservadas, en principio por todos los usuarios registrados. Un posible ejemplo de infraestructura reservable podra ser el caso de un aula informtica, que pueda ser reservada por un profesor para realizar una clase especial en ella.

E.T.S. de Informtica Aplicada (U.P.V.)

15

Vicente Sancho Guijarro

Proyecto Final de Carrera

Figura 1 Diagrama de Clases de la aplicacin

Anuncio: Esta clase representa aquellos mensajes que pueden publicar los usuarios registrados en el sitio Web. Estos mensajes sern pblicos para todos los usuarios registrados de la aplicacin.

E.T.S. de Informtica Aplicada (U.P.V.)

16

Vicente Sancho Guijarro

Proyecto Final de Carrera

Progenitor: Esta entidad identifica a los padres, madres o tutores de los alumnos del centro que pueden acceder a la seccin 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 aplicacin. Grupo: Este objeto contendr la informacin necesaria para identificar a los distintos grupos de alumnos que conforman el colegio. Seguir la distribucin normal de los colegios, separando los grupos tanto por el curso como por una letra. Profesor: Esta clase, derivada tambin de la sper clase Usuario Registrado, representa a aquellos profesores del colegio que acceden a la seccin privada de la aplicacin. 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 justificndolas ms 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. Equipacin: Esta clase al igual que las instalaciones, permite realizar reservadas de objetos del colegio, aunque en este caso nicamente podr realizar la operacin profesores. Un ejemplo de equipacin que puede ser reservado sera un radio-cd o televisor. Equipo directivo: De esta clase se derivarn otras tres (director, jefe estudios, secretario) Dichas clases representarn a dichos cargos en la aplicacin. Administrador: Esta clase representa a aquellos usuarios que administrarn el sitio Web del colegio y que tendr los permisos suficientes para realizar cualquier accin. Evento: Esta clase identificar aquellas noticias que el colegio considere de inters para el conjunto del colegio. Este objeto podr contener tanto eventos que se producen en el centro, por ejemplo excursiones, exmenes, etc, como eventos de un mayor alcance, por ejemplo, fiesta locales, autonmicos 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.

E.T.S. de Informtica Aplicada (U.P.V.)

17

Vicente Sancho Guijarro

Proyecto Final de Carrera

3.2. Diagrama de casos de uso


Los diagramas de casos de uso nos permitirn conocer los distintos tipos de actores que podrn acceder y/o utilizar nuestra aplicacin. Tambin nos servir para especificar las acciones que tendrn dichos usuarios dentro de nuestra aplicacin, as como las relaciones que aparecern entre los distintos casos de uso. Para algunos casos de uso, adems se incluye su plantilla, que proporciona informacin adicional sobre dichos casos de uso. No se han colocado todas las plantillas, ya que muchas prcticamente son idnticas.

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 interactan con l) que podrn acceder a la aplicacin. Todos ellos derivan de Usuario. Este actor representa para la aplicacin Web a todos aquellos usuarios que no se han identificado ante el sistema, ya sea porque todava no hayan iniciado la sesin o porque sean usuarios que estn de paso o buscando informacin.

E.T.S. de Informtica Aplicada (U.P.V.)

18

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 sern en consecuencia muy limitadas, centrndose en la obtencin de informacin general del centro.

E.T.S. de Informtica Aplicada (U.P.V.)

19

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 ms casos de uso disponga, ya que en realidad, este actor nos permite crear un usuario genrico del que dependern del resto de usuarios que pueden acceder a la intranet. De esta forma podemos asignar a este actor todos los casos de usos que sern comunes a todos los actores que utilizarn esta aplicacin (con excepcin del actor usuario).

E.T.S. de Informtica Aplicada (U.P.V.)

20

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 ms funcionalidades posea, ya que, adems de las funcionalidades que posee todo usuario registrado, como administrador tendr acceso total al sistema.

E.T.S. de Informtica Aplicada (U.P.V.)

21

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 tendrn a su disposicin tanto los alumnos como sus padres, madres, o tutores. Los padres podrn acceder a la misma informacin que sus hijos para as poder realizar un control sobre ciertos aspectos como el control de asistencia a clase.

E.T.S. de Informtica Aplicada (U.P.V.)

22

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 ms pueda modificar el sistema (aparte del administrador), ya que el profesor dispondr de varios casos de uso que le permitirn modificar la informacin de los alumnos de sus respectivas asignaturas.

E.T.S. de Informtica Aplicada (U.P.V.)

23

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 excepcin de usuario, heredan los casos de uso del usuario registrado)

E.T.S. de Informtica Aplicada (U.P.V.)

24

Vicente Sancho Guijarro

Proyecto Final de Carrera

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. Tambin nos mostrar la secuencia temporal del flujo de mensajes.

No se colocarn todos los diagramas de secuencia, ya que muchos son prcticamente idnticos unos de otros.

3.3.1.

Iniciar sesin

Figura 9 Diagrama de secuencia: Iniciar sesin

En la Figura 9 Diagrama de secuencia: Iniciar sesin se puede ver el diagrama de secuencia que ser ms 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).

E.T.S. de Informtica Aplicada (U.P.V.)

25

Vicente Sancho Guijarro

Proyecto Final de Carrera

3.3.2.

Aadir anuncio al tabln de anuncios

Figura 10 Diagrama de secuencia: Aadir anuncio

En este escenario, el Usuario Registrado podr crear nuevos anuncios que aparecern en el tabln de anuncios del colegio. El Usuario Registrado deber proporcionar el ttulo del anuncio y el contenido del mismo.

E.T.S. de Informtica Aplicada (U.P.V.)

26

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 cuestin. Una vez que el sistema tenga los horarios del grupo del alumno, se los devolver al alumno

E.T.S. de Informtica Aplicada (U.P.V.)

27

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 aplicacin. En esta situacin el administrador solicitar los datos del alumno a eliminar. El sistema le devolver todos los datos del alumno, si el administrador confirma la eliminacin del alumno, el sistema lo intentar suprimir del sistema devolviendo el resultado de la eliminacin al administrador.

E.T.S. de Informtica Aplicada (U.P.V.)

28

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 estn 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.

E.T.S. de Informtica Aplicada (U.P.V.)

29

Vicente Sancho Guijarro

Proyecto Final de Carrera

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.

E.T.S. de Informtica Aplicada (U.P.V.)

30

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 poda 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.

E.T.S. de Informtica Aplicada (U.P.V.)

31

Vicente Sancho Guijarro

Proyecto Final de Carrera

3.3.8.

Reservar equipaciones

Figura 16 Diagrama de Secuencia: Reservar equipacin

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 equipacin que est interesado en reservar. El sistema le devolver un listado con los das en que se puede reservar la equipacin. En este momento el profesor deber escoger una de las fechas disponibles y escribir el motivo de su peticin. A continuacin el profesor confirmar los datos de la reserva, a lo que el sistema le responder si fue posible realizar la reserva de la equipacin requerida.

E.T.S. de Informtica Aplicada (U.P.V.)

32

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 instalacin para anular y el sistema quitar la reserva. Como ltimo paso el sistema le proporcionar el listado de reserva actualizado.

E.T.S. de Informtica Aplicada (U.P.V.)

33

Vicente Sancho Guijarro

Proyecto Final de Carrera

4. Diseo
Para el diseo 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 fcilmente el comportamiento de las clases en el nivel de aplicacin sin que ello influya en las otras capas. Estas capas se corresponden con la de presentacin, aplicacin y persistencia.

PRESENTACIN

APLICACIN

PERSISTENCIA
Figura 18 - Arquitectura a tres capas.

4.1. Nivel de presentacin


La primera capa es la de presentacin. Esta capa es la encargada de interaccionar con el usuario a travs de una representacin visual. En esta capa tambin se ofrecen servicios al usuario. A continuacin presentamos algunas capturas de pantalla representativas del proyecto.

E.T.S. de Informtica Aplicada (U.P.V.)

34

Vicente Sancho Guijarro

Proyecto Final de Carrera

Figura 19 Captura de la pgina 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 pgina.

En la parte izquierda de la pgina encontramos la zona de navegacin representada por un men desde el cual podemos acceder a las diferentes secciones.

E.T.S. de Informtica Aplicada (U.P.V.)

35

Vicente Sancho Guijarro

Proyecto Final de Carrera

Figura 21 Men del sitio web.

Justo debajo del men se encuentra una pequea zona de entrada de datos para que los usuarios registrados en la base de datos puedan identificarse introduciendo su login y su contrasea y acceder a su zona privada.

Figura 22 Formulario de inicio de sesin

Por ltimo, en la zona central de la pgina se haya la zona de informacin, que a su vez la podemos dividir en dos partes. En la parte superior se ubica la informacin principal que ofrece la pgina, mientras que en la parte inferior aparecen las cinco ltimas noticias introducidas en la base de datos.

Figura 23 Zona de informacin de la pgina de inicio.

A continuacin presentamos otros ejemplos de las pginas web implementadas en nuestro proyecto. La siguiente pgina se corresponde con la que muestra el calendario escolar. Para ello se ha utilizado un script que forma un calendario, mostrando los sbados y domingos en rojo, as como los festivos marcados como tales en la base de datos. Tambin se marcan de otro color los eventos introducidos por el centro en la base de datos. Si pinchamos en un festivo o un da en el cual hay un evento programado, nos dice de qu se trata en la parte inferior de la pgina.

E.T.S. de Informtica Aplicada (U.P.V.)

36

Vicente Sancho Guijarro

Proyecto Final de Carrera

Figura 24 Captura de la pgina donde se muestra el calendario escolar.

La siguiente captura de pantalla se corresponde con un ejemplo de pgina 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. Tambin observamos que en la zona donde se ha identificado el usuario, ahora aparece Bienvenido seguido de su nombre de pila. Tambin da la opcin de cerrar sesin, volviendo tras ello a la pgina inicial del sitio web. Otro cambio es que ahora en vez de mostrar en la parte inferior noticias, slo se muestran los prximos eventos referentes al desarrollo del curso ya que son los que ms inters tienen para el alumno, como por ejemplo la fecha de inicio del prximo 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.

E.T.S. de Informtica Aplicada (U.P.V.)

37

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 tambin 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.

E.T.S. de Informtica Aplicada (U.P.V.)

38

Vicente Sancho Guijarro

Proyecto Final de Carrera

4.2. Nivel de aplicacin


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

Capa de presentacin
Zona annima Zona alumno Zona profesor

Analizadorlogin

Anonimo_inc

Alumno_inc

Profesor_inc

Capa de aplicacin

bd

Capa de persistencia
Base de datos

Figura 27 Capas del proyecto

La capa de aplicacin 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 annima. Los siguientes

E.T.S. de Informtica Aplicada (U.P.V.)

39

Vicente Sancho Guijarro

Proyecto Final de Carrera

tres componentes (anonimo_inc, alumno_inc y profesor_inc) son los encargados de implementar la lgica 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 travs de bd. Este componente surge de aplicar el patrn de diseo llamado Fachada o Faade. Este patrn consiste en utilizar la clase bd para todas las operaciones que interacten con la base de datos. El uso de este patrn 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 accedamos a la base de datos con usuarios distintos. De esta forma, para adaptarnos a la base de datos del servidor simplemente tenamos que cambiar la clase bd sin tener que tocar ningn fichero ms.

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 informacin de una sesin a otra aunque el sistema no est en uso. A continuacin mostramos el diagrama entidad-relacin utilizado para la implementacin de la base de datos de nuestro proyecto.

E.T.S. de Informtica Aplicada (U.P.V.)

40

Vicente Sancho Guijarro

Proyecto Final de Carrera

Figura 28 Diagrama entidad-relacin.

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

E.T.S. de Informtica Aplicada (U.P.V.)

41

Vicente Sancho Guijarro

Proyecto Final de Carrera

el profesor. Esta especializacin 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 tambin 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 segn su atributo evento. Pueden ser del tipo festivo, los cuales se utilizan en el calendario escolar para marcar los festivos en rojo. Tambin podrn ser de tipo noticia, los cuales se muestran en la parte inferior de la zona pblica o de tipo evento del curso, los cuales se muestran en las zonas privadas y muestran informacin de inters a los usuarios registrados, como puede ser el da de inicio de las clases. Los alumnos estn matriculados en un grupo, el cual se caracteriza por su nmero de curso y su letra. Uno de ellos, adems, ser el delegado del mismo. Cada grupo tambin tendr un profesor que lo tutorice. Los grupos estn compuestos por asignaturas, las cuales son impartidas por un profesor, pudiendo un profesor impartir mltiples 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 podrn publicar anuncios en el tabln de anuncios, as como reservar una instalacin del colegio, mientras que los profesores sern los nicos que puedan reservar equitaciones (radio-cd, proyector, .etc.).

E.T.S. de Informtica Aplicada (U.P.V.)

42

Vicente Sancho Guijarro

Proyecto Final de Carrera

5. Implementacin

5.1. Tecnologas
Dada la necesidad de crear contenidos dinmicos, debemos utilizar otros lenguajes a parte de HTML. Para este proyecto se ha optado por el lenguaje PHP acompaado de una base de datos MySQL. Estas tecnologas cumplen sobradamente con nuestras necesidades y estn muy extendidas, por lo que no supondr una dificultad encontrar documentacin en la cual apoyarnos durante el desarrollo del sitio web. Tambin cabe destacar el hecho de que sean tecnologas de libre distribucin y uso.

5.1.1.

HTML

El HTML, acrnimo ingls de HyperText Markup Language (lenguaje de marcas hipertextuales), es un lenguaje de marcacin diseado para estructurar textos y presentarlos en forma de hipertexto, que es el formato estndar de las pginas 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 ms populares que existen para la construccin de documentos y tambin de los ms fciles de aprender.HTML es una aplicacin de SGML conforme al estndar internacional ISO 8879. El lenguaje HTML puede ser creado y editado con cualquier editor de textos bsico, 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 adems, otros programas para la realizacin de sitios Web o edicin de cdigo 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 tambin las imgenes y los dems 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 algn 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 vera en su navegador como negrita. No pueden abrirse y cerrarse, como <hr> que se vera en su navegador como una lnea horizontal. Otras que pueden abrirse y cerrarse, como por ejemplo <p>.

5.1.2.

XHTML

E.T.S. de Informtica Aplicada (U.P.V.)

43

Vicente Sancho Guijarro

Proyecto Final de Carrera

XHTML, acrnimo ingls de eXtensible Hypertext Markup Language (lenguaje extensible de marcado de hipertexto), es el lenguaje de marcado pensado para sustituir a HTML como estndar para las pginas web. XHTML es la versin XML de HTML, por lo que tiene, bsicamente, las mismas funcionalidades, pero cumple las especificaciones, ms estrictas, de XML. Su objetivo es avanzar en el proyecto del World Wide Web Consortium de lograr una web semntica, donde la informacin, y la forma de presentarla estn claramente separadas. En este sentido, XHTML servira nicamente para transmitir la informacin que contiene un documento, dejando para hojas de estilo y JavaScript su aspecto y diseo en distintos medios (ordenadores, PDAs, telfonos mviles, impresoras...). XHTML es el sucesor de HTML. Es por eso que muchos lo consideran la versin actual del HTML, pero es una recomendacin aparte y a la vez paralela; la W3C contina recomendando el uso de XHTML 1.1, XHTML 1.0, y HTML 4.01 para publicar en la web. La necesidad de una versin ms estricta de HTML se sinti principalmente porque el contenido de la World Wide Web ahora puede visualizarse desde numerosos dispositivos (como mviles) aparte de los ordenadores tradicionales, donde no pueden dedicarse recursos suplementarios para afrontar la complejidad aadida de la sintaxis del HTML. La mayora de las versiones recientes de los navegadores web ms populares soportan XHTML adecuadamente, pero algunas versiones ms 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 vlidos, respetuosos con los estndares u ofrecer contenido que se visualice correctamente en la mayor parte de los navegadores. Los cambios de HTML a la primera generacin de XHTML (es decir, XHTML 1.x) son menores ya que, principalmente, estn destinados a conseguir la conformidad con XML. El cambio ms importante es el requisito de que el documento est bien formado y que todas las etiquetas estn explcitamente cerradas, como se requiere en XML. Como las etiquetas en XML distinguen entre maysculas y minsculas (case-sensitive), la recomendacin XHTML ha definido todos los nombres de etiqueta en minsculas. En XHTML, los valores de los atributos deben encerrarse entre comillas ('simples' o "dobles", es indiferente). Al contrario ocurra en SGML y por consecuencia en HTML, donde las comillas podan omitirse en algunos casos. Todos los elementos han de ser explcitamente cerrados, incluyendo elementos vacos como pueden ser img o br. Esto puede hacerse aadiendo una barra a la etiqueta: <img /> y <br />. La minimizacin de atributos (como <option selected>) est tambin prohibida, ya que el atributo selected no contiene ningn valor explcito; en lugar de eso, se usa <option selected="selected">.

E.T.S. de Informtica Aplicada (U.P.V.)

44

Vicente Sancho Guijarro

Proyecto Final de Carrera

5.1.3.

CSS

Las hojas de estilo en cascada (Cascading Style Sheets, CSS) son un lenguaje formal usado para definir la presentacin de un documento estructurado escrito en HTML o XML (y por extensin en XHTML). El W3C (World Wide Web Consortium) es el encargado de formular la especificacin de las hojas de estilo que servir de estndar para los agentes de usuario o navegadores. La idea que se encuentra detrs del desarrollo de CSS es separar la estructura de un documento de su presentacin. Por ejemplo, el elemento de HTML <H1> indica que un bloque de texto es un encabezamiento y que es ms importante que un bloque etiquetado como <H2>. Versiones ms antiguas de HTML permitan atributos extra dentro de la etiqueta abierta para darle formato (como el color o el tamao de fuente). No obstante, cada etiqueta <H1> deba disponer de la informacin si se deseaba un diseo consistente para una pgina, y adems, una persona que lea esa pgina con un navegador pierde totalmente el control sobre la visualizacin del texto. Cuando se utiliza CSS, la etiqueta <H1> no debera proporcionar informacin sobre como va a ser visualizado, solamente marca la estructura del documento. La informacin de estilo separada en una hoja de estilo, especifica cmo se ha de mostrar <H1> : color, fuente, alineacin del texto, tamao, y otras caractersticas no visuales como definir el volumen de un sintetizador de voz (vase Sintetizacin del habla), por ejemplo. La informacin de estilo puede ser adjuntada tanto como un documento separado o en el mismo documento HTML. En este ltimo podran 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 presentacin de un sitio web completo con lo que se agiliza de forma considerable la actualizacin 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 tamao del texto o remarcar ms los enlaces. Una pgina puede disponer de diferentes hojas de estilo segn el dispositivo que la muestre o incluso a eleccin del usuario. Por ejemplo, para ser impresa, mostrada en un dispositivo mvil, o ser "leda" por un sintetizador de voz. El documento HTML en s mismo es ms claro de entender y se consigue reducir considerablemente su tamao.

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 pequeas diferencias de implementacin segn marcas y versiones de los navegadores. CSS2, sin embargo, est solo parcialmente implementado en los ms recientes. Un problema muy conocido de implementacin de CSS es el de la versin 5.X del popular navegador Internet Explorer que utiliza un modelo no estndar para el clculo de las medidas.

E.T.S. de Informtica Aplicada (U.P.V.)

45

Vicente Sancho Guijarro

Proyecto Final de Carrera

5.1.4.

JavaScript

JavaScript es un lenguaje interpretado, es decir, que no requiere compilacin, utilizado principalmente en pginas 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 ms 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 cdigo JavaScript integrado dentro de las pginas web. Para interactuar con una pgina web se provee al lenguaje JavaScript de una implementacin 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 vena utilizando en pginas web HTML, para realizar tareas y operaciones en el marco de la aplicacin nicamente cliente, sin acceso a funciones del servidor. JavaScript se ejecuta en el agente de usuario al mismo tiempo que las sentencias van descargndose junto con el cdigo HTML. Los autores inicialmente lo llamaron Mocha y ms 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 estndar 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 estndar ECMA, con el nombre de ECMAScript. Poco despus tambin lo fue como un estndar ISO. JScript es la implementacin 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 estndar Document Object Model (DOM, Modelo de Objetos del Documento en castellano), que incorporan Konqueror, las versiones 6 de Internet Explorer y Netscape Navigator, Opera versin 7, y Mozilla desde su primera versin.

5.1.5.

PHP

PHP es un lenguaje de programacin usado generalmente para la creacin de contenido para sitios web. PHP es un acrnimo 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 creacin de aplicaciones para servidores, o creacin de contenido dinmico para sitios web. ltimamente tambin para la creacin de otro tipo de programas incluyendo aplicaciones con interfaz grfica usando la biblioteca GTK+.

E.T.S. de Informtica Aplicada (U.P.V.)

46

Vicente Sancho Guijarro

Proyecto Final de Carrera

El fcil uso y la similitud con los lenguajes ms comunes de programacin estructurada, como C y Perl, permiten a la mayora de los programadores experimentados crear aplicaciones complejas con una curva de aprendizaje muy suave. Tambin les permite involucrarse con aplicaciones de contenido dinmico sin tener que aprender todo un nuevo grupo de funciones y prcticas. Debido al diseo de PHP, tambin es posible crear aplicaciones con una interfaz grfica para el usuario (tambin llamada GUI), utilizando la extensin PHP-GTK. Tambin puede ser usado desde la lnea de rdenes, de la misma manera como Perl o Python pueden hacerlo, esta versin de PHP se llama PHP CLI (Command Line Interface). Su interpretacin y ejecucin se da en el servidor, en el cual se encuentra almacenado el script, y el cliente slo recibe el resultado de la ejecucin. Cuando el cliente hace una peticin al servidor para que le enve una pgina web, generada por un script PHP, el servidor ejecuta el intrprete de PHP, el cual procesa el script solicitado que generar el contenido de manera dinmica, pudiendo modificar el contenido a enviar, y regresa el resultado al servidor, el cual se encarga de regresrselo al cliente. Adems es posible utilizar PHP para generar archivos PDF, Flash, as como imgenes en diferentes formatos, entre otras cosas. Permite la conexin 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 creacin de Aplicaciones web muy robustas. PHP tambin tiene la capacidad de ser ejecutado en la mayora 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 ms populares ya que existe en versin CGI, mdulo 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 compaa Macromedia, a JSP/Java de Sun Microsystems, y al famoso CGI/Perl. Aunque su creacin y desarrollo se da en el mbito de los sistemas libres, bajo la licencia GNU, existe adems un IDE comercial llamado Zend Optimizer. Los principales usos del PHP son los siguientes: Programacin de pginas web dinmicas, habitualmente en combinacin con el motor de base datos MySQL, aunque cuenta con soporte nativo para otros motores, incluyendo el estndar ODBC, lo que ampla en gran medida sus posibilidades de conexin. Programacin en consola, al estilo de Perl o Shell scripting. Creacin de aplicaciones grficas independientes del navegador, por medio de la combinacin 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 conexin con la mayora 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.

E.T.S. de Informtica Aplicada (U.P.V.)

47

Vicente Sancho Guijarro

Proyecto Final de Carrera

Capacidad de expandir su potencial utilizando la enorme cantidad de mdulos (llamados ext's o extensiones). Posee una amplia documentacin en su pgina oficial ([1]), entre la cual se destaca que todas las funciones del sistema estn explicadas y ejemplificadas en un nico archivo de ayuda. Es libre, por lo que se presenta como una alternativa de fcil acceso para todos. Permite las tcnicas de Programacin Orientada a Objetos. Permite crear los formularios para la web. Biblioteca nativa de funciones sumamente amplia e incluida No requiere definicin de tipos de variables ni manejo detallado del bajo nivel.

5.1.6.

MySQL

MySQL es un sistema de gestin de base de datos, multihilo y multiusuario con ms 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 pblica, y el copyright del cdigo est en poder del autor individual, MySQL est posedo y patrocinado por una empresa privada, que posee el copyright de la mayor parte del cdigo. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Adems de la venta de licencias privativas, la compaa ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran va 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 estndar para las bases de datos relacionales. Desde 1986, el estndar 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 estndar SQL, pero sin sacrificar velocidad, fiabilidad o usabilidad. Michael Widenius en la dcada de los 90 trat de usar mSQL para conectar las tablas usando rutinas de bajo nivel ISAM, sin embargo, mSQL no era rpido 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 ms portable. La procedencia del nombre de MySQL no es clara. Por ms de 10 aos, las herramientas han mantenido el prefijo My. Tambin, se cree que tiene relacin con el nombre de la hija del cofundador Monty Widenius quien se llama My. Por otro lado, el nombre del delfn de MySQL es Sakila y fue seleccionado por los fundadores de MySQL AB en el concurso Name the Dolphin. Este nombre fue E.T.S. de Informtica Aplicada (U.P.V.) 48

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 aplicacin web est muy ligada a PHP, que a menudo aparece en combinacin con MySQL. MySQL es una base de datos muy rpida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificacin. En aplicaciones web hay baja concurrencia en la modificacin de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones.

E.T.S. de Informtica Aplicada (U.P.V.)

49

Vicente Sancho Guijarro

Proyecto Final de Carrera

5.2. Descripcin de la implementacin


5.2.1. Seccin pblica

La capa de presentacin 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, localizacin.php, contactar.php y enlaces.php. Se ha intentado que el uso de las CSS sean lo ms compatibles posibles con los diferentes navegadores existentes en el mercado ya que por desgracia no todos siguen completamente los estndares. La cabecera simplemente se compone de dos imgenes (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 funcin 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 funcin obtiene la fecha (obtenida a su vez de la funcin 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 funcin setTimeout pasndole como parmetros la misma funcin en la que estamos y un intervalo de 1000 milisegundos. Finalmente, para que la pgina HTML ejecute el Javascript al cargarse basta con poner estas lneas:
<head> <script type="text/javascript" src="./js/fecha.js"> </script>

E.T.S. de Informtica Aplicada (U.P.V.)

50

Vicente Sancho Guijarro


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

Proyecto Final de Carrera

Figura 29 - Cabecera del sitio web.

El men es una lista desordenada, la cual hemos modificado para que no salga la vieta 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 estn 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, tamao de la letra, la alineacin 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; }

E.T.S. de Informtica Aplicada (U.P.V.)

51

Vicente Sancho Guijarro

Proyecto Final de Carrera

Figura 30 Men de la zona annima.

5.2.2.

Seccin privada

El formulario de identificacin 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 contrasea. El cdigo 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 ms abajo, cuando nos centremos en los ficheros correspondientes a la capa de aplicacin. Si la autentificacin es errnea, se crea una cookie y se devuelve al usuario a index, que al encontrar esta cookie muestra un mensaje advirtindolo, como se muestra en el cdigo siguiente.
<?php if($_COOKIE['login'] == "Error") { echo '<span class="fechaNoticia">Autenticacin errnea</span>'; } ?>

Figura 31 Formulario de identificacin.

E.T.S. de Informtica Aplicada (U.P.V.)

52

Vicente Sancho Guijarro

Proyecto Final de Carrera

La capa de aplicacin 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 presentacin, 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 funcin se encarga de realizar la conexin con la base de datos, con el usuario cole1 y su correspondiente contrasea. Si la conexin 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 funcin recibe como parmetros la sentencia sql a ejecutar y la conexin sobre la cual realizarla.
function consulta($sql, $c) { $res = mysql_query($sql, $c); return $res; }

Con esta funcin, 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 funcin podemos cerrar la conexin con la base de datos cuando hemos terminado de trabajar con ella.
function Desconectar($link) { mysql_close($link); //cierra la conexion }

Segn avanzamos en el proyecto, tambin le aadimos 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 ees.
function sacarFecha($fecha_datetime) { $fecha = split("-",$fecha_datetime); $hora = split(":",$fecha[2]); $fecha_hora=split(" ",$hora[0]);

E.T.S. de Informtica Aplicada (U.P.V.)

53

Vicente Sancho Guijarro


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

Proyecto Final de Carrera


. $fecha[1] . '-' .

//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 contrasea es la correcta y que tipo de usuario es. Para ello consultamos la tabla usuario, donde buscamos si coincide el login y la contrasea. 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 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)) el cookie con el nombre del usuario

E.T.S. de Informtica Aplicada (U.P.V.)

54

Vicente Sancho Guijarro


{

Proyecto Final de Carrera

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("Autenticacin errnea"); </script>'; }

desconectar($conn);

Cuando en la zona del alumno se requiere alguna funcin php para cargar los contenidos de la base de datos, carga esta funcin del fichero Alumno_inc.php. Del mismo modo en la zona del profesor los carga del fichero Profesor_inc.php. Tambin la zona del usuario annimo tiene su fichero de funciones para implementar la capa de aplicacin, en este caso es el fichero Anonimo_inc.php. Un ejemplo de la llamada a estas funciones lo podemos encontrar en todas las pginas del usuario annimo. En la parte inferior encontramos las noticias ms recientes introducidas en la base de datos. Para esto llama a la funcin 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 funcin 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 estn ordenadas en orden descendente, sern las cinco noticias ms recientes. Ponemos las noticias en la pgina 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++) {

E.T.S. de Informtica Aplicada (U.P.V.)

55

Vicente Sancho Guijarro

Proyecto Final de Carrera

$row = siguiente($res); echo class='fechaNoticia'>".sacarFecha($row["fecha"])." </span>".tohtml($row["descripcion"])." </p>"; } desconectar($conn); }

"<p><span

Figura 32 Pgina 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 integracin de su uso con PHP. Se ha cambiado el tipo de tablas por defecto (MyISAM), ya que la original no aceptaba las restricciones que queramos imponer en las tablas, por lo que hemos puesto tablas de tipo InnoDB. Para ello simplemente hemos tenido que descomentar las lneas referentes a InnoDB del fichero de configuracin de MySQL, my.cnf. Para crear la base de datos hemos usado PHPMyAdmin. En el anexo se detalla el fichero de creacin de la base de datos, llamado setup.php.

E.T.S. de Informtica Aplicada (U.P.V.)

56

Vicente Sancho Guijarro

Proyecto Final de Carrera

6. Pruebas
Con el fin de comprobar cmo responde nuestra aplicacin a las distintas situaciones en las que se puede encontrar hemos decidido realizar una serie de pruebas, que consistirn en las siguientes: Tamao de la ventana. Comprobador de links

6.1 Tamao de la ventana


Gracias a la pgina Web http://www.anybrowser.com/ podemos ver como quedara nuestra Web con distintos tamaos de ventana sin la necesidad de tener que cambiar la resolucin de nuestro monitor. Con una resolucin de 600x480 la pgina inicial de nuestra Web se vera de la siguiente forma:

Figura 33 Resolucin a 600x480

Como podemos ver se aprecian problemas con la cabecera, aunque hay que sealar de desde tiempo estas resoluciones tan bajas son cada vez menos frecuentes.Con una resolucin de 800x600, se puede ver que si se representa adecuadamente.

E.T.S. de Informtica Aplicada (U.P.V.)

57

Vicente Sancho Guijarro

Proyecto Final de Carrera

Figura 34 Resolucin 800x600

A partir de esta resolucin (800x600) la Web se desplegar adecuadamente en los navegadores.

Figura 35 Resolucin 1024x768

E.T.S. de Informtica Aplicada (U.P.V.)

58

Vicente Sancho Guijarro

Proyecto Final de Carrera

6.2 Comprobador de links


Debido a que en aplicacin la mayora de las pginas estn en la intranet (con acceso restringido, solamente realizaremos esta prueba sobre la parte pblica de nuestra Web. Siendo el resultado obtenido el siguiente:

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

View View View View View View View View View View View View

http://pion.disca.upv.es/webcole/css/general.css: OK http://pion.disca.upv.es/webcole/js/fecha.js: OK http://pion.disca.upv.es/webcole/css/principal.css: OK http://pion.disca.upv.es/webcole/#: OK http://pion.disca.upv.es/webcole/historia.php: OK http://pion.disca.upv.es/webcole/equipoDirectivo.php: OK http://pion.disca.upv.es/webcole/reglamento.php: OK http://pion.disca.upv.es/webcole/calendario.php: OK http://pion.disca.upv.es/webcole/localizacion.php: OK http://pion.disca.upv.es/webcole/contactar.php: OK http://pion.disca.upv.es/webcole/enlaces.php: OK 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 seccin pblica son vlidos.

6.3 Estndar XHTML


Para comprobar si nuestra aplicacin cumpla con dicho estndar utilizamos una aplicacin en lnea proporcionado por el World Wide Web Consortium (W3c), que fueron los responsables del estndar. Esta aplicacin se puede encontrar en la siguiente direccin: http://validator.w3.org/ Como esta aplicacin no poda entrar en la intranet del colegio, tuvimos que entrar en cada pgina y copiar el cdigo fuente de la pgina para introducirlo en el validador.

E.T.S. de Informtica Aplicada (U.P.V.)

59

Vicente Sancho Guijarro

Proyecto Final de Carrera

Figura 36 XHTML - pgina con errores

Donde ms 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 cdigo 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 - pgina vlida

E.T.S. de Informtica Aplicada (U.P.V.)

60

Vicente Sancho Guijarro

Proyecto Final de Carrera

Pginas 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 estndar XHTML 1.0, y por tanto podra colocarse esta imagen en el sitio Web

6.4 Estndar CSS


Los css nos permiten cambiar el estilo de las distintas etiquetas que se encuentran en las pginas HTML, siempre que estas pginas agreguen las css. En este caso, al igual que en el estndar XHTML, se ha utilizado una aplicacin online del w3c. La direccin para acceder a esta aplicacin 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 validacin CSS

E.T.S. de Informtica Aplicada (U.P.V.)

61

Vicente Sancho Guijarro

Proyecto Final de Carrera

6.5 Navegadores
Esta prueba consiste en comprobar el correcto funcionamiento en los navegadores ms 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 aplicacin se utiliz Firefox como navegador predeterminado con lo que todas las funcionalidades del sistema son correctas en este navegador, as como su visualizacin.

6.5.2
pgina.

Explorer 6
En este navegador se pueden ver algunos problemas con la cabecera de la

Figura 40 Explorer 6 - Problemas visualizacin

E.T.S. de Informtica Aplicada (U.P.V.)

62

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 pginas: Pgina de insercin de notas (Intranet de profesores) Pgina de insercin 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 botn Poner faltas a todos Pgina de reservas de instalaciones (Intranet de profesores y alumnos), pgina 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 pgina inicial de la aplicacin Web.

Figura 41 Explorer 7 - pgina inicial

Las limitaciones por el cdigo Javascript son prcticamente las mismas que en la versin anterior, aunque en esta versin si es posible efectuar las reservas de instalaciones y equipaciones.

E.T.S. de Informtica Aplicada (U.P.V.)

63

Vicente Sancho Guijarro

Proyecto Final de Carrera

6.5.4 Opera 9
La visualizacin de la pgina principal es correcta, como puede verse en la siguiente figura.

Figura 42 Opera - pgina inicial

Como en el caso de Explorer 6, Opera tambin presenta algunas incompatibilidades con el Javascript, siendo estas las ms importantes. Pgina de insercin de notas (Intranet de profesores) Pgina de insercin 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 botn Poner faltas a todos

E.T.S. de Informtica Aplicada (U.P.V.)

64

Vicente Sancho Guijarro

Proyecto Final de Carrera

6.5.5

Mozilla 1.7

Como puede verse en la figura, Mozilla interpreta correctamente la pgina inicial de nuestra aplicacin.

Figura 43 Mozilla - pgina inicial

En este caso no hay ningn tipo de compatibilidad con el Javascript.

E.T.S. de Informtica Aplicada (U.P.V.)

65

Vicente Sancho Guijarro

Proyecto Final de Carrera

7. Conclusiones
La realizacin 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 aplicacin Web. Nos ha dado la oportunidad de iniciar una aplicacin desde sus inicios hasta casi su final, obligndonos a tomar decisiones en cuanto al anlisis, diseo e implementacin de la misma, aunque siempre con la gua de nuestro tutor del proyecto, que nos ayud sealndonos los fallos que cometimos durante el desarrollo de la aplicacin. Durante el trabajo en este proyecto nos hemos tenido que afrontar una serie de problemas, tanto de ndole terico, prctico e incluso interpersonal. Los problemas tericos han sido sobre todo a la hora de aplicar los conocimientos que hemos ido adquiriendo en el transcurso de nuestra carrera como informticos a un proyecto ms cercano a la vida real de lo que habitualmente se puede ver en las distintas asignaturas de la carrera. Los problemas prcticos han aparecido debido a la necesidad que los miembros del proyecto han tenido para aprender un nuevo lenguaje de programacin como es php y a la circunstancia de tener que refrescar las nociones que poseamos 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 ningn miembro del equipo conoca 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 hubiramos querido, dejndonos ciertas partes del proyecto sin poder implementar. Entre las principales faltas destacan: Implementacin de la parte del administrador, y del equipo directivo. Hacer seguro la transmisin de datos sensibles de la aplicacin como puedan ser las contraseas, mediante tcnicas de encriptacin de datos utilizando protocolos como ssl.

Como conclusin final podemos decir que la realizacin de este proyecto nos ha permitido crecer profesionalmente y tambin en ciertos aspectos personalmente, lo que nos ayudar en nuestro futuro como profesionales del sector de la informtica.

E.T.S. de Informtica Aplicada (U.P.V.)

66

Vicente Sancho Guijarro

Proyecto Final de Carrera

8. Bibliografa
PHP 5. Sitios web dinmicos. 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 Pgina oficial de PHP www.php.org

E.T.S. de Informtica Aplicada (U.P.V.)

67

Vicente Sancho Guijarro

Proyecto Final de Carrera

9. Anexos

A.W3C

Figura A.1 - Logotipo de la W3C

El World Wide Web Consortium, abreviado W3C, es un consorcio internacional que produce estndares 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 tecnologas sobre las que se basa la Web. Un estndar pasa por los siguientes estados : Working Draft (Borrador de trabajo) Last Call (ltima convocatoria) Proposed Recommendation (Propuesta de recomendacin) y Candidate Recommendation (Recomendacin candidata) Finaliza con la aprobacin de la "Recomendacin", lo que equivale a una homologacin de la propuesta, es decir, un nuevo estndar pblico y abierto para la Web. La mayora de estas recomendaciones son secundadas por los fabricantes de herramientas (navegadores, editores, buscadores) y tecnologas (servicios Web, directorios, registros). Esta competencia en exclusiva del W3C para crear estndares abiertos es crucial, pues de ella depende que ningn fabricante alcance nunca el monopolio de explotacin de la Web. Algunas importantes recomendaciones son: HTML Hojas de Estilo en Cascada o Cascading Style Sheets (CSS) DOM RDF Marco de Descripcin 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 pginas web que cumplen con los estndares XHTML 1.0 y CSS respectivamente. En el sitio web del consocio se pueden validar pginas web para comprobar si cumplen los estndares.

E.T.S. de Informtica Aplicada (U.P.V.)

68

Vicente Sancho Guijarro

Proyecto Final de Carrera

La W3C fue creada el 1 de octubre de 1994 por Tim Berners-Lee en el MIT, actual sede central del consorcio. Unindose posteriormente en abril de 1995 INRIA en Francia, reemplazado por el ERCIM en el 2003 como el husped europeo del consorocio y Universidad de Keio (Shonan Fujisawa Campus) en Japn en septiembre de 1996 como husped 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 travs del mundo (Directorio) Oficinas W3C (W3C Offices). Centros regionales establecidos en Alemania y Austria (oficina cojunta), Australia, Benelux (oficina conjunta), China, Corea del Sur, Espaa, Finlandia, Grecia, Hong Kong, Hungra, India, Israel, Italia, Marruecos, Suecia y Reino Unido e Irlanda (oficina conjunta) (Oficinas W3C) La oficina espaola del W3C, establecida en el 2003, esta albergada por la Fundacin CTIC en el Parque Cientfico Tecnolgico de Gijn (Principado de Asturias). Ms informacin: www.w3c.org - World Wide Web Consortium www.w3c.es - Oficina espaola del consorcio

E.T.S. de Informtica Aplicada (U.P.V.)

69

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 mdulos para tener funcionalidad aadida, aunque su funcionalidad bsica es muy completa. StarUML es capaz de generar cdigo fuente a partir de diagramas en los siguientes lenguajes: C/C++, Java, Visual Basic, Delphi, JScript, VBScript, C#, VB.NET, etc. Esta aplicacin ha sido utilizada en el desarrollo del proyecto en la fase de anlisis, ms concretamente para la realizacin del diagrama de clases. La hemos elegido debido a que es una aplicacin libre y cumpla a la perfeccin con nuestras necesidades, al mismo tiempo que es sencilla de utilizar y pese a ser usuarios nuevos en la aplicacin no nos ha costado adaptarnos a la manera de trabajar con ella para la realizacin del diagrama de clases. Su sitio web oficial es: www.staruml.com

E.T.S. de Informtica Aplicada (U.P.V.)

70

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 pginas web, creado por Adobe (anteriormente por Macromedia). Es el programa de este tipo ms utilizado en el sector del diseo y la programacin web, por sus funcionalidades, su integracin con otras herramientas como Adobe Flash y, recientemente, por su soporte de los estndares del World Wide Web Consortium. Tiene soporte tanto para edicin de imgenes como para animacin a travs de su integracin con otras herramientas. Hasta la versin MX, fue duramente criticado por su escaso soporte de los estndares de la web, ya que el cdigo que generaba era con frecuencia slo vlido para Internet Explorer, y no validaba como HTML estndar. Esto se ha ido corrigiendo en las versiones recientes. La gran baza de este editor sobre otros es su gran poder de ampliacin y personalizacin del mismo, puesto que este programa, sus rutinas (como la de insertar un hipervnculo, una imagen o aadir un comportamiento) estn 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 aplicacin se utilizaban como simples editores WYSIWYG, sin embargo, versiones ms recientes soportan otras tecnologas 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 aplicacin est disponible tanto para la plataforma MAC como Windows, aunque tambin se puede ejecutar en plataformas basadas en UNIX utilizando emuladores como Wine.

E.T.S. de Informtica Aplicada (U.P.V.)

71

Vicente Sancho Guijarro

Proyecto Final de Carrera

Como editor WYSIWYG que es, Dreamweaver oculta el cdigo HTML de cara al usuario, haciendo posible que alguien no entendido pueda crear pginas y sitios Web fcilmente. Algunos desarrolladores Web critican esta propuesta ya que crean pginas HTML ms largas de lo que solan ser al incluir mucho cdigo intil, lo cual va en detrimento de la ejecucin de las pginas en el navegador Web. Esto puede ser especialmente cierto ya que la aplicacin facilita en exceso el diseo de las pginas mediante tablas. Adems, algunos desarrolladores Web han criticado Dreamweaver en el pasado porque creaba cdigo que no cumpla con los estndares del consorcio Web (W3C). No obstante, Adobe ha aumentado el soporte CSS y otras maneras de disear pginas sin tablas en versiones posteriores de la aplicacin. Dreamweaver permite al usuario utilizar la mayora de los navegadores Web instalados en su ordenador para previsualizar las pginas Web. Tambin dispone de herramientas de administracin de sitios dirigidas a principiantes como, por ejemplo, la habilidad de encontrar y reemplazar lneas de texto y cdigo por cualquier tipo de parmetro especificado, hasta el sitio Web completo. El panel de comportamientos tambin permite crear JavaScript bsico sin conocimientos de cdigo. Con la llegada de la versin MX, Macromedia incorpor herramientas de creacin de contenido dinmico en Dreamweaver. En lo fundamental de las herramientas HTML WYSIWYG, tambin permite la conexin a Bases de Datos como MySQL y Microsoft Access, para filtrar y mostrar el contenido utilizando tecnologa de script como, por ejemplo, ASP (Active Server Pages), ASP.NET, ColdFusion, JSP (JavaServer Pages),PHP sin necesidad de tener experiencia previa en programacin. Un aspecto de alta consideracin de Dreamweaver es su arquitectura extensible. Es decir, permite el uso de "Extensiones". Las extensiones, tal y como se conocen, son pequeos programas, que cualquier desarrollador Web puede escribir (normalmente en HTML y Javascript) y que cualquiera puede descargar e instalar, ofreciendo as funcionalidades aadidas a la aplicacin. 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 mayora de las tareas de desarrollo Web, que van desde simple efectos rollover hasta completas cartas de compra. Caractersticas. Adems de sus capacidades WYSIWYG, tiene las funciones tpicas de un editor de cdigo fuente para la Web: Un administrador de sitios, para agrupar los archivos segn el proyecto al que pertenezcan. Un cliente FTP integrado, que permite subir los archivos editados inmediatamente al sitio en Internet. Funcin de autocompletar y resaltado de la sintaxis para instrucciones en HTML y lenguajes de programacin como PHP, JSP o ASP. Esta herramienta ha sido usada para el desarrollo de las pginas web en PHP debido a que es la ms extendida y cumple como editor PHP ofrecindote ayuda en lnea mientras escribes lneas de cdigo. Tambin ofrece la funcionalidad de subir las pginas al servidor de una manera sencilla por FTP, por lo que cubra nuestras necesidades.

E.T.S. de Informtica Aplicada (U.P.V.)

72

Vicente Sancho Guijarro

Proyecto Final de Carrera

Eclipse

Figura 46 B.3 Pantalla inicial Eclipse 3.2

Eclipse es un entorno de desarrollo integrado (IDE en ingls) en cdigo abierto, multiplataforma. En un principio eclipse fue desarrollado para la programacin en Java, sin embargo con el tiempo se fueron incorporando nuevos lenguajes de programacin gracias a pluging que fue aportando la comunidad eclipse. Entre los principales lenguajes de programacin que soporta actualmente eclipse se encuentran: Java ANSI C C++ JSP PHP Adems de la variedad de lenguajes de programacin soportados, eclipse ha sido traducido a un gran nmero de idiomas lo que permite una mayor configuracin y adaptabilidad al usuario. Aparte de los lenguajes de programacin mencionados anteriormente, existen otros proyectos que permite ampliar las capacidades del entorno. Entre ellas cabra destacar UML2 una implementacin de UML 2.0 metamodel para la plataforma Eclipse diseada 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 programacin en php.

E.T.S. de Informtica Aplicada (U.P.V.)

73

Vicente Sancho Guijarro

Proyecto Final de Carrera

Figura 47 B.4 Eclipse - Pantalla principal

El motivo de la eleccin de este entorno para el desarrollo de los ficheros php fueron diversos destacando los siguientes: Utilizar una herramienta en cdigo abierto Resaltado de sintaxis de php Auto completado de variables php

Figura 48 B.5 Eclipse Auto completado de variable

La pgina inicial de esta aplicacin es: http://www.eclipse.org/

E.T.S. de Informtica Aplicada (U.P.V.)

74

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 cdigo abierto y mltiplataforma. Originalmente este proyecto fue desarrollado para utilizarse dentro del proyecto Gnome de Linux.

Figura 50 B.7 Dia Eligiendo tipo de diagrama

E.T.S. de Informtica Aplicada (U.P.V.)

75

Vicente Sancho Guijarro

Proyecto Final de Carrera

Como se ha dicho anteriormente, esta aplicacin permite crear diagramas, incluidos los diagramas entidad-relacin que hemos desarrollado durante este proyecto. Desde un punto esttico, 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 direccin inicial esta aplicacin es: http://dia-installer.de/index_en.html

E.T.S. de Informtica Aplicada (U.P.V.)

76

Vicente Sancho Guijarro

Proyecto Final de Carrera

C.XAMPP

Figura 52 C.1 - Logotipo de XAMPP

Xampp es un paquete que integra un servidor web, como es Apache, acompaado de un servidor PHP y otro MySQL, adems de otros como el servidor FTP pero que a nosotros no nos interesan en este proyecto, centrndonos 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 instalacin 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 mltiples mdulos que se le pueden aadir como son phpMyAdmin u OpenSSL. En nuestro proyecto lo hemos usado para poder probar las pginas que hemos generado en local, es decir, en nuestro ordenador domstico antes de subirlo al servidor suministrado por el director del proyecto. El paquete tambin 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 cdigo abierto para plataformas Unix (BSD, GNU/Linux, etc.), Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 y la nocin de sitio virtual. Cuando comenz su desarrollo en 1995 se bas inicialmente en cdigo del popular NCSA HTTPd 1.3, pero ms tarde fue reescrito por completo. Su nombre se debe a que originalmente Apache consista solamente en un conjunto de parches a aplicar al servidor de NCSA. Era, en

E.T.S. de Informtica Aplicada (U.P.V.)

77

Vicente Sancho Guijarro

Proyecto Final de Carrera

ingls, 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 caractersticas mensajes de error altamente configurables, bases de datos de autenticacin y negociado de contenido, pero fue criticado por la falta de una interfaz grfica que ayude en su configuracin. Apache tiene amplia aceptacin en la red: en el 2005, Apache es el servidor HTTP ms usado, siendo el servidor HTTP del 70% de los sitios web en el mundo y creciendo an su cuota de mercado (estadsticas histricas y de uso diario proporcionadas por Netcraft). La mayora de las vulnerabilidades de la seguridad descubiertas y resueltas puede en la mayora 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 intencin de manejar la administracin de MySQL a travs de pginas webs, utilizando Internet. Actualmente puede crear y eliminar Bases de Datos, crear, eliminar y alterar tablas, borrar, editar y aadir 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 ao 1998. Como esta herramienta se ejecuta en mquinas con Servidores Webs y Soporte de PHP y MySQL, la tecnologa 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 insercin desde PHP se hacan correctamente. Tambin ha sido la herramienta ofrecida por el director del proyecto para manejar la base de datos en el servidor donde debamos colgar la aplicacin final.

Figura 55 C.4 - Logotipo de phpMyAdmin

E.T.S. de Informtica Aplicada (U.P.V.)

78

Vicente Sancho Guijarro

Proyecto Final de Carrera

D.Plantillas de los casos de uso


Caso de Uso Actores Actores secundarios Propsito Resumen Reservar Instalaciones Usuario Registrado (iniciador) Ninguno Permitir la reserva o anulacin de instalaciones del centro. Se podrn reservar las instalaciones del centro, como pueden ser la pista de ftbol, el gimnasio, el aula de usos mltiples, etc. En la reserva se har constar la fecha, la hora de inicio, el nmero de horas que se quieren reservar, as como el motivo de la reserva. El Usuario Registrado debe haber iniciado sesin correctamente.

Precondiciones

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 instalacin. 4. Para dicha instalacin, el usuario deber seleccionar una fecha de las disponibles (das en que dicha instalacin no esta reservada). Tambin deber proporcionar el motivo de la reserva. 5. El sistema comprueba si la instalacin est disponible para dicha fecha 6. El usuario confirma la reserva. 7. Si est disponible 7.1 El sistema guardar la reserva. Ext. sncronas Ext. asncronas

Caso de Uso Actores Actores secundarios Propsito Resumen

Anular Reservas Usuario Registrado (iniciador) Ninguno Anular reservas efectuadas por el profesor o por el alumno Permite la cancelacin de las reservas realizadas tanto sobre instalaciones como de equipamientos de la escuela (esta ltima posibilidad disponible nicamente para profesores). nicamente E.T.S. de Informtica Aplicada (U.P.V.) 79

Vicente Sancho Guijarro

Proyecto Final de Carrera

podrn eliminar aquellas reservas que hayan efectuado ellos mismos Precondiciones Postcondiciones Incluye 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 cancelacin de la reserva 6. El sistema eliminar la reserva seleccionada. # En 4 el usuario registrado puede cancelar la anulacin de reservas El profesor o por el alumno deben haber iniciado sesin correctamente. El sistema eliminar las reservas anuladas por los usuarios registrados. Mostrar Reservas

Ext. sncronas Ext. asncronas Caso de Uso Actores Actores secundarios Propsito Resumen Precondiciones Postcondiciones Incluye Extiende Hereda de Flujo de eventos

Mostrar Tabln de Anuncios Usuario Registrado (iniciador) Ninguno Permite la visualizacin del tabln de anuncios. Se mostrarn los anuncios aparecidos en el tabln de anuncios del colegio. El usuario registrado debe haber iniciado sesin correctamente. Ninguna

1. El caso de uso comienza cuando el usuario registrado selecciona Mostrar Tabln de Anuncios 2. El sistema devuelve los anuncios publicados en el tabln de anuncios.

Ext. sincronas

E.T.S. de Informtica Aplicada (U.P.V.)

80

Vicente Sancho Guijarro Ext. asncronas

Proyecto Final de Carrera

Caso de Uso Actores Actores secundarios Propsito Resumen

Dar de alta Alumno Administrador (iniciador) Ninguno Dar de alta a un nuevo alumno en el colegio. 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, poblacin, cdigo postal, nombre de los padres, telfono de contacto, cdigo del grupo al que asistir, curso, contrasea) El administrador debe haber iniciado sesin correctamente. El sistema almacenar la informacin del nuevo profesor.

Precondiciones Postcondiciones 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, poblacin, cdigo postal, nombre de los padres, telfono de contacto, cdigo del grupo al que asistir, curso, contrasea)), aunque no necesariamente todas en este instante. 3. El administrador confirmar la creacin 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. # En 3 el administrador puede cancelar la accin. # En 2 el cdigo de alumno es asignado automticamente.

Ext. sncronas Ext. asncronas Caso de Uso Actores Actores secundarios Propsito Resumen

Dar de Baja Alumno Administrador (iniciador) Ninguno Eliminar a un alumno del sistema El administrador podr eliminar usuarios para que ya no puedan acceder a su correspondiente informacin personalizada, porque se han dado de baja en el centro en el caso de los alumnos.

E.T.S. de Informtica Aplicada (U.P.V.)

81

Vicente Sancho Guijarro Precondiciones Postcondiciones Incluye Extiende Hereda de Flujo de eventos

Proyecto Final de Carrera

El administrador debe haber iniciado sesin correctamente. El sistema deber eliminar al alumno.

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. sncronas

# En 5 el administrador puede cancelar la accin. # 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 trmino de bsqueda.

Ext. asncronas

Caso de Uso Actores Actores secundarios Propsito Resumen

Mostrar Notas Alumno/Progenitor (iniciador) Ninguno Mostrar las notas del alumno Se podrn consultar las notas obtenidas por el alumno en las asignaturas en las que est matriculado. Tambin aparecer la nota media del grupo para poder tener una idea de la marcha del grupo en general. El alumno/Progenitor debe haber iniciado sesin correctamente. Ninguna

Precondiciones Postcondiciones Incluye Extiende Hereda de

E.T.S. de Informtica Aplicada (U.P.V.)

82

Vicente Sancho Guijarro Flujo de eventos

Proyecto Final de Carrera

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. Tambin devolver la nota media de todos los alumnos de cada asignatura. # En 2, solamente se mostrarn las notas del alumno que haya iniciado el caso de uso, sin mostrar las notas del resto de alumnos de su grupo.

Ext. sncronas

Ext. asncronas

Caso de Uso Actores Actores secundarios Propsito Resumen

Listar Alumnos Alumno/Progenitor (iniciador) Ninguno Mostrar la lista de alumnos del mismo grupo al que acude el alumno Se mostrar una lista con los alumnos del mismo grupo al que pertenece. Los datos mostrados sern nombre y apellidos del alumno, su direccin de correo electrnico. El alumno/Progenitor debe haber iniciado sesin correctamente. Ninguna

Precondiciones Postcondiciones 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 direccin de correo electrnico de todos los alumnos del mismo grupo del alumno que inicia el caso de uso.

Ext. sncronas Ext. asncronas

Caso de Uso Actores Actores secundarios Propsito

Poner Notas Profesor (iniciador) Ninguno Calificar a los alumnos del profesor

E.T.S. de Informtica Aplicada (U.P.V.)

83

Vicente Sancho Guijarro Resumen

Proyecto Final de Carrera

Precondiciones Postcondiciones Incluye Extiende Hereda de Flujo de eventos

Desde aqu se podr introducir las notas de cada alumno que podrn ser visualizadas posteriormente por los alumnos desde su intranet. Los alumnos aparecern ordenados por grupos. En esta seccin tambin se podrn modificar notas que hayan sido previamente introducidas. El profesor debe haber iniciado sesin correctamente. Las notas se almacenan en el sistema.

Listar Alumnos del Profesor 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 calificacin del alumno 3. El sistema almacena cada nota de los alumnos antes de pasar al siguiente alumno # En 2.1 puede cancelar la calificacin de un alumno. # En 2 puede cambiar la nota de un alumno al que ya hubiera calificado.

Ext. sncronas

Ext. asncronas Caso de Uso Actores Actores secundarios Propsito Resumen Poner Faltas de Asistencia Profesor (iniciador) Ninguno Poner las faltas de asistencia de los alumnos del profesor. Desde aqu se podr introducir las faltas de asistencia de cada alumno. Las faltas de asistencia podrn justificarse a la vez que se introducen si el profesor tena 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 justificacin. El profesor debe haber iniciado sesin correctamente. Las faltas de asistencia se guardan en el sistema.

Precondiciones Postcondiciones Incluye Extiende Hereda de

Listar Alumnos del Profesor

E.T.S. de Informtica Aplicada (U.P.V.)

84

Vicente Sancho Guijarro Flujo de eventos

Proyecto Final de Carrera

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 # En 2.1 el profesor puede cancelar la inclusin 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. sncronas

Ext. asncronas Caso de Uso Actores Actores secundarios Propsito Resumen Quitar/Modificar Faltas de Asistencia Profesor (iniciador) Ninguno Quitar o modificar las faltas de asistencia de los alumnos del profesor. Se podrn quitar las faltas de asistencia de alumnos, por ejemplo si se han introducido errneamente. Tambin se podrn modificar las faltas de asistencia, normalmente si el alumno presenta un justificante, o para cambiar otro valores (fecha, asignatura) El profesor debe haber iniciado sesin correctamente. Las faltas de asistencia modificadas se guardan en el sistema. En caso de quitar la falta de asistencia, sta se eliminar del sistema. Listar Alumnos del Profesor

Precondiciones Postcondiciones Incluye Extiende Hereda de

E.T.S. de Informtica Aplicada (U.P.V.)

85

Vicente Sancho Guijarro Flujo de eventos

Proyecto Final de Carrera

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 podran pedir de meses anteriores) 3. El profesor selecciona el alumno al que modificar o quitar la falta 3.1. Se mostrarn 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 En 3, 3.1, 3.2, 3.3.1 el profesor puede actualizacin/eliminacin de la falta de asistencia cancelar la

Ext. sncronas Ext. asncronas

E.T.S. de Informtica Aplicada (U.P.V.)

86

Vicente Sancho Guijarro

Proyecto Final de Carrera

E. Gua del usuario


Usuario annimo
Este tipo de usuario (podra tratarse de alumnos o profesores todava no identificados) solamente podrn acceder a la parte pblica del colegio.

a. Inicio
Ser esta la pgina a la que se acceder cuando el usuario annimo acceda a la Web, si no introduce alguna otra direccin.

Figura 56 Usuario annimo inicio

Durante su recorrido por las secciones pblicas de la Web el usuario siempre dispondr de un men navegacin 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 inters para todos sus miembros.

E.T.S. de Informtica Aplicada (U.P.V.)

87

Vicente Sancho Guijarro

Proyecto Final de Carrera

Figura 57 Usuario annimo - men navegacional

b. Historia
En pgina el usuario podr conocer aquellos hechos histricos que han sucedido en la vida de la escuela.

Figura 58 Usuario annimo 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)

E.T.S. de Informtica Aplicada (U.P.V.)

88

Vicente Sancho Guijarro

Proyecto Final de Carrera

Figura 59 Usuario annimo - 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 annimo - reglamento

E.T.S. de Informtica Aplicada (U.P.V.)

89

Vicente Sancho Guijarro

Proyecto Final de Carrera

e. Calendario escolar
Esta pgina muestra calendario con la fecha actual. Los das 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 da, si tiene asociado algn evento.

Figura 61 Usuario annimo Calendario

f. Localizacin
Esta pgina proporciona informacin acerca de la localizacin del colegio. Adems dispone de un enlace al ayuntamiento de Nquera que proporciona un callejero de su localidad a fin de poder encontrar el colegio.

E.T.S. de Informtica Aplicada (U.P.V.)

90

Vicente Sancho Guijarro

Proyecto Final de Carrera

Figura 62 Usuario annimo localizacin

La ventana desplegada muestra dos imgenes. 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 consideracin.

Contactar
Esta pgina dispone de un pequeo formulario que permite a los usuarios enviar informacin, quejas, sugerencias al colegio. Slo hace falta introducir el correo electrnico y el texto con los datos que el usuario considere de inters. Una vez efectuado esto, pulsar el botn de enviar.

E.T.S. de Informtica Aplicada (U.P.V.)

91

Vicente Sancho Guijarro

Proyecto Final de Carrera

Figura 63 Usuario annimo contacto

g. Enlaces
Esta pgina muestra aquellos enlaces que el colegio considera del interes de toda su comunidad (padres, profesores, alumnos)

Figura 64 Usuario annimo enlaces

E.T.S. de Informtica Aplicada (U.P.V.)

92

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 contrasea en la pgina 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, automticamente nos llevar a la intranet del profesor

E.T.S. de Informtica Aplicada (U.P.V.)

93

Vicente Sancho Guijarro


Figura 66 Intranet del profesor

Proyecto Final de Carrera

Donde podremos ver el nombre completo del profesor conectado. A la izquierda puede verse un men de navegacin, que nos permitir movernos por toda la aplicacin y que siempre estar disponible.

Figura 67 Men navegacional

La primera opcin Inicio nos llevar devuelta a la pgina inicial de la intranet del profesor, en la que nos encontramos ahora.

a. Alumnos
La siguiente opcin, Alumnos, nos llevar a una pgina, donde podremos consultar los alumnos a los que imparte clase el profesor, organizados por asignatura que da el profesor.

Figura 68 Intranet Profesor - Alumnos

E.T.S. de Informtica Aplicada (U.P.V.)

94

Vicente Sancho Guijarro

Proyecto Final de Carrera

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

Figura 69 Escogiendo asignatura

Una vez escogida una asignatura automticamente se cargarn 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

E.T.S. de Informtica Aplicada (U.P.V.)

95

Vicente Sancho Guijarro

Proyecto Final de Carrera

b. Profesores
El siguiente elemento del men navegacional es Profesores. Aqu podemos ver los datos pblicos de todos los profesores del centro.

Figura 71 Intranet Profesor profesores

c. Notas
El siguiente elemento del men es Notas. Desde aqu se podrn 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 suceda en la pgina de los alumnos. Adems har falta seleccionar el cuatrimestre que se quiere puntuar. Si no est seleccionado el cuatrimestre las notas que se introduzcan no se guardarn en sistema. Cuando se seleccione el cuatrimestre, se mostrarn las notas que ya hubieran sido asignadas.

Figura 72 Intranet Profesor Notas

E.T.S. de Informtica Aplicada (U.P.V.)

96

Vicente Sancho Guijarro

Proyecto Final de Carrera

Se podr optar por dos modos para guardar las notas. El primero consistira en ir alumno a alumno introducir la nota y hacer clic en el botn de Guardar. El segundo mtodo consiste en puntuar a todos los alumnos de una vez y pulsar el botn Guardar Todos que guardara las notas de todos los alumnos a la vez. Los valores a introducir deben ser nmeros, si tienen decimales se puede utilizar indistintamente el punto o la coma (automticamente 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 vlido el sistema mostrar un mensaje como el siguiente:

Figura 73 Intranet Profesor - notas - mensaje error

d. Faltas asistencia
En esta pgina, 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 quedara asociada con la asignatura en la que cometi la falta de asistencia. Como suceda en pginas 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 da escogido.

E.T.S. de Informtica Aplicada (U.P.V.)

97

Vicente Sancho Guijarro

Proyecto Final de Carrera

Figura 74 Intranet Profesor - falta Calendario

Una vez se haya escogido el da y la asignatura se cargarn los alumnos. Tambin aparecern si para la fecha escogida los alumnos ya le haban puesto una falta de asistencia.

Figura 75 Intranet profesor falta

Despus 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 botn 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 continuacin viene un checkbox que indica si la falta a sido justificada (si esta marcada) o todava no (si no est seleccionada, por defecto) A continuacin vienen dos botones que permiten poner la falta o quitarla (si tenia) al alumno que est en la misma fila que el botn pulsado.

E.T.S. de Informtica Aplicada (U.P.V.)

98

Vicente Sancho Guijarro

Proyecto Final de Carrera

e. Instalaciones
Esta pgina permite ver las reservas de las instalaciones que ha efectuado el profesor. Tambin le permite anular la reserva, si lo desea.

Figura 76 Intranet Profesor instalaciones

Desde aqu podremos acceder a reservar nuevas instalaciones, pulsando en Reservar instalacin. Deberemos escoger una instalacin que queramos reservar del men desplegable. Esto producir que el calendario marque en azul oscuro aquellos das en que esa instalacin en concreto ha sido previamente reservada, no pudiendo seleccionarlos.

Figura 77 Intranet Profesor - reserva de instalaciones.

E.T.S. de Informtica Aplicada (U.P.V.)

99

Vicente Sancho Guijarro

Proyecto Final de Carrera

A continuacin, para hacer efectiva la reserva deberemos de indicarle el motivo por el que deseamos realizar la reserva. Como mnimo harn falta 5 caracteres. Una vez efectuada la reserva nos redirigir directamente a la pgina de instalaciones donde podremos ver que efectivamente se tiene una nueva reserva.

Figura 78 Intranet Profesor - reserva confirmada

f. Equipaciones
Esta pgina permite ver las reservas de las equitaciones que ha efectuado el profesor. Tambin le permite anular la reserva, si lo desea. Esta funcionalidad es prcticamente idntica a la de instalaciones.

Figura 79 Intranet Profesor equipaciones

Desde aqu podremos acceder a reservar nuevas equipaciones, pulsando en Reservar equipacin. Deberemos escoger una equipacin de las disponibles del men desplegable. Esto producir que el calendario marque en azul oscuro aquellos das en que esa instalacin en concreto ha sido previamente reservada, no pudiendo seleccionarlos.

E.T.S. de Informtica Aplicada (U.P.V.)

100

Vicente Sancho Guijarro

Proyecto Final de Carrera

Figura 80 Intranet Profesor - reserva de equipaciones.

A continuacin, para hacer efectiva la reserva deberemos de indicarle el motivo por el que deseamos realizar la reserva. Como mnimo harn falta 5 caracteres. Una vez efectuada la reserva nos redirigir directamente a la pgina de equipaciones donde podremos ver que efectivamente se tiene una nueva reserva.

Figura 81 Intranet Profesor - reserva confirmada

E.T.S. de Informtica Aplicada (U.P.V.)

101

Vicente Sancho Guijarro

Proyecto Final de Carrera

g. Tabln de anuncios
Esta pgina nos permitir insertar nuevos anuncios, que podrn ser consultados por todos los miembros del colegio cuando accedan a sus respectivas intranets.

Figura 82 Intranet Profesor - tabln anuncios

En la figura anterior puede verse como quedara un nuevo anuncio. Para insertar uno nuevo nicamente hay que rellenar dos campos que se encuentran al final de la pgina.

Figura 83 Intranet Profesor - Insertar anuncio

Slo hay que rellenar el campo de ttulo y el de texto (que contendr el anuncio en s). La informacin restante que poda verse en el anuncio anterior la obtendr el sistema de forma automtica.

E.T.S. de Informtica Aplicada (U.P.V.)

102

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 contrasea en la pgina 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, automticamente nos llevar a la intranet del alumno

Figura 85 Intranet del alumno

E.T.S. de Informtica Aplicada (U.P.V.)

103

Vicente Sancho Guijarro

Proyecto Final de Carrera

Donde podremos ver el nombre completo del alumno conectado. A la izquierda puede verse un men de navegacin, que nos permitir movernos por toda la aplicacin y que siempre estar disponible.

Figura 86 Men navegacional

La primera opcin Inicio nos llevar devuelta a la pgina inicial de la intranet del alumno, en la que nos encontramos ahora.

a. Horario
Esta pgina nos mostrar el horario semanal que tiene el alumno conectado

Figura 87 Intranet alumno horario

E.T.S. de Informtica Aplicada (U.P.V.)

104

Vicente Sancho Guijarro

Proyecto Final de Carrera

b. Listado alumnos
Esta pgina 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 informacin 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 informacin que aparece se encuentra la asignatura impartidas, el profesor, el horario de tutoras, si tiene, y su correo electrnico.

E.T.S. de Informtica Aplicada (U.P.V.)

105

Vicente Sancho Guijarro

Proyecto Final de Carrera

d. Notas
Esta pgina mostrar las notas que tenga el alumno de las distintas asignaturas

Figura 90 Intranet alumno notas

Slo aparecern 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

E.T.S. de Informtica Aplicada (U.P.V.)

106

Vicente Sancho Guijarro

Proyecto Final de Carrera

f. Men semanal
Desde aqu se podr consultar el men que servir el comedor del colegio los prximos das.

Figura 92 Intranet alumno men

h. Instalaciones
Esta pgina permite ver las reservas de las instalaciones que ha efectuado el alumno, si ha realizado alguna. Tambin le permite anular la reserva, si lo desea.

Figura 93 Intranet Alumno instalaciones

E.T.S. de Informtica Aplicada (U.P.V.)

107

Vicente Sancho Guijarro

Proyecto Final de Carrera

Desde aqu podremos acceder a reservar nuevas instalaciones, pulsando en Reservar instalacin. Deberemos escoger una instalacin que queramos reservar del men desplegable. Esto producir que el calendario marque en azul oscuro aquellos das en que esa instalacin en concreto ha sido previamente reservada, no pudiendo seleccionarlos.

Figura 94 Intranet alumno - reserva de instalaciones.

A continuacin, para hacer efectiva la reserva deberemos de indicarle el motivo por el que deseamos realizar la reserva. Como mnimo harn falta 5 caracteres. Una vez efectuada la reserva nos redirigir directamente a la pgina de instalaciones donde podremos ver que efectivamente se tiene una nueva reserva.

Figura 95 Intranet alumno - reserva confirmada

E.T.S. de Informtica Aplicada (U.P.V.)

108

Vicente Sancho Guijarro

Proyecto Final de Carrera

i. Tabln de anuncios
Esta pgina nos permitir insertar nuevos anuncios, que podrn ser consultados por todos los miembros del colegio cuando accedan a sus respectivas intranets.

Figura 96 Intranet Profesor - tabln anuncios

En la figura anterior puede verse como quedara un nuevo anuncio. Para insertar uno nuevo nicamente hay que rellenar dos campos que se encuentran al final de la pgina.

Figura 97 Intranet Profesor - Insertar anuncio

Slo hay que rellenar el campo de ttulo y el de texto (que contendr el anuncio en s). La informacin restante que poda verse en el anuncio anterior la obtendr el sistema de forma automtica.

E.T.S. de Informtica Aplicada (U.P.V.)

109

Vicente Sancho Guijarro

Proyecto Final de Carrera

F. Cdigo Setup.php (Base de datos)


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 <?php /* * Created on 06/05/2007 * * To change the template for this generated file go to * Window - Preferences - PHPeclipse - PHP - Code Templates */ require_once "conexion.php"; require_once "conexion_i.php"; require_once ('interfaz_db.php');

function pasar_a_webcole($link) { echo "<html><head>"; echo "<title>Cambio de base de datos</title></head>"; echo "<table style='text-align: left; width: 100%;' border='1' cellpadding='2' cellspacing='2'>"; echo "<tbody> <tr> <td style='text-align: center; width: 281px; fontweight: bold;'><big>Descripcion</big></td>"; echo "<td style='text-align: center; width: 163px;'><big><span style='font-weight: bold;'>Estado</span></big></td>"; echo "<td style='text-align: center; width: 255px;'><big><span style='font-weight: bold;'>Error</span></big></td>"; echo "</tr>"; $db =cambiar_a_bd($link); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Cambio a la base de datos de WebCole </b></font><br>\n"; echo "</td>\n"; if(!$db) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo " " . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } } function pasar_a_webcole_i($link) { echo "<html><head>"; echo "<title>Cambio de base de datos</title></head>"; echo "<table style='text-align: left; width: 100%;' border='1' cellpadding='2' cellspacing='2'>"; echo "<tbody> <tr> <td style='text-align: center; width: 281px; fontweight: bold;'><big>Descripcion</big></td>"; echo "<td style='text-align: center; width: 163px;'><big><span style='font-weight: bold;'>Estado</span></big></td>"; echo "<td style='text-align: center; width: 255px;'><big><span style='font-weight: bold;'>Error</span></big></td>"; echo "</tr>"; $db = cambiar_a_bd_i($link); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Cambio a la base de datos de WebCole </b></font><br>\n"; echo "</td>\n"; if(!$db) {

E.T.S. de Informtica Aplicada (U.P.V.)

110

Vicente Sancho Guijarro

Proyecto Final de Carrera

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` ('

E.T.S. de Informtica Aplicada (U.P.V.)

111

Vicente Sancho Guijarro


149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225

Proyecto Final de Carrera

. ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, ' . ' `dni` VARCHAR(8) NOT NULL, ' . ' `email` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_spanish_ci NULL, ' . ' PRIMARY KEY (`login`),' . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`)' . ' )' . ' TYPE = innodb;'; $sql_eq = 'CREATE TABLE `equipodirectivo` (' . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, ' . ' `dni` VARCHAR(8) NOT NULL, ' . ' `email` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_spanish_ci NULL, ' . ' PRIMARY KEY (`login`),' . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`)' . ' )' . ' TYPE = innodb;'; $sql_director = 'CREATE TABLE `director` (' . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,' . ' PRIMARY KEY (`login`),' . ' FOREIGN KEY (`login`) REFERENCES `equipodirectivo`(`login`)' . ' )' . ' TYPE = innodb;'; $sql_jefe = 'CREATE TABLE `jefeestudio` (' . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,' . ' PRIMARY KEY (`login`),' . ' FOREIGN KEY (`login`) REFERENCES `equipodirectivo`(`login`)' . ' )' . ' TYPE = innodb;'; $sql_secretario = 'CREATE TABLE `secretario` (' . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,' . ' PRIMARY KEY (`login`),' . ' FOREIGN KEY (`login`) REFERENCES `equipodirectivo`(`login`)' . ' )' . ' TYPE = innodb;'; $sql_anuncio = 'CREATE TABLE `anuncio` (' . ' `idanuncio` MEDIUMINT UNSIGNED NOT NULL, ' . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, ' . ' `fecha` DATETIME NOT NULL, ' . ' `titulo` VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, ' . ' `texto` TEXT NULL,' . ' PRIMARY KEY (`idanuncio`)' . ' )' . ' TYPE = innodb;'; $sql_instalacion = 'CREATE TABLE `instalacion` (' . ' `idinstalacion` TINYINT UNSIGNED NOT NULL, ' . ' `instalacion` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, ' . ' `normas` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL ,' . ' PRIMARY KEY (`idinstalacion`),' . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`)' . ' )' . ' TYPE = innodb;'; $sql_equipacion = 'CREATE TABLE `equipacion` (' . ' `idequipacion` TINYINT UNSIGNED NOT NULL, ' . ' `equipacion` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, ' . ' `estado` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, ' . ' `normas` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_spanish_ci NULL ,' . ' PRIMARY KEY (`idequipacion`)'

E.T.S. de Informtica Aplicada (U.P.V.)

112

Vicente Sancho Guijarro


226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 . ' )' . ' TYPE = innodb;';

Proyecto Final de Carrera

$sql_res_ins = 'CREATE TABLE `res_ins` (' . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, ' . ' `idinstalacion` TINYINT UNSIGNED NOT NULL, ' . ' `fecha` DATETIME NOT NULL, ' . ' `proposito` TEXT NOT NULL,' . ' PRIMARY KEY (`login`, `idinstalacion`,`fecha`),' . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`),' . ' FOREIGN KEY (`idinstalacion`) REFERENCES `instalacion`( `idinstalacion`)' . ' )' . ' TYPE = innodb;'; $sql_res_equi = 'CREATE TABLE `res_equi` (' . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, ' . ' `idequipacion` TINYINT UNSIGNED NOT NULL, ' . ' `fecha` DATETIME NOT NULL, ' . ' `proposito` TEXT NOT NULL,' . ' PRIMARY KEY (`login`, `idequipacion`,`fecha`),' . ' FOREIGN KEY (`login`) REFERENCES `profesor`(`login`),' . ' FOREIGN KEY (`idequipacion`) REFERENCES `equipacion`( `idequipacion`)' . ' )' . ' TYPE = innodb;'; $sql_responsable = 'CREATE TABLE `responsable` (' . ' `padre` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, ' . ' `alumno` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,' . ' PRIMARY KEY (`padre`, `alumno`),' . ' FOREIGN KEY (`padre`) REFERENCES `usuario`(`login`),' . ' FOREIGN KEY (`alumno`) REFERENCES `usuario`(`login`)' . ' )' . ' TYPE = innodb;'; $sql_asignatura = 'CREATE TABLE `asignatura` (' . ' `codigoasignatura` TINYINT UNSIGNED NOT NULL, ' . ' `nombre` VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, ' . ' `curso` ENUM(\'1\',\'2\',\'3\',\'4\',\'5\',\'6\') NOT NULL, ' . ' `horario` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_spanish_ci NULL,' . ' PRIMARY KEY (`codigoasignatura`)' . ' )' . ' TYPE = innodb;'; $sql_imparte = 'CREATE TABLE `imparte` (' . ' `asignatura` TINYINT UNSIGNED NOT NULL, ' . ' `profesor` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,' . ' PRIMARY KEY (`asignatura`, `profesor`),' . ' FOREIGN KEY (`asignatura`) REFERENCES `asignatura`( `codigoasignatura`),' . ' FOREIGN KEY (`profesor`) REFERENCES `profesor`(`login`)' . ' )' . ' TYPE = innodb;'; $sql_nota = 'CREATE TABLE `nota` (' . ' `alumno` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, ' . ' `asignatura` TINYINT UNSIGNED NOT NULL, ' . ' `curso` ENUM(\'1\',\'2\',\'3\',\'4\',\'5\',\'6\') NOT NULL, ' . ' `trimestre` enum(\'1\',\'2\',\'3\',\'4\') collate utf8_spanish_ci NOT NULL,' . ' `nota` FLOAT NOT NULL,' . ' PRIMARY KEY (`alumno`, `asignatura`,`trimestre`),' . ' FOREIGN KEY (`alumno`) REFERENCES `alumno`(`login`),' . ' FOREIGN KEY (`asignatura`) REFERENCES `asignatura`( `codigoasignatura`)' . ' )' . ' TYPE = innodb;';

E.T.S. de Informtica Aplicada (U.P.V.)

113

Vicente Sancho Guijarro


303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379

Proyecto Final de Carrera

$sql_faltaasistencia = 'CREATE TABLE `faltaasistencia` (' . ' `alumno` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, ' . ' `asignatura` TINYINT UNSIGNED NOT NULL, ' . ' `fecha` DATE NOT NULL, ' . ' `justificada` BOOL NOT NULL DEFAULT \'0\',' . ' PRIMARY KEY (`alumno`,`asignatura`,`fecha`),' . ' FOREIGN KEY (`alumno`) REFERENCES `alumno`(`login`),' . ' FOREIGN KEY (`asignatura`) REFERENCES `asignatura`( `codigoasignatura`)' . ' )' . ' TYPE = innodb DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;'; $sql_grupo = 'CREATE TABLE `grupo` (' . ' `curso` ENUM(\'1\',\'2\',\'3\',\'4\',\'5\',\'6\') NOT NULL, ' . ' `letra` ENUM(\'A\',\'B\',\'C\',\'D\',\'E\',\'F\') NOT NULL, ' . ' `aula` VARCHAR(5) NOT NULL, ' . ' `delegado` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NULL, ' . ' `tutor` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NULL,' . ' PRIMARY KEY (`curso`, `letra`),' . ' FOREIGN KEY (`delegado`) REFERENCES `alumno`(`login`),' . ' FOREIGN KEY (`tutor`) REFERENCES `profesor`(`login`)' . ' )' . ' TYPE = innodb;'; $sql_impartida = 'CREATE TABLE `impartida` (' . ' `curso` ENUM(\'1\',\'2\',\'3\',\'4\',\'5\',\'6\') NOT NULL, ' . ' `letra` ENUM(\'A\',\'B\',\'C\',\'D\',\'E\',\'F\') NOT NULL, ' . ' `asignatura` TINYINT UNSIGNED NOT NULL,' . ' PRIMARY KEY (`curso`, `letra`, `asignatura`),' . ' FOREIGN KEY (`curso`, `letra`) REFERENCES `grupo`(`curso`, `letra`),' . ' FOREIGN KEY (`asignatura`) REFERENCES `asignatura`( `codigoasignatura`)' . ' )' . ' TYPE = innodb;'; $sql_evento = 'CREATE TABLE `evento` (' . ' `idevento` SMALLINT UNSIGNED NOT NULL, ' . ' `fecha` DATETIME NOT NULL, ' . ' `titulo` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, ' . ' `lugar` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, ' . ' `descripcion` TEXT NOT NULL,' . ' PRIMARY KEY (`idevento`)' . ' )' . ' TYPE = innodb;'; $sql_gen_even = 'CREATE TABLE `gen_even` (' . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, ' . ' `evento` SMALLINT UNSIGNED NOT NULL,' . ' PRIMARY KEY (`login`, `evento`),' . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`),' . ' FOREIGN KEY (`evento`) REFERENCES `evento`(`idevento`)' . ' )' . ' TYPE = innodb;'; ///// // Ejecucion de las creaciones de tablas //// echo "<html><head>"; echo "<title>Creacion de las tablas de base de datos WebCole</title>< /head>"; echo "<table style='text-align: left; width: 100%;' border='1' cellpadding='2' cellspacing='2'>"; echo "<tbody> <tr> <td style='text-align: center; width: 281px; fontweight: bold;'><big>Descripcion</big></td>"; echo "<td style='text-align: center; width: 163px;'><big><span style='font-weight: bold;'>Estado</span></big></td>"; echo "<td style='text-align: center; width: 255px;'><big><span style='font-weight: bold;'>Error</span></big></td>"; echo "</tr>";

E.T.S. de Informtica Aplicada (U.P.V.)

114

Vicente Sancho Guijarro


380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456

Proyecto Final de Carrera

$result = mysql_query($sql_usuario); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de usuarios </b></font><br>\n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $result = mysql_query($sql_profesor); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de profesores </b></font><br>\n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $result = mysql_query($sql_alumno); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de alumnos </b></font><br>\n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $result = mysql_query($sql_padre); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de padre </b></font><br>\n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n";

E.T.S. de Informtica Aplicada (U.P.V.)

115

Vicente Sancho Guijarro


457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 echo "</td>"; } else { echo echo echo echo \n"; }

Proyecto Final de Carrera

"<td style='width: 163px; text-align: center;'>"; "<font color=green>Correcto</font>\n"; "</td>"; "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr>

$result = mysql_query($sql_admin); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de administrador </b></font><br>\n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $result = mysql_query($sql_eq); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de equipo directivo </b></font><br> \n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $result = mysql_query($sql_director); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de director </b></font><br>\n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n";

E.T.S. de Informtica Aplicada (U.P.V.)

116

Vicente Sancho Guijarro


534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 }

Proyecto Final de Carrera

$result = mysql_query($sql_jefe); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de Jefe de estudios </b></font><br> \n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $result = mysql_query($sql_secretario); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de secretario </b></font><br>\n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $result = mysql_query($sql_anuncio); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de tabla de anuncios </b></font><br> \n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $result = mysql_query($sql_instalacion); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de instalacion </b></font><br>\n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>";

E.T.S. de Informtica Aplicada (U.P.V.)

117

Vicente Sancho Guijarro


611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 echo echo echo echo echo } else { echo echo echo echo \n"; }

Proyecto Final de Carrera

"<font color=red>Error </font>\n"; "</td>"; "<td style='width: 255px; text-align: center;'>"; "" . mysql_error() . "\n"; "</td>";

"<td style='width: 163px; text-align: center;'>"; "<font color=green>Correcto</font>\n"; "</td>"; "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr>

$result = mysql_query($sql_equipacion); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de equipacion </b></font><br>\n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $result = mysql_query($sql_res_ins); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de res_ins </b></font><br>\n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $result = mysql_query($sql_res_equi); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de res_equi </b></font><br>\n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>";

E.T.S. de Informtica Aplicada (U.P.V.)

118

Vicente Sancho Guijarro


688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764

Proyecto Final de Carrera

echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $result = mysql_query($sql_responsable); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de responsable </b></font><br>\n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $result = mysql_query($sql_asignatura); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de asignatura </b></font><br>\n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $result = mysql_query($sql_imparte); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de imparte </b></font><br>\n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $result = mysql_query($sql_nota); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de nota </b></font><br>\n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>";

E.T.S. de Informtica Aplicada (U.P.V.)

119

Vicente Sancho Guijarro


765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 echo echo echo echo echo } else { echo echo echo echo \n"; }

Proyecto Final de Carrera

"<font color=red>Error </font>\n"; "</td>"; "<td style='width: 255px; text-align: center;'>"; "" . mysql_error() . "\n"; "</td>";

"<td style='width: 163px; text-align: center;'>"; "<font color=green>Correcto</font>\n"; "</td>"; "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr>

$result = mysql_query($sql_faltaasistencia); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de falta asistencia </b></font><br> \n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $result = mysql_query($sql_grupo); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de grupo </b></font><br>\n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $result = mysql_query($sql_impartida); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Creacion de la tabla de impartida </b></font><br>\n"; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n";

E.T.S. de Informtica Aplicada (U.P.V.)

120

Vicente Sancho Guijarro

Proyecto Final de Carrera

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; font902 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";

E.T.S. de Informtica Aplicada (U.P.V.)

121

Vicente Sancho Guijarro


919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995

Proyecto Final de Carrera

$prueba[$i]["sql"] = 'DROP TABLE `grupo`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de grupo"; $prueba[$i]["sql"] = 'DROP TABLE `faltaasistencia`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de falta asistencia"; $prueba[$i]["sql"] = 'DROP TABLE `nota`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de nota"; $prueba[$i]["sql"] = 'DROP TABLE `imparte`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de imparte"; $prueba[$i]["sql"] = 'DROP TABLE `asignatura`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de asignatura"; $prueba[$i]["sql"] = 'DROP TABLE `responsable`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de responsable"; $prueba[$i]["sql"] = 'DROP TABLE `res_equi`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de res_Equi"; $prueba[$i]["sql"] = 'DROP TABLE `res_ins`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de res_ins"; $prueba[$i]["sql"] = 'DROP TABLE `equipacion`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de equipacion "; $prueba[$i]["sql"] = 'DROP TABLE `instalacion`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de instalacion"; $prueba[$i]["sql"] = 'DROP TABLE `anuncio`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de anuncio"; $prueba[$i]["sql"] = 'DROP TABLE `secretario`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de secretario"; $prueba[$i]["sql"] = 'DROP TABLE `jefeestudio`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de Jefe de estudios "; $prueba[$i]["sql"] = 'DROP TABLE `director`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de director"; $prueba[$i]["sql"] = 'DROP TABLE `equipodirectivo`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de equipo directivo"; $prueba[$i]["sql"] = 'DROP TABLE `administrador`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de administrador"; $prueba[$i]["sql"] = 'DROP TABLE `padre`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de padre"; $prueba[$i]["sql"] = 'DROP TABLE `alumno`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de alumno"; $prueba[$i]["sql"] = 'DROP TABLE `profesor`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de profesor"; $prueba[$i]["sql"] = 'DROP TABLE `usuario`'; $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de usuario"; ejecutar ($prueba, $link); echo " </tbody></table><br><br>"; } // crea la base de datos (no crea nada mas) function crear_bd($link) { echo "<html><head>"; echo "<title>Creacion de la base de datos Webcole</title></head>"; echo "<table style='text-align: left; width: 100%;' border='1' cellpadding='2' cellspacing='2'>";

E.T.S. de Informtica Aplicada (U.P.V.)

122

Vicente Sancho Guijarro


996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072

Proyecto Final de Carrera

echo "<tbody> <tr> <td style='text-align: center; width: 281px; fontweight: bold;'><big>Descripcion</big></td>"; echo "<td style='text-align: center; width: 163px;'><big><span style='font-weight: bold;'>Estado</span></big></td>"; echo "<td style='text-align: center; width: 255px;'><big><span style='font-weight: bold;'>Error</span></big></td>"; echo "</tr>"; $i = 0; $prueba[$i]["sql"] = 'CREATE DATABASE `webcole`;'; $prueba[$i++]["descripcion"] = "Creacion de la base de datos de WebCole"; ejecutar ($prueba, $link); echo " </tbody></table><br><br>"; } //permite borrar la base de datos ( y todas las tablas ) //no borra las perfiles de los usuarios que pueden acceder a la base de datos //no confundir con los datos que hay dentro de las tablas de "usuario", "alumno", "padre" ... function borrar_bd($link) { echo "<html><head>"; echo "<title>Elimanacion de la base de datos Webcole</title></head>"; echo "<table style='text-align: left; width: 100%;' border='1' cellpadding='2' cellspacing='2'>"; echo "<tbody> <tr> <td style='text-align: center; width: 281px; fontweight: bold;'><big>Descripcion</big></td>"; echo "<td style='text-align: center; width: 163px;'><big><span style='font-weight: bold;'>Estado</span></big></td>"; echo "<td style='text-align: center; width: 255px;'><big><span style='font-weight: bold;'>Error</span></big></td>"; echo "</tr>"; $i = 0; $prueba[$i]["sql"] = 'DROP DATABASE `webcole`'; $prueba[$i++]["descripcion"] = "Eliminacion de la base de datos"; ejecutar ($prueba, $link); echo " </tbody></table><br><br>"; } //las opciones de la tabla function inicio_html () { echo "<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'> \n"; echo "<html>\n"; echo "<head>\n"; echo "<meta content='text/html; charset=ISO-8859-1'\n"; echo " http-equiv='content-type'>\n"; echo "<title>Setup para Webcole</title>\n"; echo "</head>\n"; echo "<body>\n"; echo "<div style='text-align: center;'><big><big><span\n"; echo " style='font-weight: bold;'>Fichero para la\n"; echo "inicializaci&oacute;n de la base de datos para el PFC WebCole<br> \n"; echo "<br>\n"; echo "</span></big></big>\n"; echo "<div style='text-align: left;'>\n"; echo "<table style='text-align: left; width: 952px; height: 171px;'\n"; echo " border='1' cellpadding='2' cellspacing='2'>\n"; echo " <tbody>\n"; echo " <tr>\n"; echo " <td style='font-weight: bold; width: 633px;'>Crear\n"; echo "la base de\n"; echo "datos de 'WebCole'</td>\n"; echo " <td style='width: 318px;'>\n"; echo " <form method='get' action='setup.php'\n"; echo " name='crear_db'><button value='1' name='opcion'>Crear\n"; echo "base de datos </button></form>\n"; echo " </td>\n";

E.T.S. de Informtica Aplicada (U.P.V.)

123

Vicente Sancho Guijarro


1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo

Proyecto Final de Carrera

" </tr>\n"; " <tr>\n"; " <td style='width: 633px;'><span\n"; " style='font-weight: bold;'>Crear las\n"; "tablas de la base de datos </span><span \n"; " style='font-weight: bold;'>(si la base de \n"; "datos no existe, se crear&aacute;)</span></td> \n"; " <td style='width: 318px;'> \n"; " <form method='get' action='setup.php' \n"; " name='crear_tablas'><button value='2' name='opcion'>Crear \n"; "tablas</button></form> \n"; " </td> \n"; " </tr> \n"; " <tr> \n"; " <td style='font-weight: bold; width: 633px;'>Destruir \n"; "las tablas de la base de datos</td> \n"; " <td style='width: 318px;'> \n"; " <form method='get' action='setup.php' \n"; " name='Destruir_tablas'><button value='3' \n"; " name='opcion'>Destruir tablas</button></form> \n"; " </td> \n"; " </tr> \n"; " <tr> \n"; " <td style='font-weight: bold; width: 633px;'>Destruir \n"; "la base de datos de 'Webcole' (se destruir&aacute;n \n"; "tambi&eacute;n las tablas)</td> \n"; " <td style='width: 318px;'> \n"; " <form method='get' action='setup.php' \n"; " name='Destruir_db'><button value='4' name='opcion'>Destruir \n"; "base de datos</button></form> \n"; " </td> \n"; " </tr> \n";

echo " <tr> \n"; echo " <td style='font-weight: bold; width: 633px;'> Ejemplos </td> \n"; echo " <td style='width: 318px;'> \n"; echo " <form method='get' action='setup.php' name='Destruir_db'><button value='5' name='opcion'>"; echo " Ejemplos</button></form> \n"; echo " </td> \n"; echo " </tr> \n";

echo " <tr> \n"; echo " <td style='font-weight: bold; width: 633px;'> Crear Perfiles usuarios </td> \n"; echo " <td style='width: 318px;'> \n"; echo " <form method='get' action='setup.php' name='Destruir_db'><button value='6' name='opcion'>"; echo " Crear Perfiles Usuarios</button></form> \n"; echo " </td> \n"; echo " </tr> \n"; echo " <tr> \n"; echo " <td style='font-weight: bold; width: 633px;'> Borrar Perfiles usuarios </td> \n"; echo " <td style='width: 318px;'> \n"; echo " <form method='get' action='setup.php' name='Destruir_db'><button value='7' name='opcion'>"; echo " Borrar Perfiles Usuarios</button></form> \n"; echo " </td> \n"; echo " </tr> \n";

echo " <tr> \n"; echo " <td style='font-weight: bold; width: 633px;'>Pruebas</td> \n"; echo " <td style='width: 318px;'> \n"; echo " <form method='get' action='setup.php' name='Destruir_db'><button value='99' name='opcion'>"; echo " Pruebas</button></form> \n"; echo " </td> \n"; echo " </tr> \n";

E.T.S. de Informtica Aplicada (U.P.V.)

124

Vicente Sancho Guijarro


1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226

Proyecto Final de Carrera

echo " </tbody> \n"; echo "</table> \n"; echo "<big><big><span style='font-weight: bold;'></span></big></big>< big><big><span \n"; echo " style='font-weight: bold;'></span></big></big></div> \n"; echo "</div> \n"; echo "</body> \n"; echo "</html> \n";

} //final de la pagina html function fin_html () { echo "<br>"; echo "<div style='text-align: center;'> "; echo "Vuelve al inicio pulsando <a href='setup.php'>aqu&iacute;</a><br> "; echo "</div> "; echo "</body></html>"; }

// Carga varios usuarios en la base de datos function ejemplos ($link) { echo "<html><head>"; echo "<title>Ejemplos para la base de datos Webcole</title></head>"; echo "<table style='text-align: left; width: 100%;' border='1' cellpadding='2' cellspacing='2'>"; echo "<tbody> <tr> <td style='text-align: center; width: 281px; fontweight: bold;'><big>Descripcion</big></td>"; echo "<td style='text-align: center; width: 163px;'><big><span style='font-weight: bold;'>Estado</span></big></td>"; echo "<td style='text-align: center; width: 255px;'><big><span style='font-weight: bold;'>Error</span></big></td>"; echo "</tr>"; $datos = array("login" => "viblasan",); $datos["nombre"] = "viblasan"; $datos["apellido1"] = "Blasco"; $datos["apellido2"] = "Snchez"; $datos["direccion"] = "Maria Pastor"; $datos["poblacion"] = "alboraya"; $datos["cp"] = "46120"; $datos["password"] = "password"; $datos["telefono"] = "699161799"; $datos["dni"] = "3312"; $datos["email"] = "viblasan@ei.upv.es"; $datos["tutorias"] = "null"; $resultado = insertar_usuario($datos, PROFESOR); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Ejemplo Usuario-Profesor(viblasan) </b></font><br>\n"; echo "</td>\n"; if(!$resultado["estado"]) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . $resultado["descripcion"]. "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; }

E.T.S. de Informtica Aplicada (U.P.V.)

125

Vicente Sancho Guijarro


1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 $datos = array("login" => "visangui"); $datos["nombre"] = "Vicente"; $datos["apellido1"] = "Sancho"; $datos["apellido2"] = "Guijarro"; $datos["direccion"] = "Colon"; $datos["poblacion"] = "Valencia"; $datos["cp"] = "46456"; $datos["password"] = "password"; $datos["telefono"] = "654161799"; $datos["dni"] = "3312"; $datos["email"] = "visangui@ei.upv.es"; $datos["tutorias"] = "null"; $resultado = insertar_usuario($datos, PROFESOR);

Proyecto Final de Carrera

echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Ejemplo Usuario-Profesor(visangui) </b></font><br>\n"; echo "</td>\n"; if(!$resultado["estado"]) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . $resultado["descripcion"]. "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $datos = array("login" => "visebo"); $datos["nombre"] = "Alumno1"; $datos["apellido1"] = "Apellido1Alumno1"; $datos["apellido2"] = "Apellido2Alumno1"; $datos["direccion"] = "Colon"; $datos["poblacion"] = "Valencia"; $datos["cp"] = "46123"; $datos["password"] = "password"; $datos["telefono"] = "63456777"; $datos["dni"] = "3312"; $datos["email"] = "Alumno1@ei.upv.es"; $datos["tutorias"] = "null"; $resultado = insertar_usuario($datos, ALUMNO); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Ejemplo Usuario-Alumno(visebo) </b></font><br>\n"; echo "</td>\n"; if(!$resultado["estado"]) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . $resultado["descripcion"]. "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $datos = array("login" => "pater"); $datos["nombre"] = "Padre1"; $datos["apellido1"] = "Apellido1Padre1"; $datos["apellido2"] = "Apellido2Padre1"; $datos["direccion"] = "Colon";

E.T.S. de Informtica Aplicada (U.P.V.)

126

Vicente Sancho Guijarro


1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 $datos["poblacion"] = "Valencia"; $datos["cp"] = "46123"; $datos["password"] = "password"; $datos["telefono"] = "63456777"; $datos["dni"] = "3312"; $datos["email"] = "pater@ei.upv.es"; $datos["tutorias"] = "null"; $resultado = insertar_usuario($datos, PADRE);

Proyecto Final de Carrera

echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Ejemplo Usuario-Padre(pater) </b></font><br>\n"; echo "</td>\n"; if(!$resultado["estado"]) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . $resultado["descripcion"]. "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $datos = array("login" => "viblasan2", "nombre"=>"viblasan", "apellido1"=>"Blasco", "apellido2"=>"Snchez"); $datos["direccion"] = "Maria Pastor"; $datos["poblacion"] = "alboraya"; $datos["cp"] = "46120"; $datos["password"] = "password"; $datos["telefono"] = "699161799"; $datos["dni"] = "3312"; $datos["email"] = "viblasan@ei.upv.es"; $datos["tutorias"] = "null"; $resultado = insertar_usuario($datos, ADMINISTRADOR); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Ejemplo Usuario-ADMINISTRADOR(viblasan2) </b></font><br> \n"; echo "</td>\n"; if(!$resultado["estado"]) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . $resultado["descripcion"]. "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $datos = array("login" => "visangui2"); $datos["nombre"] = "Vicente"; $datos["apellido1"] = "Sancho"; $datos["apellido2"] = "Guijarro"; $datos["direccion"] = "Colon"; $datos["poblacion"] = "Valencia"; $datos["cp"] = "46456"; $datos["password"] = "password"; $datos["telefono"] = "654161799"; $datos["dni"] = "3312"; $datos["email"] = "visangui@ei.upv.es";

E.T.S. de Informtica Aplicada (U.P.V.)

127

Vicente Sancho Guijarro


1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 $datos["tutorias"] = "null";

Proyecto Final de Carrera

$resultado = insertar_usuario($datos, ADMINISTRADOR); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Ejemplo Usuario-ADMINISTRADOR(visangui2) </b></font><br> \n"; echo "</td>\n"; if(!$resultado["estado"]) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . $resultado["descripcion"]. "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $datos = array("login" => "visebo2"); $datos["nombre"] = "Alumno2"; $datos["apellido1"] = "Apellido1Alumno2"; $datos["apellido2"] = "Apellido2Alumno2"; $datos["direccion"] = "Colon"; $datos["poblacion"] = "Valencia"; $datos["cp"] = "46123"; $datos["password"] = "password"; $datos["telefono"] = "63456777"; $datos["dni"] = "3312"; $datos["email"] = "Alumno1@ei.upv.es"; $datos["tutorias"] = "null"; $resultado = insertar_usuario($datos, ALUMNO); echo "<tr><td style='width: 281px; text-align: left;'>"; echo "<font><b>Ejemplo Usuario-ALUMNO(visebo2) </b></font><br>\n"; echo "</td>\n"; if(!$resultado["estado"]) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . $resultado["descripcion"]. "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td></tr> \n"; } $i = 0; $prueba[$i]["sql"] = "INSERT INTO `equipacion` (`idequipacion`, `equipacion`, `estado`, `normas`) VALUES (1, 'Radio-CD', 'Disponible', '/webcole/normas/Radio_cd.pdf'), (2, 'Televisor', 'Disponible', '/webcole/normas/Televisor.pdf');"; $prueba[$i++]["descripcion"] = "Creando equipaciones: Radio-CD y Televisor"; $prueba[$i]["sql"] = "INSERT INTO `instalacion` (`idinstalacion`, `instalacion`, `normas`) VALUES (1, 'Gimnasio', '/webcole/normas/Gimnasio.pdf'), (2, 'Pabellon Cubierto', '/webcole/normas/Pabellon_cubierto.pdf');"; $prueba[$i++]["descripcion"] = "Creando instalacion: gimnasio y pabellon cubierto";

E.T.S. de Informtica Aplicada (U.P.V.)

128

Vicente Sancho Guijarro


1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534

Proyecto Final de Carrera

$prueba[$i]["sql"] = "INSERT INTO `evento` (`idevento`, `fecha`, `titulo`, `lugar`, `descripcion`) VALUES (1, '2000-10-09 17:06:08', 'Festivo', 'Valencia', 'Da de la Comunitat Valenciana'), (2, '2007-09-10 18:12:19', 'Curso', 'Colegio', 'Inicio del curso acadmico 2007/2008'), (3, '2000-10-12 19:31:05', 'Festivo', 'Espaa', 'Festividad Virgen del Pilar'), (4, '2000-03-19 19:33:47', 'Festivo', 'Valencia', 'San Jos'), (5, '2000-12-06 19:34:46', 'Festivo', 'Espaa', 'Da de la Constitucin'), (6, '2000-12-08 19:35:45', 'Festivo', 'Espaa', 'Inmaculada Concepcin') , (7, '2000-11-01 19:37:00', 'Festivo', 'Espaa', 'Todos los santos'), (8, '2007-05-06 13:31:54', 'Noticia', 'UPV', 'Presentada la primera maqueta de la web.'), (9, '2007-06-11 13:32:53', 'Noticia', 'UPV', 'Implementado el calendario escolar.'), (10, '2000-05-01 13:49:41', 'Festivo', 'Espaa', 'Da del trabajador'), (11, '2007-06-17 19:31:05', 'Noticia', 'Web', 'Reparado el problema de las tildes en la web.'), (12, '2007-07-01 13:04:09', 'Noticia', 'web', 'Posibilidad de reservar, anular reservas de instalaciones y equipamientos(solo para profesores)') ;"; $prueba[$i++]["descripcion"] = "Eventos del colegio"; $prueba[$i]["sql"] = "INSERT INTO `usuario` (`login`, `nombre`, `apellido1`, `apellido2`, `direccion`, `poblacion`, `cp`, `contrasenya`, `telefono`) VALUES ('pepe', 'Pepe', 'Prez', 'Garca', 'Mayor, 25', 'Valencia', 46001, 'epep', '96300101'), ('pepito', 'Pepito', 'Martnez', 'Snchez', 'Menor, 23', 'Valencia', 46002, 'ep', '96123457'), ('juan', 'Juan', 'Gmez', 'Crespo', 'Calle principal', 'Valencia', 46005, 'nauj', '96158020'), ('jose', 'Jos', 'Martnez', 'Snchez', 'C/ Mestral, 23', 'Serra', 46550, 'esoj', '961652020'), ('admin', 'Administrador', 'adm', 'adm', 'C/ Polideportivo, s/n', 'Nquera', 46119, 'nimda', '961680076'), ('miguelito', 'Miguelito', 'Peris', 'Cazorla', 'C/ Menorca, 12', 'Nquera', 46119, 'mig', '961652335');"; $prueba[$i++]["descripcion"] = "Varios Usuarios"; $prueba[$i]["sql"] = " INSERT INTO `administrador` (`login`, `dni`, `email`) VALUES ('admin', '00000000', 'admin@emiliolluch.es'); "; $prueba[$i++]["descripcion"] = "Administrador "; $prueba[$i]["sql"] = "INSERT INTO `alumno` (`login`, `curso`, `letra`) VALUES ('pepito', '1', 'A'), ('miguelito', '1', 'A');"; $prueba[$i++]["descripcion"] = " Alumno Miguelito y pepito "; $prueba[$i]["sql"] = "INSERT INTO `equipodirectivo` (`login`, `dni`, `email`) VALUES ('pepe', '12345678', 'pepe@emiliolluch.es'), ('juan', '46502365', 'juan@emiliolluch.es'), ('jose', '87654321', 'jose@emiliolluch.es');"; $prueba[$i++]["descripcion"] = " equipodirectivo "; $prueba[$i]["sql"] = " INSERT INTO `director` (`login`) VALUES ('pepe'); "; $prueba[$i++]["descripcion"] = " Director "; $prueba[$i]["sql"] = "INSERT INTO `jefeestudio` (`login`) VALUES ( 'juan'); "; $prueba[$i++]["descripcion"] = "Jefe Estudios "; $prueba[$i]["sql"] = "INSERT INTO `profesor` (`login`, `dni`, `email`, `tutorias`) VALUES ('pepe', '12345678', 'pepe@emiliolluch.es', 'Martes 10:30-13:00'), ('juan', '46502365', 'juan@emiliolluch.es', 'Viernes 9:00-12:00'), ('jose', '87654321', 'jose@emiliolluch.es', 'Jueves 9:30 - 13:30'); "; $prueba[$i++]["descripcion"] = " Profesores "; $prueba[$i]["sql"] = "INSERT INTO `secretario` (`login`) VALUES ('jose') ; "; $prueba[$i++]["descripcion"] = "Secretario "; $prueba[$i]["sql"] = "INSERT INTO `asignatura` (`codigoasignatura`,

E.T.S. de Informtica Aplicada (U.P.V.)

129

Vicente Sancho Guijarro


1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611

Proyecto Final de Carrera

`nombre`, `curso`, `horario`) VALUES (1, 'Matemticas', '1', 'Lunes 9 Martes 9 Jueves 10'), (2, 'Castellano', '1', 'Lunes 10 Mircoles 11 Viernes 9'), (3, 'Ingls', '1', 'Martes 11 Mircoles 15 Jueves 9 Viernes 10'), (4, 'tica/Religin', '1', 'Lunes 11 Mircoles 16'), (5, 'Conocimiento del medio', '1', 'Lunes 15 Mircoles 10 Jueves 15'), (6, 'Ed. Plstica', '1', 'Lunes 16 Viernes 15'), (7, 'Ed. Fsica', '1', 'Martes 10 Viernes 16'), (8, 'Ed. Ciudadana', '1', 'Martes 15 Martes 16'), (9, 'Valenci', '1', 'Mircoles 9 Jueves 11 Viernes 11'), (10, 'Tutora', '1', 'Jueves 16');"; $prueba[$i++]["descripcion"] = "Asignaturas"; $prueba[$i]["sql"] = "INSERT INTO `grupo` (`curso`, `letra`, `aula`, `delegado`, `tutor`) VALUES ('1', 'A', 'B1', 'pepito', 'juan');"; $prueba[$i++]["descripcion"] = "Grupo"; $prueba[$i]["sql"] = "INSERT INTO `impartida` (`curso`, `letra`, `asignatura`) VALUES ('1', 'A', 1), ('1', 'A', 2), ('1', 'A', 3), ('1', 'A', 4), ('1', 'A', 5), ('1', 'A', 6), ('1', 'A', 7), ('1', 'A', 8), ('1', 'A', 9), ('1', 'A', 10);"; $prueba[$i++]["descripcion"] = "Clases impartidas"; $prueba[$i]["sql"] = "INSERT INTO `webcole`.`imparte` (`asignatura`, `profesor`) VALUES (\'1\', \'viblasan\'), (\'2\', \'viblasan\');"; $prueba[$i++]["descripcion"] = "Imparte = Viblasan"; $prueba[$i]["sql"] = "INSERT INTO `grupo` (`curso`, `letra`, `aula`, `delegado`, `tutor`) VALUES ('1', 'A', 'B1', 'pepito', 'juan');"; $prueba[$i++]["descripcion"] = "Grupo"; ejecutar($prueba, $link); echo " </tbody></table><br><br>"; }

//// // Funcion que permite ejecutar cualquier sentencia sql. // Los parametros que recibe son: // $datos: es una matriz con la forma array (array ( sql => descripcion )) // sql contiene la sentencia sql // descripcion muestra el texto explicativo que aparecera en la tabla // $link: el link con la base de datos //// function ejecutar ($datos, $link) { foreach ( $datos as $actual) { //echo "sql: " . $actual["sql"] . "<br>"; $result = mysql_query($actual["sql"]); echo "<tr><td style='width: 281px; text-align: left;'>"; echo '<font><b>' . $actual["descripcion"] . '</b></font><br>'; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>&nbsp;</td><

E.T.S. de Informtica Aplicada (U.P.V.)

130

Vicente Sancho Guijarro


1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 /tr>\n"; } } }

Proyecto Final de Carrera

//// // Funcion que permite ejecutar cualquier sentencia sql que devuelven resultados. // Los parametros que recibe son: // $datos: es una matriz con la forma array (array ( sql => descripcion )) // sql contiene la sentencia sql // descripcion muestra el texto explicativo que aparecera en la tabla // $link: el link con la base de datos //// function ejecutar_leer_resultados ($datos, $link) { foreach ( $datos as $actual) { //echo "sql: " . $actual["sql"] . "<br>"; $result = mysql_query($actual["sql"]); echo "<tr><td style='width: 281px; text-align: left;'>"; echo '<font><b>' . $actual["descripcion"] . '</b></font><br>'; echo "</td>\n"; if(!$result) { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=red>Error </font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "" . mysql_error() . "\n"; echo "</td>"; } else { echo "<td style='width: 163px; text-align: center;'>"; echo "<font color=green>Correcto</font>\n"; echo "</td>"; echo "<td style='width: 255px; text-align: center;'>"; echo "<table><tr><td>Resultados</td></tr>"; while ($row = mysql_fetch_row($result)) { echo "<tr><td>"; echo $row[0]; echo "</td></tr>"; } echo "</table>"; echo"</td></tr>\n"; } } }

function crear_perfiles($link) { echo "<html><head>"; echo "<title>Creacion de perfiles para la base de datos Webcole</title> </head>"; echo "<table style='text-align: left; width: 100%;' border='1' cellpadding='2' cellspacing='2'>"; echo "<tbody> <tr> <td style='text-align: center; width: 281px; fontweight: bold;'><big>Descripcion</big></td>"; echo "<td style='text-align: center; width: 163px;'><big><span style='font-weight: bold;'>Estado</span></big></td>"; echo "<td style='text-align: center; width: 255px;'><big><span style='font-weight: bold;'>Error</span></big></td>"; echo "</tr>"; //// // Creando usuarios genericos // Los administradores utilizaran root para acceder a la base de datos ( por el momento al menos) // Todos los usuarios de cada grupo accederan con el mismo perfil, por ejemplo todos los profesores // accederan a la base de datos con el perfil de profesores y con los privilegios que eso supone

E.T.S. de Informtica Aplicada (U.P.V.)

131

Vicente Sancho Guijarro


1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 /// $i = 0;

Proyecto Final de Carrera

$prueba[$i]["sql"] = 'CREATE USER \'profesor\'@\'localhost\' IDENTIFIED BY \'profesor\';'; $prueba[$i++]["descripcion"] = "Creando el perfil profesor"; $prueba[$i]["sql"] = 'CREATE USER \'alumno\'@\'localhost\' IDENTIFIED BY \'alumno\';'; $prueba[$i++]["descripcion"] = "Creando el perfil alumno"; $prueba[$i]["sql"] = 'CREATE USER \'equipodirectivo\'@\'localhost\' IDENTIFIED BY \'equipodirectivo\';'; $prueba[$i++]["descripcion"] = "Creando el perfil Equipo Directivo"; $prueba[$i]["sql"] = 'CREATE USER \'padre\'@\'localhost\' IDENTIFIED BY \'padre\';'; $prueba[$i++]["descripcion"] = "Creando el perfil padre"; //// // Permisos generales /// $prueba[$i]["sql"] = 'GRANT SELECT ON `webcole`.* TO \'profesor\'@\'localhost\' IDENTIFIED BY \'profesor\'WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;'; $prueba[$i++]["descripcion"] = "Profesor: Permisos generales"; $prueba[$i]["sql"] = 'GRANT SELECT ON `webcole`.* TO \'padre\'@\'localhost\' IDENTIFIED BY \'padre\'WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;'; $prueba[$i++]["descripcion"] = "Padre: Permisos generales"; $prueba[$i]["sql"] = 'GRANT SELECT ON `webcole`.* TO \'alumno\'@\'localhost\' IDENTIFIED BY \'alumno\'WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;'; $prueba[$i++]["descripcion"] = "Alumno: Permisos generales"; $prueba[$i]["sql"] = 'GRANT SELECT ON `webcole`.* TO \'equipodirectivo\'@\'localhost\' IDENTIFIED BY \'equipodirectivo\'WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;'; $prueba[$i++]["descripcion"] = "Equipo Directivo: Permisos generales"; $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. `anuncio` TO \'profesor\'@\'localhost\';'; $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla anuncio "; $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. `anuncio` TO \'padre\'@\'localhost\';'; $prueba[$i++]["descripcion"] = "Padre: Permisos tabla anuncio "; $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. `anuncio` TO \'alumno\'@\'localhost\';'; $prueba[$i++]["descripcion"] = "Alumno: Permisos tabla anuncio "; $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. `anuncio` TO \'equipodirectivo\'@\'localhost\';'; $prueba[$i++]["descripcion"] = "Equipo Directivo: Permisos tabla anuncio "; //// // Permisos especificos para cada perfil en cada tabla //// //// // Profesor //// $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. `faltaasistencia` TO \'profesor\'@\'localhost\';'; $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla faltaasistencia ";

E.T.S. de Informtica Aplicada (U.P.V.)

132

Vicente Sancho Guijarro


1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842

Proyecto Final de Carrera

$prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. `nota` TO \'profesor\'@\'localhost\';'; $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla nota "; $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. `res_equi` TO \'profesor\'@\'localhost\';'; $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla res_equi "; $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. `res_ins` TO \'profesor\'@\'localhost\';'; $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla res_ins "; $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. `anuncio` TO \'profesor\'@\'localhost\';'; $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla anuncio "; // Un profesor no puede tocar los grupos creados, excepto el campo // delegado, que puede variar durante el curso. Ademas se deberia // de comprobar que el profesor que lo haga sea el tutor del grupo $prueba[$i]["sql"] = 'GRANT UPDATE (`delegado`) ON `webcole`.`grupo` TO \'profesor\'@\'localhost\';'; $prueba[$i++]["descripcion"] = "Profesor: Permisos para cambiar el delegado del grupo ";

$prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. `res_ins` TO \'alumno\'@\'localhost\';'; $prueba[$i++]["descripcion"] = "Alumno: Permisos tabla res_ins "; $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. `res_ins` TO \'padre\'@\'localhost\';'; $prueba[$i++]["descripcion"] = "Padre: Permisos tabla res_ins "; ejecutar ($prueba, $link); echo " </tbody></table><br><br>"; } function borrar_perfiles($link) { echo "<html><head>"; echo "<title>Borrado de perfiles para la base de datos Webcole</title>< /head>"; echo "<table style='text-align: left; width: 100%;' border='1' cellpadding='2' cellspacing='2'>"; echo "<tbody> <tr> <td style='text-align: center; width: 281px; fontweight: bold;'><big>Descripcion</big></td>"; echo "<td style='text-align: center; width: 163px;'><big><span style='font-weight: bold;'>Estado</span></big></td>"; echo "<td style='text-align: center; width: 255px;'><big><span style='font-weight: bold;'>Error</span></big></td>"; echo "</tr>"; $i = 0; $prueba[$i]["sql"] = 'DROP USER \'alumno\'@\'localhost\';'; $prueba[$i++]["descripcion"] = "Borrando el perfil alumno"; $prueba[$i]["sql"] = 'DROP USER \'profesor\'@\'localhost\';'; $prueba[$i++]["descripcion"] = "Borrando el perfil profesor"; $prueba[$i]["sql"] = 'DROP USER \'equipodirectivo\'@\'localhost\';'; $prueba[$i++]["descripcion"] = "Borrando el perfil equipodirectivo"; $prueba[$i]["sql"] = 'DROP USER \'padre\'@\'localhost\';'; $prueba[$i++]["descripcion"] = "Borrando el perfil padre"; ejecutar ($prueba, $link); echo " </tbody></table><br><br>"; } function { echo echo echo pruebas ($link) "<html><head>"; "<title>PRUEBAS</title></head>"; "<table style='text-align: left; width: 100%;' border='1'

E.T.S. de Informtica Aplicada (U.P.V.)

133

Vicente Sancho Guijarro


1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919

Proyecto Final de Carrera

cellpadding='2' cellspacing='2'>"; echo "<tbody> <tr> <td style='text-align: center; width: 281px; fontweight: bold;'><big>Descripcion</big></td>"; echo "<td style='text-align: center; width: 163px;'><big><span style='font-weight: bold;'>Estado</span></big></td>"; echo "<td style='text-align: center; width: 255px;'><big><span style='font-weight: bold;'>Error</span></big></td>"; echo "</tr>"; /* $sql = 'CREATE PROCEDURE borrar_padre (padre VARCHAR(20), OUT mensaje VARCHAR(100) ) BEGIN DECLARE dep INT; set mensaje = "inicio"; select count(*) into dep from responsable where padre = padre; IF dep = 0 THEN delete from padre where login = padre; set mensaje = "Padre eliminado"; ELSE set mensaje = "No se pudo borrar"; END IF; END;'; */ $sql = "CREATE PROCEDURE borrar_padre (IN padre VARCHAR(20), OUT mensaje VARCHAR(100) ) BEGIN DECLARE dep INT; DECLARE m VARCHAR(20); set m := 'alter'; select count(*) into dep from responsable where padre = padre; IF dep = 0 THEN set mensaje := 'antes'; delete from padre where login = @padre; delete from usuario where login = @padre;

set mensaje := concat('Padre borrado: ', @padre); ELSE set mensaje := concat('No se puedo borrar al padre', @padre); END IF; END;"; $sql2 = "CREATE PROCEDURE prueba (inout mensaje INT ) BEGIN DECLARE dep INT; select count(*) into mensaje from usuario; END;"; $i = 0; $prueba[$i]["sql"] = "drop procedure borrar_padre;"; $prueba[$i++]["descripcion"] = "Borrando procedimiento: borrar_padre"; $prueba[$i]["sql"] = "drop procedure prueba;"; $prueba[$i++]["descripcion"] = "Borrando procedimiento: prueba"; $prueba[$i]["sql"] = $sql; $prueba[$i++]["descripcion"] = "Creando un procedimiento: borrar_padre"; $prueba[$i]["sql"] = $sql2; $prueba[$i++]["descripcion"] = "Creando un procedimiento: prueba"; $prueba[$i]["sql"] = "set @padre='pater';"; $prueba[$i++]["descripcion"] = "creando @padre"; $prueba[$i]["sql"] = "set @mensaje='a';"; $prueba[$i++]["descripcion"] = "creando @mensaje"; $prueba[$i]["sql"] = "call borrar_padre(@pater, @mensaje);"; $prueba[$i++]["descripcion"] = "Llamando al procedimiento: borrar_padre"; ejecutar ($prueba, $link);

E.T.S. de Informtica Aplicada (U.P.V.)

134

Vicente Sancho Guijarro

Proyecto Final de Carrera

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);

E.T.S. de Informtica Aplicada (U.P.V.)

135

Vicente Sancho Guijarro


1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 fin_html(); exit;

Proyecto Final de Carrera

default: echo "<div style='text-align: center; color: rgb(255, 0, 0); '> "; echo "<big><big><big>Opci&oacute;n desconociada.</big></big> </big><br> "; echo "</div> "; echo "<div style='text-align: center;'> "; echo "<big><big><big>Vuelve al inicio pulsando <a href='setup.php'>aqu&iacute;</a></big></big></big><br> "; echo "</div> "; echo "</body></html>"; exit; } } } leeropciones (); inicio_html(); echo "</body></html>"; ?>

E.T.S. de Informtica Aplicada (U.P.V.)

136

Vicente Sancho Guijarro

Proyecto Final de Carrera

Interfaz_db.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php define('PROFESOR', 1); define('ALUMNO', 2); define('ADMINISTRADOR', 3); define('PADRE', 4); define('DIRECTOR', 5); define('JEFEESTUDIO', 6); define('SECRETARIO', 7); require_once "conexion_i.php"; function insertar_usuario($datos, $tipo) { $error = false; //indicara si el usuario a registrar es uno de los tres tipo de equipo directivo //(porque hay que hacer una insercion mas. $eq = false; $descripcion = ""; $faltandatos = ""; $link = conexion_i(); cambiar_a_bd_i($link); //datos generales del usuario $login = $datos['login']; if (empty($login)){ $error = true; $faltandatos .= "Falta Login <br>";} $nombre = $datos['nombre']; if (empty($nombre)){ $error = true; $faltandatos .= "Falta Nombre <br>"; } $apellido1 = $datos['apellido1']; if (empty($apellido1)){ $error = true; $faltandatos .= "Falta Apellido1 <br>";} $apellido2 = $datos['apellido2']; if (empty($apellido2)){ $apellido2 = 'null'; } $direccion = $datos['direccion']; if (empty($direccion)){ $error = true; $faltandatos .= "Falta Direccion <br>";} $poblacion = $datos['poblacion']; if (empty($poblacion)){ $error = true; $faltandatos .= "Falta Poblacion <br>";} $cp = $datos['cp']; if (empty($cp)){ $error = true; $faltandatos .= "Falta Codigo Postal < br>";} $password = $datos['password']; if (empty($password)){ $error = true; $faltandatos .= "Falta Password < br>";} $telefono = $datos['telefono']; if (empty($telefono)){ $telefono = 'null'; } $sql_usuario = "INSERT INTO `webcole`.`usuario` (`login`, `nombre`, `apellido1`, `apellido2`, `direccion`, `poblacion`, `cp`, `contrasenya`, `telefono`) VALUES ('" . $login ."', '" . $nombre . "', '" . $apellido1 . "', '" . $apellido2 . "', '" . $direccion . "', '" . $poblacion . "', '" . $cp . "', '" . $password . "', '" . $telefono . "');"; switch ($tipo) { case PROFESOR: //tipo profesor

E.T.S. de Informtica Aplicada (U.P.V.)

137

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

Proyecto Final de Carrera

$dni = $datos['dni']; if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> ";} $email = $datos['email']; if (empty($email)){ $email = 'null'; } $tutorias = $datos['tutorias']; if (empty($tutorias)){ $tutorias = 'null'; } $sql_especifico = "INSERT INTO `webcole`.`profesor` (`login`, `dni`, `email`, `tutorias`) VALUES ('" . $login . "', '" . $dni . "', '" . $email . "', '" . $tutorias ."');"; break; case ALUMNO: //alumno $sql_especifico = "INSERT INTO `webcole`.`alumno` (`login`) VALUES ('" . $login . "');"; break; case ADMINISTRADOR: $dni = $datos['dni']; if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> ";} $email = $datos['email']; if (empty($email)){ $email = 'null'; } $sql_especifico = "INSERT INTO `webcole`.`administrador` (`login`, `dni`, `email`) VALUES ('" . $login . "', '" . $dni . "', '" . $email . "');"; break; case PADRE: $dni = $datos['dni']; if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> ";} $email = $datos['email']; if (empty($email)){ $email = 'null'; } $sql_especifico = "INSERT INTO `webcole`.`padre` (`login`, `dni`, `email`) VALUES ('" . $login . "', '" . $dni . "', '" . $email . "');"; break; case DIRECTOR: $dni = $datos['dni']; if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> ";} $email = $datos['email']; if (empty($email)){ $email = 'null'; } $sql_especifico = "INSERT INTO `webcole`.`equipodirectivo` (`login`, `dni`, `email`) VALUES ('" . $login . "', '" . $dni . "', '" . $email . "');"; $sql_ed = "INSERT INTO `webcole`.`director` (`login`) VALUES ( '" . $login . "');"; $eq = true; break; case JEFEESTUDIO: $dni = $datos['dni']; if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> ";}

E.T.S. de Informtica Aplicada (U.P.V.)

138

Vicente Sancho Guijarro


151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227

Proyecto Final de Carrera

$email = $datos['email']; if (empty($email)){ $email = 'null'; } $sql_especifico = "INSERT INTO `webcole`.`equipodirectivo` (`login`, `dni`, `email`) VALUES ('" . $login . "', '" . $dni . "', '" . $email . "');"; $sql_ed = "INSERT INTO `webcole`.`jefeestudio` (`login`) VALUES ('" . $login . "');"; $eq = true; break; case SECRETARIO: $dni = $datos['dni']; if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> ";} $email = $datos['email']; if (empty($email)){ $email = 'null'; } $sql_especifico = "INSERT INTO `webcole`.`equipodirectivo` (`login`, `dni`, `email`) VALUES ('" . $login . "', '" . $dni . "', '" . $email . "');"; $sql_ed = "INSERT INTO `webcole`.`secretario` (`login`) VALUES ('" . $login . "');"; $eq = true; break; default: break; }//fin switch //Si ha ocurrido algun error no continuamos //por el momento solo false si ha ocurrido algun error en //en los datos mismos. if ( $error == true) { $descripcion = "Faltan datos importantes: <br>" . $faltandatos; $resultado = array("estado"=>!$error, "descripcion"=>$descripcion); return $resultado; } //empieza la transacci de las inserciones $result=mysqli_query($link, "SET AUTOCOMMIT=0;"); $result=mysqli_query($link, "BEGIN;"); $result = mysqli_query($link, $sql_usuario); if (!$result) { $descripcion .= mysqli_error($link) . "<br>"; } $result = mysqli_query($link, $sql_especifico); if (!$result) { $error = true; $descripcion .= mysqli_error($link) . " <br>"; } if ($eq == true) //este usuario pertenece al equipo directivo { $result = mysqli_query($link, $sql_ed); if (!$result) { $error = true; $descripcion .= mysqli_error($link) . " <br>"; } }

//si no ha ocurrido ningun error finalizamos la transaccion if ($error == false)

E.T.S. de Informtica Aplicada (U.P.V.)

139

Vicente Sancho Guijarro


228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 } 247 248 249 ?> { mysqli_query($link,"COMMIT;"); mysqli_commit($link);

Proyecto Final de Carrera

} //si se ha producido algun error hacemos un rollback, con lo que //la base de datos deber de quedar sin rastros de las operaciones //que hemos intentado hacer. else { $result = mysqli_query($link,"ROLLBACK;"); } $result=mysqli_query($link, "SET AUTOCOMMIT=1;"); mysqli_autocommit($link, TRUE); mysqli_close($link); $resultado = array("estado"=>!$error, "descripcion"=>$descripcion); return $resultado;

E.T.S. de Informtica Aplicada (U.P.V.)

140

Vicente Sancho Guijarro

Proyecto Final de Carrera

Connexion_i.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 <?php function conexion_i () { $user = "cole1"; $maquina = "localhost"; $pass = "webcole";

$link_i = mysqli_connect($maquina, $user, $pass); if(!$link_i) { echo "Error en la conexion con la bd <br>\n"; die; } return $link_i; } function conexion_i_login ($user, $maquina,$pass) { $link_i = mysqli_connect($maquina, $user, $pass); if(!$link_i) { echo "Error en la conexion con la bd <br>\n"; die; } return $link_i; }

function cambiar_a_bd_i($link_i) { $db = mysqli_select_db($link_i, 'webcole'); if(!$db) { echo "No se ha podido cambiar a la base de datos WebCole<br>"; die; } return $db; } function cerrar_db_i ($link) { mysqli_close($link); } ?>

E.T.S. de Informtica Aplicada (U.P.V.)

141

Vicente Sancho Guijarro

Proyecto Final de Carrera

Conexin.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 <?php function conexion () { $user = "cole1"; $maquina = "localhost"; $pass = "webcole";

$link = mysql_connect($maquina, $user, $pass); if(!$link) { echo "Error en la conexion con la bd <br>\n"; die; } return $link; }

function conexion_login ($user, $maquina, $pass ) { $link = mysql_connect($maquina, $user, $pass); if(!$link) { echo "Error en la conexion con la bd <br>\n"; die; } return $link; } function cambiar_a_bd($link){ $db = mysql_select_db('webcole', $link); if(!$db) { echo "No se ha podido cambiar a la base de datos WebCole<br>"; die; } return $db; } function cambiar_a_bd_concreta($link, $nombre){ $db = mysql_select_db($nombre, $link); if(!$db) { echo "No se ha podido cambiar a la base de datos " . $nombre . "<br> "; die; } return $db; } function cerrar_db ($link) { mysql_close($link); } ?>

E.T.S. de Informtica Aplicada (U.P.V.)

142

Vicente Sancho Guijarro

Proyecto Final de Carrera

G. Cdigo PHP
Index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 <?php require_once ("Anonimo_inc.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" />

</head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td class="menu"> <ul> <li><a href="#">Inicio</a></li> <li><a href="historia.php">Historia</a></li> <li><a href="equipoDirectivo.php">Equipo directivo</a></li> <li><a href="reglamento.php">Reglamento</a></li> <li><a href="calendario.php">Calendario escolar</a></li> <li><a href="localizacion.php">Localizaci&oacute;n</a></li> <li><a href="contactar.php">Contactar</a></li> <li><a href="enlaces.php">Enlaces</a></li> </ul> </td> <td class="general"><p>Bienvenido al sitio web del Colegio P&uacute; blico Emilio Lluch de N&agrave;quera (Valencia). </p> <p>C. P. EMILIO LLUCH </p> <p>Calle Polideportivo, s/n. </p> <p>46119 - N&agrave;quera (Valencia) </p> <p>Tel&eacute;fono 96 168 00 76<br /> e-mail: <a href="mailto:46005788@servicec.cult.gva.es"> 46005788@servicec.cult.gva.es</a></p> </td> <td class="foto">&nbsp;</td> </tr> <tr> <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" />

E.T.S. de Informtica Aplicada (U.P.V.)

143

Vicente Sancho Guijarro

Proyecto Final de Carrera

69 </label> 70 </p> 71 </form> 72 <p> 73 <?php 74 if($_COOKIE['login'] == "Error") 75 { 76 echo '<span class="fechaNoticia">Autenticacin errnea</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>

E.T.S. de Informtica Aplicada (U.P.V.)

144

Vicente Sancho Guijarro

Proyecto Final de Carrera

Historia.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 <?php require_once ("Anonimo_inc.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td class="menu"> <ul> <li><a href="index.php">Inicio</a></li> <li><a href="#">Historia</a></li> <li><a href="equipoDirectivo.php">Equipo directivo</a></li> <li><a href="reglamento.php">Reglamento</a></li> <li><a href="calendario.php">Calendario escolar</a></li> <li><a href="localizacion.php">Localizaci&oacute;n</a></li> <li><a href="contactar.php">Contactar</a></li> <li><a href="enlaces.php">Enlaces</a></li> </ul> </td> <td class="general"><h1>Historia del centro</h1> <p>El centro fue inaugurado el a&ntilde;o XXXX.</p> <p>El a&ntilde;o xxxx se hizo una ampliaci&oacute;n del gimnasio para mejorar las instalaciones con servicios de los cuales antes se carec&iacute;a, como duchas o enfermer&iacute;a. </p></td> <td class="general">&nbsp;</td> </tr> <tr> <td><p>Autenticarse</p> <form id="form1" method="post" action="analizadorlogin.php"> <p> <label>Login <input type="text" name="log" /> </label> <label>Password <input type="password" name="pass" /> </label> <label> <input type="submit" value="Identificarse" name="b" /> </label> </p> </form> <p>&nbsp;</p></td> <td colspan="2" class="noticias"> <h3>Noticias</h3> <?php noticias(); ?></td> </tr> </table> </body> </html>

E.T.S. de Informtica Aplicada (U.P.V.)

145

Vicente Sancho Guijarro

Proyecto Final de Carrera

Equipodirectivo.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php require_once ("Anonimo_inc.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td class="menu"> <ul> <li><a href="index.php">Inicio</a></li> <li><a href="historia.php">Historia</a></li> <li><a href="#">Equipo directivo</a></li> <li><a href="reglamento.php">Reglamento</a></li> <li><a href="calendario.php">Calendario escolar</a></li> <li><a href="localizacion.php">Localizaci&oacute;n</a></li> <li><a href="contactar.php">Contactar</a></li> <li><a href="enlaces.php">Enlaces</a></li> </ul> </td> <td class="general" style="text-align: left ;"><p style="font-weight: bold; font-size:30px">Equipo directivo</p> <?php equipo_directivo(); ?> <p>&nbsp; </p></td> <td class="general">&nbsp;</td> </tr> <tr> <td><p>Autenticarse</p> <form id="form1" method="post" action="analizadorlogin.php"> <p> <label>Login <input type="text" name="log" /> </label> <label>Password <input type="password" name="pass" /> </label> <label> <input type="submit" value="Identificarse" name="b" /> </label> </p> </form> <p>&nbsp;</p></td> <td colspan="2" class="noticias"> <h3>Noticias</h3> <?php noticias(); ?> </td> </tr> </table> </body> </html>

E.T.S. de Informtica Aplicada (U.P.V.)

146

Vicente Sancho Guijarro

Proyecto Final de Carrera

Reglamento.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 <?php require_once ("Anonimo_inc.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td class="menu"> <ul> <li><a href="index.php">Inicio</a></li> <li><a href="historia.php">Historia</a></li> <li><a href="equipoDirectivo.php">Equipo directivo</a></li> <li><a href="#">Reglamento</a></li> <li><a href="calendario.php">Calendario escolar</a></li> <li><a href="localizacion.php">Localizaci&oacute;n</a></li> <li><a href="contactar.php">Contactar</a></li> <li><a href="enlaces.php">Enlaces</a></li> </ul> </td> <td class="general"><p style="font-weight: bold; font-size:30px"> Reglamento de r&eacute;gimen interno</p> <p>Para descargar en formato PDF, pulse <a href="docs/rri.pdf"> aqu&iacute;. <img src="img/word_logo.jpg" alt="Word" /></a></p> <p>Para descargar en formato DOC, pulse <a href="docs/rri.doc"> aqu&iacute;. <img src="img/pdf_logo.gif" alt="PDF" /></a></p> </td> <td class="imagenReglamento">&nbsp;</td> </tr> <tr> <td><p>Autenticarse</p> <form id="form1" method="post" action="analizadorlogin.php"> <p> <label>Login <input type="text" name="log" /> </label> <label>Password <input type="password" name="pass" /> </label> <label> <input type="submit" value="Identificarse" name="b" /> </label> </p> </form> <p>&nbsp;</p></td> <td colspan="2" class="noticias"><h3>Noticias</h3> <?php noticias(); ?></td> </tr> </table> </body> </html>

E.T.S. de Informtica Aplicada (U.P.V.)

147

Vicente Sancho Guijarro

Proyecto Final de Carrera

Calendarioescolar.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <link href="css/calendario.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td class="menu"> <ul> <li><a href="index.php">Inicio</a></li> <li><a href="historia.php">Historia</a></li> <li><a href="equipoDirectivo.php">Equipo directivo</a></li> <li><a href="reglamento.php">Reglamento</a></li> <li><a href="#">Calendario escolar</a></li> <li><a href="localizacion.php">Localizaci&oacute;n</a></li> <li><a href="contactar.php">Contactar</a></li> <li><a href="enlaces.php">Enlaces</a></li> </ul> </td> <td class="general"><h1>Calendario escolar </h1> <?php require ("calendarioscript.php"); if (!$HTTP_POST_VARS && !$HTTP_GET_VARS){ $tiempo_actual = time(); $mes = date("n", $tiempo_actual); $ano = date("Y", $tiempo_actual); $dia=date("d"); $fecha=$ano . "-" . $mes . "-" . $dia; }else { $mes = $_GET["nuevo_mes"]; $ano = $_GET["nuevo_ano"]; $dia = $_GET["dia"]; $fecha=$ano . "-" . $mes . "-" . $dia; } //echo"Fecha Seleccionada <input type=text name=fecha value=$fecha>"; mostrar_calendario($dia,$mes,$ano); ?> </td> <td class="imagenCalendario">&nbsp;</td> </tr> <tr> <td><p>Autenticarse</p> <form id="form1" method="post" action="analizadorlogin.php"> <p> <label>Login <input type="text" name="log" /> </label> <label>Password <input type="password" name="pass" /> </label> <label> <input type="submit" value="Identificarse" name="b" />

E.T.S. de Informtica Aplicada (U.P.V.)

148

Vicente Sancho Guijarro

Proyecto Final de Carrera

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>

E.T.S. de Informtica Aplicada (U.P.V.)

149

Vicente Sancho Guijarro

Proyecto Final de Carrera

Localizacion.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 <?php require_once ("Anonimo_inc.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td class="menu"> <ul> <li><a href="index.php">Inicio</a></li> <li><a href="historia.php">Historia</a></li> <li><a href="equipoDirectivo.php">Equipo directivo</a></li> <li><a href="reglamento.php">Reglamento</a></li> <li><a href="calendario.php">Calendario escolar</a></li> <li><a href="#">Localizaci&oacute;n</a></li> <li><a href="contactar.php">Contactar</a></li> <li><a href="enlaces.php">Enlaces</a></li> </ul> </td> <td class="general"><h1>Localizaci&oacute;n</h1> <p>C. P. EMILIO LLUCH </p> <p>Calle Polideportivo, s/n. </p> <p>46119 - N&agrave;quera (Valencia)</p> <p><a href="javascript:;" onclick="window.open('http://www.naquera. com/servicios/plano_callejero_v.asp','Mapa','width=500,height=325')"> Ver mapa de N&agrave;quera</a> </p></td> <td class="imagenLocalizacion">&nbsp;</td> </tr> <tr> <td><p>Autenticarse</p> <form id="form1" method="post" action="analizadorlogin.php"> <p> <label>Login <input type="text" name="log" /> </label> <label>Password <input type="password" name="pass" /> </label> <label> <input type="submit" value="Identificarse" name="b" /> </label> </p> </form> <p>&nbsp;</p></td> <td colspan="2" class="noticias"><h3>Noticias</h3> <?php noticias(); ?></td> </tr> </table> </body> </html>

E.T.S. de Informtica Aplicada (U.P.V.)

150

Vicente Sancho Guijarro

Proyecto Final de Carrera

Contactar.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php require_once ("Anonimo_inc.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td class="menu"> <ul> <li><a href="index.php">Inicio</a></li> <li><a href="historia.php">Historia</a></li> <li><a href="equipoDirectivo.php">Equipo directivo</a></li> <li><a href="reglamento.php">Reglamento</a></li> <li><a href="calendario.php">Calendario escolar</a></li> <li><a href="localizacion.php">Localizaci&oacute;n</a></li> <li><a href="#">Contactar</a></li> <li><a href="enlaces.php">Enlaces</a></li> </ul> </td> <td class="general"><h1>Contacto</h1> <p>Para cualquier duda o sugerencia no dude en ponerse en contacto con nosotros. Con el formulario que le ofrecemos a continuaci&oacute; n puede hacernos llegar sus inquietudes. </p> <p>O si lo prefiere puede ponerse en contacto con el centro con el siguiente tel&eacute;fono: 96 168 00 76</p> <form id="form2" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>"> <p> Introduzca su e-mail <input type="text" name="Mail" value="<?php echo $_POST["Mail"] ?> "/> </p> <p>Introduzca el mensaje que desee enviar: </p> <p> <textarea name="Texto" cols="50" rows="8"><?php echo $_POST[ "Texto"] ?></textarea> </p> <p> <input type="submit" name="Submit" value="Enviar" /> </p> </form> <?php

?> <p>&nbsp;</p></td> <td class="imagenEmail">&nbsp;</td> </tr> <tr> <td><p>Autenticarse</p> <form id="form1" method="post" action="analizadorlogin.php"> <p>

E.T.S. de Informtica Aplicada (U.P.V.)

151

Vicente Sancho Guijarro

Proyecto Final de Carrera

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>

E.T.S. de Informtica Aplicada (U.P.V.)

152

Vicente Sancho Guijarro

Proyecto Final de Carrera

Enlaces.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 <?php require_once ("Anonimo_inc.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td class="menu"> <ul> <li><a href="index.php">Inicio</a></li> <li><a href="historia.php">Historia</a></li> <li><a href="equipoDirectivo.php">Equipo directivo</a></li> <li><a href="reglamento.php">Reglamento</a></li> <li><a href="calendario.php">Calendario escolar</a></li> <li><a href="localizacion.php">Localizaci&oacute;n</a></li> <li><a href="contactar.php">Contactar</a></li> <li><a href="#">Enlaces</a></li> </ul> </td> <td class="general"><h1>Enlaces de inter&eacute;s </h1> <h3>Institucionales</h3> <p><a href="www.mec.es">Ministerio de Educaci&oacute;n</a></p> <p><a href="www.cult.gva.es">Conselleria d'Educaci&oacute;</a> </p> <p><a href="www.naquera.com">Ayuntamiento de N&agrave;quera</a> </p> <h3>Recursos educativos </h3> <p><a href="www.rincondelvago.com">El Rinc&oacute;n del vago</a> </p>< /td> <td class="imagenEnlaces">&nbsp;</td> </tr> <tr> <td><p>Autenticarse</p> <form id="form1" method="post" action="analizadorlogin.php"> <p> <label>Login <input type="text" name="log" /> </label> <label>Password <input type="password" name="pass" /> </label> <label> <input type="submit" value="Identificarse" name="b" /> </label> </p> </form> <p>&nbsp;</p></td> <td colspan="2" class="noticias"><h3>Noticias</h3> <?php noticias(); ?></td> </tr> </table> </body> </html>

E.T.S. de Informtica Aplicada (U.P.V.)

153

Vicente Sancho Guijarro

Proyecto Final de Carrera

Prohibido.php
1 2 3 4 5 6 7 8 9 10 11 12 13 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Documento sin t&iacute;tulo</title> </head> <body> <p>Acceso prohibido. </p> Volver al <a href="/webcole/index.php">inicio</a> </body> </html>

E.T.S. de Informtica Aplicada (U.P.V.)

154

Vicente Sancho Guijarro

Proyecto Final de Carrera

Anonimo_inc.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php require_once "bd.php"; function equipo_directivo() { $conn = Conectar(); // DIRECTOR $sql="SELECT * FROM usuario U, director D, equipodirectivo E WHERE U. login = D.login AND D.login = E.login"; $director = consulta($sql,$conn); $dir = siguiente($director); echo "<p style='font-weight: bold; font-size:22px'>Director: </p>"; echo tohtml("<p>".$dir["nombre"]." ".$dir["apellido1"]." ".$dir[ "apellido2"]."</p>"); echo tohtml("<p>E-mail: <a href='mailto:".$dir["email"]."'>".$dir[ "email"]."</a></p>"); echo tohtml("<p>Horario de atenci&oacute;n: " . $dir["horario"] . "< /p>"); echo "<hr />"; //JEFE DE ESTUDIOS $sql="SELECT * FROM usuario U, jefeestudio J, equipodirectivo E WHERE U.login = J.login AND J.login = E.login"; $je = consulta($sql,$conn); $je = siguiente($je); echo "<p style='font-weight: bold; font-size:22px'>Jefe de Estudios: </p>"; echo tohtml("<p>".$je["nombre"]." ".$je["apellido1"]." ".$je[ "apellido2"]."</p>"); echo tohtml("<p>E-mail: <a href='mailto:".$je["email"]."'>".$je[ "email"]."</a></p>"); echo tohtml("<p>Horario de atenci&oacute;n: " . $je["horario"] . "</p> "); echo "<hr />"; //SECRETARIO $sql="SELECT * FROM usuario U, secretario S, equipodirectivo E WHERE U.login = S.login AND S.login=E.login"; $secretario = consulta($sql,$conn); $sec = siguiente($secretario); echo "<p style='font-weight: bold; font-size:22px'>Secretario: </p>"; echo tohtml("<p>".$sec["nombre"]." ".$sec["apellido1"]." ".$sec[ "apellido2"]."</p>"); echo tohtml("<p>E-mail: <a href='mailto:".$sec["email"]."'>".$sec[ "email"]."</a></p>"); echo tohtml("<p>Horario de atenci&oacute;n: " . $sec["horario"] . "< /p>"); desconectar($conn); } function noticias() { $conn=Conectar(); $sql="SELECT * FROM evento WHERE titulo = 'Noticia' ORDER BY idevento DESC"; $res=consulta($sql,$conn); for($i=0; $i<3 || $i<numeroFilas($res);$i++) { $row = siguiente($res); echo "<p><span class='fechaNoticia'>".sacarFecha($row["fecha"])." < /span>".tohtml($row["descripcion"])." </p>"; } desconectar($conn); } function mandar_correo() { $conn=Conectar(); $sql="SELECT * FROM administrador"; $res=consulta($sql,$conn); $res=siguiente($res); $mailAdmin = $res["email"]; if(isset($_POST["Mail"]) && $_POST["Mail"] != "") {

E.T.S. de Informtica Aplicada (U.P.V.)

155

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 } 85 86 ?>

Proyecto Final de Carrera

if(@mail($mailAdmin, "Consulta de la Web", $_POST["Texto"], "From: ".$_POST['Mail'])) echo "<p>Gracias por ponerse en contacto con nosotros. Le contestaremos con la mayor brevedad posible.</p>"; else echo "<p>Lo siento, ha ocurrido un error.</p>"; } else if($HTTP_POST_VARS) echo "<p>Debe rellenar todos los campos.</p>"; desconectar($conn);

E.T.S. de Informtica Aplicada (U.P.V.)

156

Vicente Sancho Guijarro

Proyecto Final de Carrera

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("Autenticacin errnea"); 53 </script>'; 54 } 55 56 57 desconectar($conn); 58 ?>

E.T.S. de Informtica Aplicada (U.P.V.)

157

Vicente Sancho Guijarro

Proyecto Final de Carrera

Bd.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php 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; } function consulta($sql, $c) { $res = mysql_query($sql, $c); return $res; } function siguiente($res) { return mysql_fetch_assoc($res); }

function Desconectar($link) { mysql_close($link); //cierra la conexion } //Esta funcin convierte la fecha del formato DATETIME de SQL //a formato DD-MM-YYYY HH:mm:ss function convertir_fecha($fecha_datetime) { $fecha = split("-",$fecha_datetime); $hora = split(":",$fecha[2]); $fecha_hora=split(" ",$hora[0]); $fecha_convertida=$fecha_hora[0].'-'.$fecha[1].'-'.$fecha[0].' '. $fecha_hora[1].':'.$hora[1].':'.$hora[2]; return $fecha_convertida; } //Devuelve solo la fecha de un datetime function sacarFecha($fecha_datetime) { $fecha = split("-",$fecha_datetime); $hora = split(":",$fecha[2]); $fecha_hora=split(" ",$hora[0]); $fecha_convertida=$fecha_hora[0] . '-' . $fecha[1] . '-' . $fecha[0]; return $fecha_convertida; } function sacarDiaMes($fecha_datetime) { $fecha = split("-",$fecha_datetime); $hora = split(":",$fecha[2]); $fecha_hora=split(" ",$hora[0]); $fecha_convertida=$fecha_hora[0] . '-' . $fecha[1]; return $fecha_convertida; } function numeroFilas($res) { return mysql_num_rows($res); } //Reemplaza en un texto las tildes y caracteres especiales por su equivalente en html function tohtml($texto) { $especial=array('','','','','','','','','','','','','','',

E.T.S. de Informtica Aplicada (U.P.V.)

158

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91

Proyecto Final de Carrera

'','','',''); $traducir=array('&aacute;','&eacute;','&iacute;','&oacute;','&uacute;', '&ntilde;','&Aacute;','&Eacute;','&Iacute;','&Oacute;','&Uacute;', '&Ntilde;','&agrave;','&egrave;','&ograve;','&Agrave;','&Egrave;', '&Ograve;'); return str_replace($especial,$traducir,$texto); } //cierra la sesion del usuario, borrando los datos que hubiera en ella function cerrarSesion () { // Destruye todas las variables de la sesi&oacute;n session_unset(); // Finalmente, destruye la sesi&oacute;n session_destroy(); } ?>

E.T.S. de Informtica Aplicada (U.P.V.)

159

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 ?>

E.T.S. de Informtica Aplicada (U.P.V.)

160

Vicente Sancho Guijarro

Proyecto Final de Carrera

calendarioscript.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 <?php include_once("bd.php");

function calcula_numero_dia_semana($dia,$mes,$ano){ $numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano)); if ($numerodiasemana == 0) $numerodiasemana = 6; else $numerodiasemana--; return $numerodiasemana; } //funcion que devuelve el ltimo da de un mes y ao dados function ultimoDia($mes,$ano){ $ultimo_dia=28; while (checkdate($mes,$ultimo_dia + 1,$ano)){ $ultimo_dia++; } return $ultimo_dia; } function dame_nombre_mes($mes){ switch ($mes){ case 1: $nombre_mes="Enero"; break; case 2: $nombre_mes="Febrero"; break; case 3: $nombre_mes="Marzo"; break; case 4: $nombre_mes="Abril"; break; case 5: $nombre_mes="Mayo"; break; case 6: $nombre_mes="Junio"; break; case 7: $nombre_mes="Julio"; break; case 8: $nombre_mes="Agosto"; break; case 9: $nombre_mes="Septiembre"; break; case 10: $nombre_mes="Octubre"; break; case 11: $nombre_mes="Noviembre"; break; case 12: $nombre_mes="Diciembre"; break; } return $nombre_mes; } function mostrar_calendario($dia,$mes,$ano){ $mes_hoy=date("m"); $ano_hoy=date("Y"); if (($mes_hoy <> $mes) || ($ano_hoy <> $ano)) { $hoy=0; } else {

E.T.S. de Informtica Aplicada (U.P.V.)

161

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 }

E.T.S. de Informtica Aplicada (U.P.V.)

162

Vicente Sancho Guijarro


153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229

Proyecto Final de Carrera

else if ($dia_actual == $dia) //Dia seleccionado { echo "<td class='da'><a href='calendario. php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; nuevo_ano=$ano'>$dia_actual</a></td>"; } else { echo "<td class='fs'><a href='calendario. php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; nuevo_ano=$ano'>$dia_actual</a></td>"; } } else { if ($dia_actual == $hoy) { echo "<td class='da'><a href='calendario. php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; nuevo_ano=$ano'>$dia_actual</a></td>"; } else if ($dia_actual == $dia) //Dia seleccionado { echo "<td class='da'><a href='calendario. php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; nuevo_ano=$ano'>$dia_actual</a></td>"; } else { $escrito=0; $conn=Conectar(); $sql = "SELECT * FROM evento WHERE titulo = 'Festivo'"; $res = consulta($sql,$conn); while($row = siguiente($res)) { $fecha = split("-",sacarFecha($row["fecha"])); if($dia_actual == $fecha[0] && $mes == $fecha[1] && ($fecha[2] == "2000" || $fecha[2] == $ano)) { echo "<td class='fs'><a href='calendario. php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; nuevo_ano=$ano'>$dia_actual</a></td>"; $escrito=1; break; } } $sql = "SELECT * FROM evento WHERE NOT titulo = 'Festivo' AND NOT titulo='Noticia'"; $res = consulta($sql,$conn); while($row = siguiente($res)) { $fecha = split("-",sacarFecha($row["fecha"])); if($dia_actual == $fecha[0] && $mes == $fecha[1] && ($fecha[2] == "2000" || $fecha[2] == $ano)) { echo "<td class='curso'><a href='calendario. php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; nuevo_ano=$ano'>$dia_actual</a></td>"; $escrito=1; break; } } Desconectar($conn); if($escrito==0) { echo "<td style='text-align: center ;' class='laborable'><a href='calendario. php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; nuevo_ano=$ano'>$dia_actual</a></td>"; } } } $dia_actual++; } } echo "</tr>";

E.T.S. de Informtica Aplicada (U.P.V.)

163

Vicente Sancho Guijarro


230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306

Proyecto Final de Carrera

//recorro todos los dems das hasta el final del mes $numero_dia = 0; while ($dia_actual <= $ultimo_dia){ //si estamos a principio de la semana escribo el <TR> if ($numero_dia == 0) echo "<tr>"; //si es el utimo de la semana, me pongo al principio de la semana y escribo el </tr> if (($numero_dia == 5) || ($numero_dia == 6)) { if ($dia_actual == $hoy) { echo "<td class='da'><a href='calendario. php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; nuevo_ano=$ano'>$dia_actual</a></td>"; } else if ($dia_actual == $dia) //Dia seleccionado { echo "<td class='da'><a href='calendario. php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; nuevo_ano=$ano'>$dia_actual</a></td>"; } else { echo "<td class='fs' ><a href='calendario. php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; nuevo_ano=$ano'>$dia_actual</a></td>"; } } else { if ($dia_actual == $hoy) { echo "<td class='da'><a href='calendario. php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; nuevo_ano=$ano'>$dia_actual</a></td>"; } else if ($dia_actual == $dia) //Dia seleccionado { echo "<td class='da'><a href='calendario. php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; nuevo_ano=$ano'>$dia_actual</a></td>"; } else { $escrito=0; $conn=Conectar(); $sql = "SELECT * FROM evento WHERE titulo = 'Festivo'"; $res = consulta($sql,$conn); while($row = siguiente($res)) { $fecha = split("-",sacarFecha($row["fecha"])); if($dia_actual == $fecha[0] && $mes == $fecha[1] && ($fecha[2] == "2000" || $fecha[2] == $ano)) { echo "<td class='fs'><a href='calendario. php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; nuevo_ano=$ano'>$dia_actual</a></td>"; $escrito=1; break; } } $sql = "SELECT * FROM evento WHERE NOT titulo = 'Festivo' AND NOT titulo='Noticia'"; $res = consulta($sql,$conn); while($row = siguiente($res)) { $fecha = split("-",sacarFecha($row["fecha"])); if($dia_actual == $fecha[0] && $mes == $fecha[1] && ($fecha[2] == "2000" || $fecha[2] == $ano)) { echo "<td class='curso'><a href='calendario. php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; nuevo_ano=$ano'>$dia_actual</a></td>"; $escrito=1;

E.T.S. de Informtica Aplicada (U.P.V.)

164

Vicente Sancho Guijarro


307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 } break; }

Proyecto Final de Carrera

} Desconectar($conn); if($escrito==0) { echo "<td style='text-align: center ;' class='laborable'><a href='calendario. php?dia=$dia_actual&amp;nuevo_mes=$mes&amp; nuevo_ano=$ano'>$dia_actual</a></td>"; } } } $dia_actual++; $numero_dia++; if ($numero_dia == 7) { $numero_dia = 0; echo "</tr>"; } } //compruebo que celdas me faltan por escribir vacias de la ltima semana del mes for ($i=$numero_dia;$i<7;$i++){ echo "<td></td>"; } echo "</tr>"; echo "</table>";

E.T.S. de Informtica Aplicada (U.P.V.)

165

Vicente Sancho Guijarro

Proyecto Final de Carrera

Alumno_inc.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 <?php require_once "bd.php"; define (INST, "INSTALACION"); define (EQUIP, "EQUIPACION"); define (ALUM, "Alumno"); //Devuelve una tabla con las reservas de instalaciones que //ha efectuado el usuario. //El usuario se obtiene de la sesion iniciada //Acceso: // idinst => id de la instalacion // instalacion => nombre de la instalacion // normas => ruta para llegar a las normas de la instalacion // (no contiene las normas, apunta al fichero // que las tiene) // fecha => fecha de la reserva con formato "mm-dd-aa hh:mm:ss" // proposito => Motivo de la reserva (introducido por el usuario // cuando realiza la reserva. function listado_reservas_instalaciones() { $link = Conectar(); $sql = "SELECT * FROM res_ins WHERE login = '" . $_SESSION["id"] ."'"; //ejecutamos la consulta $resultado = consulta ($sql, $link); //sacamos los valores que nos interesan de los //resultados (en este caso todos) $i = 0; $tabla = null; while ($fila = siguiente($resultado)) { $tabla[$i]["fecha"] = $fila["fecha"]; //$tabla[$i]["fecha"] = $fila["fecha"]; $tabla[$i]["proposito"] = $fila["proposito"]; $sql_ins = "SELECT * FROM instalacion WHERE idinstalacion = '" . $fila["idinstalacion"] . "'"; $res_ins = consulta ($sql_ins, $link); $ins = siguiente($res_ins); if ($ins) { $tabla[$i]["idinst"] = $ins["idinstalacion"]; $tabla[$i]["instalacion"] = $ins["instalacion"]; $tabla[$i++]["normas"] = $ins["normas"]; } else { $tabla[$i]["idinst"] = -1; $tabla[$i]["instalacion"] = "Instalacion desconocida"; $tabla[$i++]["normas"] = "Normas no encontradas"; } } Desconectar ($link); return $tabla; }

//devuelve una tabla con el id de las instalaciones, //el nombre de la instalacion y las normas //Acceso: // idinstalacion => id de la instalacion // instalacion => nombre de la instalacion // normas => ruta para llegar a las normas de la instalacion // (no contiene las normas, apunta al fichero // que las tiene) function listado_instalacion() { $link = Conectar(); $sql = "SELECT * FROM instalacion"; //ejecutamos la consulta

E.T.S. de Informtica Aplicada (U.P.V.)

166

Vicente Sancho Guijarro


76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 $resultado = consulta ($sql, $link);

Proyecto Final de Carrera

//sacamos los valores que nos interesan de los //resultados (en este caso todos) $i = 0; while ($fila = siguiente($resultado)) { $tabla[$i]["idinstalacion"] = $fila["idinstalacion"]; $tabla[$i]["instalacion"] = $fila["instalacion"]; $tabla[$i++]["normas"] = $fila["normas"]; } Desconectar ($link); return $tabla; }

//Obtiene los dias en que esta reservado una instalacion dada //Devuelve una tabla con las fechas //Acceso: // dia // mes // anyo //Parametros recibido // id de una instalacion function fecha_reservas($iditem, $item) { if ( !isset($iditem) || $iditem == -1) { return; } $link = Conectar(); if ($item == INST) { $sql = "SELECT fecha FROM `res_ins` WHERE `res_ins`.`idinstalacion`=$iditem" ; } else { $sql = "SELECT fecha FROM `res_equi` WHERE `res_equi`.`idequipacion`=$iditem" ; } $result = consulta ($sql, $link); //sacamos los valores que nos interesan de los //resultados (en este caso todos) $i = 0; $tabla; while ($fila = siguiente($result)) { $fecha = sacarFecha($fila["fecha"]); $trozo = explode ("-", $fecha); //echo " fecha: " . $fecha . "\n<br>"; $tabla[$i]["dia"] = $trozo[0]; $tabla[$i]["mes"] = $trozo[1]; $tabla[$i++]["anyo"] = $trozo[2]; } Desconectar ($link); return $tabla; } //Permite hacer una reserva //Recibe como parametros //Login del usuario, fecha(dia, mes, anyo) y hora(hora, min, seg) //el codigo del item a reservar (puede ser una instalacion o un //equipamiento y el motivo //Devuelve: // True si reveserva se pudo hacer // Falso en caso contrario function reservar_instalacion($login,$iditem,$dia,$mes,$anyo,$hora,$min, $seg,$motivo, $item) { $fecha = $anyo . "-" . $mes . "-" . $dia . " " . $hora . ":" . $min . ": " . $seg;

E.T.S. de Informtica Aplicada (U.P.V.)

167

Vicente Sancho Guijarro


153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 echo "fecha vale: $fecha<br>\n"; $link = Conectar(); /*$sql = "INSERT INTO `webcole`.`res_ins` (`login`, `idinstalacion`, `fecha`, `proposito`) VALUES (\'$login\', \'$idins\', \'$fecha\', \'$motivo\');"; */ if ($item == INST) { $sql = "INSERT INTO `webcole`.`res_ins` (`login`, `idinstalacion`, `fecha`, `proposito`) VALUES ('$login', '$iditem', '$fecha', '$motivo');"; } else { $sql = "INSERT INTO `webcole`.`res_equi` (`login`, `idequipacion`, `fecha`, `proposito`) VALUES ('$login', '$iditem', '$fecha', '$motivo');"; } $result = consulta ($sql, $link); echo "error: " . mysql_error($link);

Proyecto Final de Carrera

return $result; }

//Esta funcion elimina una reserva del usuario dado una fecha y el //id del item y el tipo (instalacion o equipamiento function anular_reserva($login, $fecha, $iditem, $item) { $link = Conectar(); if ($item == INST) { $sql = "DELETE FROM `res_ins` WHERE CONVERT(`res_ins`.`login` USING utf8)='$login' AND `res_ins`.`idinstalacion`=$iditem AND `res_ins`.`fecha`='$fecha' "; } else { $sql = "DELETE FROM `res_equi` WHERE CONVERT(`res_equi`.`login` USING utf8)='$login' AND `res_equi`.`idequipacion`=$iditem AND `res_equi`.`fecha`='$fecha' "; } $result = consulta ($sql, $link); $correcto =false; if($result) { $filas = mysql_affected_rows(); if ( $filas == 0 ) { //echo "La reserva ya hab&iacute;a sido eliminada"; $correcto =false; } else

E.T.S. de Informtica Aplicada (U.P.V.)

168

Vicente Sancho Guijarro


230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 { //echo "La reserva $correcto =true; } } else { ha sido eliminada";

Proyecto Final de Carrera

//echo"<p>Operacion NO efectuada</p>\n"; //echo"<p>Error: " . mysql_error($link) . "</p>\n"; //echo"SQL: $sql"; $correcto =false; } Desconectar ($link); return $correcto; } function bienvenido() { $dp = Conectar(); $sql = 'SELECT * FROM usuario WHERE login ="' . $_SESSION[ "id"] .'"'; $resultado = consulta($sql, $dp); while($row = siguiente($resultado)) echo 'Bienvenido ' . $row['nombre']; desconectar($dp); } function rellenar_eventos_curso() { $conn = Conectar(); $sql="SELECT * FROM evento WHERE titulo = 'Curso' ORDER BY fecha"; $res=consulta($sql,$conn); while($row = siguiente($res)) { $fecha=split("-",sacarFecha($row["fecha"])); $fechaComparar = "".$fecha[2].$fecha[1].$fecha[0]; if($fechaComparar >= date("Ymd")) for($i=0; $i<3 && $i<numeroFilas($res);$i++) echo "<p><span class='fechaNoticia'>".sacarFecha($row[ "fecha"])." </span>".tohtml($row["descripcion"])." </p> "; } desconectar($conn); } function rellenar_tabla_faltas() { $conn = Conectar(); $sql = "SELECT * FROM faltaasistencia WHERE alumno = '".$_SESSION[ "id"]."' ORDER BY fecha"; $faltas = consulta($sql,$conn); if(numeroFilas($faltas) == 0) echo "El alumno no tiene ninguna falta de asistencia."; else { echo "<table width='100%' border='1'>"; echo "<tr>"; echo "<th scope='col'>Fecha</th>"; echo "<th scope='col'>Asignatura</th>"; echo "<th scope='col'>Justificada</th>"; echo "</tr>"; while($row = siguiente($faltas)) { $sql = "SELECT nombre FROM asignatura WHERE codigoasignatura = '".$row["asignatura"]."'"; $asignatura = consulta($sql,$conn); $asignatura = siguiente($asignatura); echo "<tr>"; echo "<th scope='row'>".sacarFecha($row["fecha"])."</th>"; echo "<td>".tohtml($asignatura["nombre"])."</td>"; if($row["justificada"] == 0) echo "<td>NO</td>"; else echo "<td>S&Iacute;</td>"; echo "</tr>";

E.T.S. de Informtica Aplicada (U.P.V.)

169

Vicente Sancho Guijarro


307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 } echo "</table>"; } desconectar($conn); }

Proyecto Final de Carrera

function poner_datos_grupo() { $conn = Conectar(); $sql = "SELECT * FROM usuario U, alumno A, grupo G WHERE U.login = '".$_SESSION["id"]."' AND U.login = A.login AND A.curso = G.curso AND A.letra = G.letra"; $res = consulta($sql, $conn); $res = siguiente($res); echo "<p>Curso: ".$res["curso"] . "</p>"; echo "<p>Letra: ".$res["letra"] . "</p>"; echo "<p>Aula: ".$res["aula"] . "</p>"; // Delegado $sql = "SELECT * FROM usuario U, grupo G WHERE U.login = G. delegado"; $row = consulta($sql, $conn); $row = siguiente($row); echo "<p>Delegado: ".tohtml($row["apellido1"]." ".$row["apellido2"]. ", ".$row["nombre"])."</p>"; // Tutor $sql = "SELECT * FROM usuario U, grupo G WHERE U.login = G.tutor"; $row = consulta($sql, $conn); $row = siguiente($row); echo "<p>Tutor: ".tohtml($row["apellido1"]." ".$row["apellido2"].", ".$row["nombre"])."</p>"; desconectar($conn); } function rellenar_tabla_alumnos() { $conn = Conectar(); $sql1 = "SELECT * FROM alumno where login='" . $_SESSION[ "id"] ."'"; $a = consulta($sql1,$conn); $res = siguiente($a); if ($res) { $sql = "SELECT * FROM usuario U, alumno A WHERE U.login = A.login AND A.curso = '".$res["curso"]."' AND A.letra = '".$res["letra"]."' ORDER BY apellido1, apellido2"; $alumnos = consulta($sql,$conn); while($row = siguiente($alumnos)) { echo "<tr>"; echo "<td>".tohtml($row["apellido1"]." ".$row[ "apellido2"].", ".$row["nombre"])."</td>"; echo "<td>".tohtml($row["direccion"])."</td>"; echo "<td>".tohtml($row["poblacion"])."</td>"; echo "<td>".$row["telefono"]."</td>"; echo "</tr>"; } } desconectar($conn); } function curso_actual() { if(date("m")<9) { $anyo_ant = date("Y") - 1; echo "Curso: ".$anyo_ant." - ".date("Y"); } else { $anyo_pos = date("Y") + 1; echo "Curso: ".date("Y")." - ".$anyo_pos; } }

E.T.S. de Informtica Aplicada (U.P.V.)

170

Vicente Sancho Guijarro


384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460

Proyecto Final de Carrera

function rellenar_tabla_notas() { $conn = Conectar(); $mes = date("m"); if($mes<9) $sql = "SELECT * FROM nota WHERE alumno = '".$_SESSION["id"] ."' AND curso LIKE '%".date("Y")."' ORDER BY asignatura, trimestre"; else $sql = "SELECT * FROM nota WHERE alumno = '".$_SESSION["id"] ."' AND curso LIKE '".date("Y")."%' ORDER BY asignatura, trimestre"; $notas = consulta($sql,$conn); $ultimo_trimestre = 0; while($row = siguiente($notas)) { if($row["trimestre"] == 1) { if($ultimo_trimestre == 1) { echo "<td>&nbsp;</td>"; echo "<td>&nbsp;</td>"; echo "</tr>"; } if($ultimo_trimestre == 2) { echo "<td>&nbsp;</td>"; echo "</tr>"; } $sql = "SELECT nombre FROM asignatura WHERE codigoasignatura = '".$row["asignatura"]."'"; $asignatura = consulta($sql,$conn); $asignatura = siguiente($asignatura); echo "<tr>"; echo "<th scope='row'>".tohtml($asignatura["nombre"])."< /th>"; echo "<td>".$row["nota"]."</td>"; $ultimo_trimestre = 1;

} if($row["trimestre"] == 2) { $ultimo_trimestre = 2; echo "<td>".$row["nota"]."</td>"; } if($row["trimestre"] == 3) { $ultimo_trimestre = 3; echo "<td>".$row["nota"]."</td>"; echo "</tr>"; } } desconectar($conn); } function rellenar_tabla_profesores() { $conn = Conectar(); $sql = "SELECT * FROM alumno A, grupo G WHERE A.login = '" . $_SESSION["id"]."' AND A.curso = G.curso AND A.letra = G. letra "; //Obtenemos el grupo $grupo = consulta($sql,$conn); $grupo = siguiente($grupo); $sql = "SELECT * FROM impartida I, asignatura A, imparte IM, profesor P WHERE I.curso = '".$grupo["curso"]."' AND I. letra = '".$grupo["letra"]."' AND I.asignatura = A. codigoasignatura AND A.codigoasignatura = IM.asignatura AND IM.profesor = P.login ORDER BY nombre"; $res = consulta($sql,$conn); echo "sql vale: $sql<br>\n"; while($row=siguiente($res)) { echo "<tr>"; echo "<td>".tohtml($row["nombre"])."</td>"; $sql = "SELECT * FROM usuario WHERE login = '".$row[ "login"]."'";

E.T.S. de Informtica Aplicada (U.P.V.)

171

Vicente Sancho Guijarro


461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525

Proyecto Final de Carrera

$profe = consulta($sql,$conn); $profe = siguiente($profe); echo "<td>".tohtml($profe["apellido1"]." ".$profe[ "apellido2"].", ".$profe["nombre"])."</td>"; echo "<td>".tohtml($row["tutorias"])."</td>"; echo "<td><a href='mailto:".tohtml($row["email"])."'>". tohtml($row["email"])."</a></td>"; echo "</tr>"; } desconectar($conn); } function poner_anuncios_tablon() { $conn = Conectar(); $sql = "SELECT * FROM anuncio ORDER BY idanuncio DESC"; $anuncios = consulta($sql, $conn); $anuncios_mostrados = 0; $anuncios_amostrar = 10; while($row = siguiente($anuncios)) { if($anuncios_mostrados >= $anuncios_amostrar) break; $anuncios_mostrados++; $sql = "SELECT * FROM usuario WHERE login = '".$row["login"]."'"; $usuario = consulta($sql,$conn); $usuario = siguiente($usuario); echo "<tr>"; if($anuncios_mostrados>=3) echo "<td></td>"; echo "<td class='general'><p class='anuncioTitulo'>".tohtml($row["titulo"] )." </p><br/>"; echo "<span class='anuncioNombre'>".tohtml($usuario["nombre"])." ".tohtml( $usuario["apellido1"])."</span> <span class='anuncioFecha'>- ".$row[ "fecha"]."</span> </td>"; echo "<td class='general'>&nbsp;</td>"; echo "</tr>"; echo "<tr>"; echo "<td class='general'><p class='anuncio'><span class='anuncioTexto'> ".tohtml($row["texto"])."</span></p></td>"; echo "<td class='general'>&nbsp;</td>"; echo "</tr>"; //echo "<tr>"; //echo "<td colspan='2' class='general'>&nbsp;</td>"; //echo "</tr>"; } desconectar($conn); } function nombre_conectado() { $dp = Conectar(); $sql = 'SELECT * FROM usuario WHERE login ="' . $_SESSION[ "id"] .'"'; $resultado = consulta($sql, $dp); $row = siguiente($resultado); echo tohtml($row['apellido1'] . " " . $row['apellido2'] . ", " . $row['nombre']); desconectar($dp); } ?>

E.T.S. de Informtica Aplicada (U.P.V.)

172

Vicente Sancho Guijarro

Proyecto Final de Carrera

intranetAlumno.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php session_start(); if($_SESSION["tipo"] != "Alumno") header("Location: prohibido.php"); require_once ("Alumno_inc.php"); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td class="menu"> <ul> <li><a href="#">Inicio</a></li> <li><a href="Alumno_horario.php">Horario</a></li> <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> <li><a href="Alumno_profes.php">Listado profesores </a></li> <li><a href="Alumno_notas.php">Notas</a></li> <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> <li><a href="Alumno_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"><h1>Intranet alumno </h1> <p> <?php nombre_conectado(); ?> </p> </td> <td class="general">&nbsp;</td> </tr> <tr> <td> <p> <?php bienvenido(); ?> </p> </td> <td colspan="2" class="noticias"><h3>&nbsp;</h3> <h3>Eventos del curso </h3> <?php rellenar_eventos_curso(); ?> <p>&nbsp; </p></td> </tr> </table> </body> </html>

E.T.S. de Informtica Aplicada (U.P.V.)

173

Vicente Sancho Guijarro

Proyecto Final de Carrera

Alumno_horario.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 <?php session_start(); if($_SESSION["tipo"] != "Alumno") header("Location: prohibido.php"); require_once ("Alumno_inc.php"); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> <link href="css/Alumno_horario.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td class="menu"> <ul> <li><a href="intranetAlumno.php">Inicio</a></li> <li><a href="Alumno_horario.php">Horario</a></li> <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> <li><a href="Alumno_profes.php">Listado profesores </a></li> <li><a href="Alumno_notas.php">Notas</a></li> <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> <li><a href="Alumno_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"><h1>Horario</h1> <?php $conn = Conectar(); $sql = "SELECT * FROM alumno WHERE login = '".$_SESSION["id"]."'"; $alumno = consulta($sql, $conn); $alumno = siguiente($alumno); $sql = "SELECT * FROM impartida I, asignatura A WHERE I.curso = '". $alumno["curso"]."' AND I.letra = '".$alumno["letra"]."' AND A. codigoasignatura = I.asignatura";

?> <table class="tabla" width="100%" border="1"> <tr> <th scope="col">&nbsp;</th> <th scope="col">Lunes</th> <th scope="col">Martes</th> <th scope="col">Mi&eacute;rcoles</th> <th scope="col">Jueves</th> <th scope="col">Viernes</th> </tr> <tr> <th scope="row">9:00-10:00</th> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas))

E.T.S. de Informtica Aplicada (U.P.V.)

174

Vicente Sancho Guijarro


76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 {

Proyecto Final de Carrera

$horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Lunes') if($horario[$i+1] == "9") { echo tohtml($row['nombre']); break; } } } ?> </td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Martes') if($horario[$i+1] == "9") { echo tohtml($row['nombre']); break; } } } ?> </td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Mircoles') if($horario[$i+1] == "9") { echo tohtml($row['nombre']); break; } } } ?> </td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Jueves') if($horario[$i+1] == "9") { echo tohtml($row['nombre']); break; } } } ?> </td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Viernes')

E.T.S. de Informtica Aplicada (U.P.V.)

175

Vicente Sancho Guijarro


153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229

Proyecto Final de Carrera


if($horario[$i+1] == "9") { echo tohtml($row['nombre']); break; }

} } ?> </td> </tr> <tr> <th scope="row">10:00-11:00</th> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Lunes') if($horario[$i+1] == "10") { echo tohtml($row['nombre']); break; } } } ?> </td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Martes') if($horario[$i+1] == "10") { echo tohtml($row['nombre']); break; } } } ?> </td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Mircoles') if($horario[$i+1] == "10") { echo tohtml($row['nombre']); break; } } } ?> </td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Jueves') if($horario[$i+1] == "10")

E.T.S. de Informtica Aplicada (U.P.V.)

176

Vicente Sancho Guijarro


230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 {

Proyecto Final de Carrera

echo tohtml($row['nombre']); break; } } } ?> </td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Viernes') if($horario[$i+1] == "10") { echo tohtml($row['nombre']); break; } } } ?> </td> </tr> <tr class="recreo"> <th scope="row">11:00-11:30</th> <td>Recreo</td> <td>Recreo</td> <td>Recreo</td> <td>Recreo</td> <td>Recreo</td> </tr> <tr> <th scope="row">11:30-12:30</th> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Lunes') if($horario[$i+1] == "11") { echo tohtml($row['nombre']); break; } } } ?> </td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Martes') if($horario[$i+1] == "11") { echo tohtml($row['nombre']); break; } } } ?> <td>&nbsp; <?php

</td>

E.T.S. de Informtica Aplicada (U.P.V.)

177

Vicente Sancho Guijarro


307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383

Proyecto Final de Carrera

$asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Mircoles') if($horario[$i+1] == "11") { echo tohtml($row['nombre']); break; } } } ?> </td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Jueves') if($horario[$i+1] == "11") { echo tohtml($row['nombre']); break; } } } ?> </td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Viernes') if($horario[$i+1] == "11") { echo tohtml($row['nombre']); break; } } } ?> </td> </tr> <tr class="comida"> <th scope="row">12:30-15:00</th> <td>Comida</td> <td>Comida</td> <td>Comida</td> <td>Comida</td> <td>Comida</td> </tr> <tr> <th scope="row">15:00-16:00</th> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Lunes') if($horario[$i+1] == "15") { echo tohtml($row['nombre']);

E.T.S. de Informtica Aplicada (U.P.V.)

178

Vicente Sancho Guijarro


384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 break; } }

Proyecto Final de Carrera

} ?> </td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Martes') if($horario[$i+1] == "15") { echo tohtml($row['nombre']); break; } } } ?> </td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Mircoles') if($horario[$i+1] == "15") { echo tohtml($row['nombre']); break; } } } ?> </td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Jueves') if($horario[$i+1] == "15") { echo tohtml($row['nombre']); break; } } } ?> </td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Viernes') if($horario[$i+1] == "15") { echo tohtml($row['nombre']); break; } }

E.T.S. de Informtica Aplicada (U.P.V.)

179

Vicente Sancho Guijarro


461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537

Proyecto Final de Carrera

} ?> </td> </tr> <tr> <th scope="row">16:00-17:00</th> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Lunes') if($horario[$i+1] == "16") { echo tohtml($row['nombre']); break; } } } ?> </td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Martes') if($horario[$i+1] == "16") { echo tohtml($row['nombre']); break; } } } ?> </td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Mircoles') if($horario[$i+1] == "16") { echo tohtml($row['nombre']); break; } } } ?></td> <td>&nbsp; <?php $asignaturas = consulta($sql,$conn); while($row = siguiente($asignaturas)) { $horario = split(" ", $row['horario']); for($i = 0; $i < count($horario); $i+=2) { if($horario[$i] == 'Jueves') if($horario[$i+1] == "16") { echo tohtml($row['nombre']); break; } } }

E.T.S. de Informtica Aplicada (U.P.V.)

180

Vicente Sancho Guijarro

Proyecto Final de Carrera

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>

E.T.S. de Informtica Aplicada (U.P.V.)

181

Vicente Sancho Guijarro

Proyecto Final de Carrera

Alumno_alumnos.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php session_start(); if($_SESSION["tipo"] != "Alumno") header("Location: prohibido.php"); require_once ("Alumno_inc.php"); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td width="150" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td class="menu"> <ul> <li><a href="intranetAlumno.php">Inicio</a></li> <li><a href="Alumno_horario.php">Horario</a></li> <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> <li><a href="Alumno_profes.php">Listado profesores </a></li> <li><a href="Alumno_notas.php">Notas</a></li> <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> <li><a href="Alumno_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"><h1>Listado de alumnos </h1> <?php poner_datos_grupo(); ?>

<table width="100%" border="1"> <tr> <th scope="col">Nombre</th> <th scope="col">Direcci&oacute;n</th> <th scope="col">Poblaci&oacute;n</th> <th scope="col">Tel&eacute;fono</th> </tr> <?php rellenar_tabla_alumnos(); ?> </table> <p>&nbsp;</p></td> <td class="general">&nbsp;</td> </tr> <tr> <td> <p> <?php bienvenido(); ?> <br><a href="cerrar_sesion_Alumno.php">Cerrar sesi&oacute;n</a>

E.T.S. de Informtica Aplicada (U.P.V.)

182

Vicente Sancho Guijarro

Proyecto Final de Carrera

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>

E.T.S. de Informtica Aplicada (U.P.V.)

183

Vicente Sancho Guijarro

Proyecto Final de Carrera

Alumno_profes.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php session_start(); if($_SESSION["tipo"] != "Alumno") header("Location: prohibido.php"); require_once ("Alumno_inc.php"); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td class="menu"> <ul> <li><a href="intranetAlumno.php">Inicio</a></li> <li><a href="Alumno_horario.php">Horario</a></li> <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> <li><a href="Alumno_profes.php">Listado profesores </a></li> <li><a href="Alumno_notas.php">Notas</a></li> <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> <li><a href="Alumno_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"><h1>Listado de profesores </h1> <p>&nbsp;</p> <?php poner_datos_grupo() ?>

<table width="100%" border="1"> <tr> <th scope="col">Asignatura</th> <th scope="col">Profesor</th> <th scope="col">Tutorias</th> <th scope="col">E-mail</th> </tr> <?php rellenar_tabla_profesores(); ?> </table></td> <td class="general">&nbsp;</td> </tr> <tr> <td> <p> <?php bienvenido(); ?> <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesi&oacute;n</a>

E.T.S. de Informtica Aplicada (U.P.V.)

184

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 85

Proyecto Final de Carrera

</p> </td> <td colspan="2" class="noticias"><h3>Eventos del curso </h3> <?php rellenar_eventos_curso() ?> </td> </tr> </table> </body> </html>

E.T.S. de Informtica Aplicada (U.P.V.)

185

Vicente Sancho Guijarro

Proyecto Final de Carrera

Alumno_notas.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php session_start(); if($_SESSION["tipo"] != "Alumno") header("Location: prohibido.php"); require_once ("Alumno_inc.php"); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td class="menu"> <ul> <li><a href="intranetAlumno.php">Inicio</a></li> <li><a href="Alumno_horario.php">Horario</a></li> <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> <li><a href="Alumno_profes.php">Listado profesores </a></li> <li><a href="Alumno_notas.php">Notas</a></li> <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> <li><a href="Alumno_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"><h1>Notas</h1> <?php curso_actual(); ?> <table width="100%" border="1"> <tr> <th scope="col">Asignatura</th> <th scope="col">1</th> <th scope="col">2</th> <th scope="col">3</th> </tr> <?php rellenar_tabla_notas(); ?> </table> <p>&nbsp;</p></td> <td class="general">&nbsp;</td> </tr> <tr> <td> <p> <?php bienvenido(); ?> <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesi&oacute;n</a> </p> </td> <td colspan="2" class="noticias"><p style=' font-weight: bold;'>Eventos del curso </p>

E.T.S. de Informtica Aplicada (U.P.V.)

186

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 <?php rellenar_eventos_curso() ?> </td> </tr> </table> </body> </html>

Proyecto Final de Carrera

E.T.S. de Informtica Aplicada (U.P.V.)

187

Vicente Sancho Guijarro

Proyecto Final de Carrera

Alumno_faltas.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php session_start(); if($_SESSION["tipo"] != "Alumno") header("Location: prohibido.php"); require_once ("Alumno_inc.php"); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td class="menu"> <ul> <li><a href="intranetAlumno.php">Inicio</a></li> <li><a href="Alumno_horario.php">Horario</a></li> <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> <li><a href="Alumno_profes.php">Listado profesores </a></li> <li><a href="Alumno_notas.php">Notas</a></li> <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> <li><a href="Alumno_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"><h1>Faltas de asistencia </h1> <?php rellenar_tabla_faltas(); ?> <p>&nbsp;</p></td> <td class="general">&nbsp;</td> </tr> <tr> <td> <p> <?php bienvenido(); ?> <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesi&oacute;n</a> </p> </td> <td colspan="2" class="noticias"><h3>Eventos del curso </h3> <?php rellenar_eventos_curso(); ?> </td> </tr> </table> </body>

E.T.S. de Informtica Aplicada (U.P.V.)

188

Vicente Sancho Guijarro


74 </html>

Proyecto Final de Carrera

E.T.S. de Informtica Aplicada (U.P.V.)

189

Vicente Sancho Guijarro

Proyecto Final de Carrera

Alumno_menu.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 <?php session_start(); if($_SESSION["tipo"] != "Alumno") header("Location: prohibido.php"); require_once ("Alumno_inc.php"); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td class="menu"> <ul> <li><a href="intranetAlumno.php">Inicio</a></li> <li><a href="Alumno_horario.php">Horario</a></li> <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> <li><a href="Alumno_profes.php">Listado profesores </a></li> <li><a href="Alumno_notas.php">Notas</a></li> <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> <li><a href="Alumno_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"><h1>Men&uacute; semanal </h1> <p><img src="img/menuJunio1.jpg" alt="menu" width="600" height="511" longdesc="Menu del comedor del mes de junio" /></p></td> <td class="general">&nbsp;</td> </tr> <tr> <td> <p> <?php bienvenido(); ?> <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesi&oacute;n</a> </p> </td> <td colspan="2" class="noticias"><h3>Eventos del curso </h3> <?php rellenar_eventos_curso(); ?> </td> </tr> </table> </body> </html>

E.T.S. de Informtica Aplicada (U.P.V.)

190

Vicente Sancho Guijarro

Proyecto Final de Carrera

Alumno_instalaciones.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php session_start(); if($_SESSION["tipo"] != "Alumno") header("Location: prohibido.php"); require_once ("Alumno_inc.php"); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <script type="text/javascript" src="./js/reservas.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"> <div id="campoHora">&nbsp;</div> </td> </tr> <tr> <td class="menu"> <ul> <li><a href="intranetAlumno.php">Inicio</a></li> <li><a href="Alumno_horario.php">Horario</a></li> <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> <li><a href="Alumno_profes.php">Listado profesores </a></li> <li><a href="Alumno_notas.php">Notas</a></li> <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> <li><a href="Alumno_tablon">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"> <p>Reserva de instalaciones</p> <h3>Instalaciones Reservadas</h3> <table border='1'> <tbody> <?php $ins = listado_reservas_instalaciones(); if ($ins == null) { echo "<tr><td><b>No hay instalaciones reservadas</b></td>< /tr>\n"; echo "</tbody>\n"; } else { echo "<tr>\n"; echo " <th style='width: 140px;'>Instalaci&oacute;n</th> \n"; echo " <th style='width: 100px;'>Fecha</th>\n"; echo " <th style='width: 425px;'>Proposito</th>\n"; echo " <th style='width: 90px;'>Normas</th>\n"; echo " <th style='width: 80px;'>&nbsp;</th>\n"; echo "</tr>\n"; echo "</tbody>\n";

E.T.S. de Informtica Aplicada (U.P.V.)

191

Vicente Sancho Guijarro

Proyecto Final de Carrera

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>

E.T.S. de Informtica Aplicada (U.P.V.)

192

Vicente Sancho Guijarro

Proyecto Final de Carrera

Alumno_reserva.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php session_start(); if($_SESSION["tipo"] != "Alumno") header("Location: prohibido.php"); require_once ("Alumno_inc.php"); ?> <?php //obtener datos enviados por el formulario $dia = $_REQUEST["dia"]; $mes = $_REQUEST["mes"]; $anyo = $_REQUEST["anyo"]; $iditem = $_REQUEST["iditem"]; $motivo = substr($_REQUEST["motivo"], 0, MAX_LENGTH_MOTIVO-1); $item = $_REQUEST["item"]; $login = $_SESSION["id"];

//por $hora $min $seg

si en futuro al reservar se tiene en cuenta la hora(de inicio) = 00; = 00; = 00;

$error = ""; $ano_hoy=date("Y"); //Estan definadas las variables? if (!isset($dia) || $dia < 0 || $dia > 31) { $error = "D&iacute;a no v&aacute;lido<br>\n"; } if (!isset($mes) || $mes < 1 || $mes > 12 ) { $error .= "Mes no v&aacute;lido<br>\n"; } //solo reservas en este ao if ( !isset($anyo) || $anyo != $ano_hoy ) { $error .= "A&ntilde;o no v&aacute;lido<br>\n"; } if (!isset($iditem) || $iditem ==-1 ) { $error .= "Instalaci&oacute;n no v&aacute;lida<br>\n"; } if (!isset($motivo) || strlen($motivo) < 5 ) { $error .= "Motivo insuficiente<br>\n"; } $item1 = INST; if (!isset($item) && (strcmp($item,$item1) != 0 )) { $error .= "Tipo desconocido: $item : <br>\n"; } if (strlen($error) > 1) { $es_valido = false; } else { $es_valido = true; $res = reservar_instalacion($login,$iditem,$dia,$mes,$anyo,$hora,$min, $seg,$motivo, $item); if (!$res) { $es_valido = false; $error = "Se produjo un error inesperado en la reserva de la instalaci&oacute;n<br>\n";

E.T.S. de Informtica Aplicada (U.P.V.)

193

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 } }

Proyecto Final de Carrera

?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <?php //Ruta de retorno que utilizaremos aqui si todo fue bien if ( $es_valido ) { echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=/webcole/Alumno_instalaciones.php\">\n"; } ?> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime(); redirigir();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td width="150" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"> <div id="campoHora">&nbsp;</div> </td> </tr> <tr> <td class="menu"> <ul> <li><a href="intranetAlumno.php">Inicio</a></li> <li><a href="Alumno_horario.php">Horario</a></li> <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> <li><a href="Alumno_profes.php">Listado profesores </a></li> <li><a href="Alumno_notas.php">Notas</a></li> <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> <li><a href="Alumno_tablon">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"><?php //Ruta de retorno que utilizaremos aqui si todo fue bien echo "Se han producido los siguientes errores: <br> $error<br>\n"; echo "<br>\n"; echo "Pulsa <a href='/webcole/Alumno_reservar_instalacion.php'>aqu< /a> para volver al formulario de reserva<br>\n"; ?></td> <td class="general">&nbsp;</td> </tr> <tr> <td> <p><?php //include("bd.php"); $dp = Conectar(); $sql = 'SELECT * FROM usuario WHERE login ="' . $_SESSION["id"] . '"'; $resultado = consulta($sql, $dp);

E.T.S. de Informtica Aplicada (U.P.V.)

194

Vicente Sancho Guijarro

Proyecto Final de Carrera

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>

E.T.S. de Informtica Aplicada (U.P.V.)

195

Vicente Sancho Guijarro

Proyecto Final de Carrera

Alumno_reservar_instalacion.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php session_start(); if($_SESSION["tipo"] != "Alumno") header("Location: prohibido.php"); require_once "Alumno_inc.php"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <link href="css/calendario.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <script type="text/javascript" src="./js/reservas.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"> <div id="campoHora">&nbsp;</div> </td> </tr> <tr> <td class="menu"> <ul> <li><a href="intranetAlumno.php">Inicio</a></li> <li><a href="Alumno_horario.php">Horario</a></li> <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> <li><a href="Alumno_profes.php">Listado profesores </a></li> <li><a href="Alumno_notas.php">Notas</a></li> <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> <li><a href="Alumno_tablon">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general">Intranet Alumno <form method="get" action="/webcole/Alumno_reserva.php" name="reservar"> <?php echo "<input type='hidden' name='item' value='" . INST . "' />\n"; ?> <table style="text-align: left; width: 700px; height: 284px;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="width: 300px; text-align: right;"><span style="font-weight: bold; text-align: right;"> Selecciona una instalaci&oacute;n</span></td> <td style="width: 400px; text-align: left;"><select name="iditem" onchange="javascript:redirigir('<?php echo ALUM; ?> ', '<?php echo strtolower(INST); ?>');"> <option value='-1'>Selecciona una instalaci&oacute; n</option> <?php //Comprobamos si llegamos aqui despues de elegir una instalacion $iditem = $_REQUEST["iditem"];

E.T.S. de Informtica Aplicada (U.P.V.)

196

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

Proyecto Final de Carrera

if (!isset($iditem)) $iditem = -1; $ins = listado_instalacion(); foreach ($ins as $actual) { if ($actual["idinstalacion"] == $iditem) { echo "<option value='" . $actual[ "idinstalacion"]. "' selected='selected'>" . $actual["instalacion"] . "</option>\n"; } else { echo "<option value='" . $actual[ "idinstalacion"]. "'>" . $actual[ "instalacion"] . "</option>\n"; } } ?> </select></td> </tr> <tr> <td style="width: 200px; text-align: right;"><span style="font-weight: bold; ">Selecciona una fecha< /span></td> <td style="width: 400px;"><?php require_once ("calendario_ins.php"); //if (!$HTTP_POST_VARS && !$HTTP_GET_VARS){ if ((!isset($_GET["nuevo_mes"])) || (!isset($_GET[ "nuevo_mes"])) || (!isset($_GET["nuevo_mes"]))) { //echo "http no definidos<br>\n"; $tiempo_actual = time(); $mes = date("n", $tiempo_actual); $ano = date("Y", $tiempo_actual); $dia=date("d"); $fecha=$ano . "-" . $mes . "-" . $dia; }else { //echo "http definidos<br>\n"; $mes = $_GET["nuevo_mes"]; $ano = $_GET["nuevo_ano"]; $dia = $_GET["dia"]; $fecha=$ano . "-" . $mes . "-" . $dia; } if (!isset($dia)) { $dia=date("d"); } if (!isset($mes)) { $mes = date("n", $tiempo_actual); } if (!isset($ano)) { $ano = date("Y", $tiempo_actual); } echo "<input type=\"hidden\" name=\"dia\" value=''/>\n"; echo "<input type=\"hidden\" name='dia_c' value='$dia'/> \n"; echo "<input type=\"hidden\" name='mes' value='$mes'/> \n"; echo "<input type=\"hidden\" name='anyo' value='$ano'/> \n"; $tabla = fecha_reservas($iditem, INST); if (!isset($tabla)) { //utilizamos una variable no inicializada //mostrar_calendario tiene en cuenta si esa variable //no esta inicializada mostrar_calendario($dia_c,$mes,$ano, $variable_no_asignada, INST, ALUM); } else

E.T.S. de Informtica Aplicada (U.P.V.)

197

Vicente Sancho Guijarro

Proyecto Final de Carrera

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>

E.T.S. de Informtica Aplicada (U.P.V.)

198

Vicente Sancho Guijarro

Proyecto Final de Carrera

Alumno_tablon.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php session_start(); if($_SESSION["tipo"] != "Alumno") header("Location: prohibido.php"); require_once ("Alumno_inc.php"); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="3" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="3" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td rowspan="5" class="menu"> <ul> <li><a href="intranetAlumno.php">Inicio</a></li> <li><a href="Alumno_horario.php">Horario</a></li> <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> <li><a href="Alumno_profes.php">Listado profesores </a></li> <li><a href="Alumno_notas.php">Notas</a></li> <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> <li><a href="Alumno_menu.php">Men&uacute; semanal </a></li> <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> <li><a href="Alumno_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td colspan="2" class="general"><h1>Tabl&oacute;n de anuncios </h1> <p>&nbsp;</p></td> <td rowspan="5" class="general">&nbsp;</td> </tr> <?php poner_anuncios_tablon(); ?> <tr> <td></td> <td colspan="2" class="general"><h3>Insertar nuevo anuncio</h3> <form id="form1" method="post" action="Alumno_tablon_insertar.php"> <div> <label> T&iacute;tulo </label> <br /> <input type="text" name="titulo" /> <p> Texto <br /> <label> <textarea name="texto" cols="60" rows="3"></textarea> </label> </p> <p>

E.T.S. de Informtica Aplicada (U.P.V.)

199

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Proyecto Final de Carrera

<label> <input type="submit" name="Submit" value="Insertar" /> </label> </p> </div> </form> <p>&nbsp; </p></td> <td class="general"></td> </tr> <tr> <td> <p> <?php bienvenido(); ?> <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesi&oacute;n</a> </p> </td> <td colspan="3" class="noticias"><h3>Eventos del curso </h3> <?php rellenar_eventos_curso(); ?> </td> </tr> </table> </body> </html>

E.T.S. de Informtica Aplicada (U.P.V.)

200

Vicente Sancho Guijarro

Proyecto Final de Carrera

Alumno_tablon_insertar.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 <?php session_start(); if($_SESSION["tipo"] != "Alumno") header("Location: prohibido.php"); $titulo = $_POST["titulo"]; $texto = $_POST["texto"]; $fecha = date("Y-m-d H:i:s"); include("bd.php"); $conn = Conectar(); $sql = "SELECT * FROM anuncio ORDER BY idanuncio DESC"; $num = consulta($sql,$conn); if($num = siguiente($num)) $idanun= $num["idanuncio"] + 1; else $idanun = 1; $sql = "INSERT INTO `anuncio` ( `idanuncio` , `login` , `fecha` , `titulo` , `texto` ) VALUES ('".$idanun."', '".$_SESSION["id"]."', '".$fecha."', '". $titulo."', '".$texto."')"; $insert = consulta($sql,$conn); //echo "id".$_SESSION["id"]."error: " . mysql_error($conn); Desconectar($conn); ?> <head> <meta http-equiv="refresh" content="3;URL=Alumno_tablon.php"> </head> Insertando...

E.T.S. de Informtica Aplicada (U.P.V.)

201

Vicente Sancho Guijarro

Proyecto Final de Carrera

Alumno_anular_reserva.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php session_start(); if($_SESSION["tipo"] != "Alumno") header("Location: prohibido.php"); require_once "Alumno_inc.php"; // $fecha = urldecode($_REQUEST["fecha"]); $iditem = $_REQUEST["iditem"]; $login = $_SESSION["id"]; $item = $_REQUEST["item"]; $error = ""; $es_valido = true; if ( !isset($login)) { header("Location: /webcole/prohibido.php"); $es_valido = false; } //ya estara en el formato de mysql, //si no es correcto sencillamente no se borrara el registro. if ( !isset($fecha)) { $error .="Error en la Fecha. No valida<br>\n"; $es_valido = false; } if ( !isset($iditem) || $iditem < 1 ) { $error .="Error en el codigo de instalacion. No valido<br>\n"; $es_valido = false; } if ($es_valido) { $resultado = anular_reserva($login, $fecha, $iditem, $item); if (!$resultado) { $error = "Han ocurrido problemas durante la anulacion de la reserva <br>\n"; $es_valido = false; } } else { $error = "Han ocurrido errores en los parametros de anulacion<br>\n" . $error; //echo $error; $es_valido = false; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <?php if ($es_valido) echo "<meta http-equiv=\"refresh\" content=\"5;URL=Alumno_instalaciones. php\" />\n"; ?> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td width="150" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td>

E.T.S. de Informtica Aplicada (U.P.V.)

202

Vicente Sancho Guijarro

Proyecto Final de Carrera

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>

E.T.S. de Informtica Aplicada (U.P.V.)

203

Vicente Sancho Guijarro

Proyecto Final de Carrera

calendario_faltas.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php include_once("bd.php"); function calcula_numero_dia_semana($dia,$mes,$ano){ $numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano)); if ($numerodiasemana == 0) $numerodiasemana = 6; else $numerodiasemana--; return $numerodiasemana; } //funcion que devuelve el ltimo da de un mes y ao dados function ultimoDia($mes,$ano){ $ultimo_dia=28; while (checkdate($mes,$ultimo_dia + 1,$ano)){ $ultimo_dia++; } return $ultimo_dia; } function dame_nombre_mes($mes){ switch ($mes){ case 1: $nombre_mes="Enero"; break; case 2: $nombre_mes="Febrero"; break; case 3: $nombre_mes="Marzo"; break; case 4: $nombre_mes="Abril"; break; case 5: $nombre_mes="Mayo"; break; case 6: $nombre_mes="Junio"; break; case 7: $nombre_mes="Julio"; break; case 8: $nombre_mes="Agosto"; break; case 9: $nombre_mes="Septiembre"; break; case 10: $nombre_mes="Octubre"; break; case 11: $nombre_mes="Noviembre"; break; case 12: $nombre_mes="Diciembre"; break; } return $nombre_mes; } //Muestra el calendario, puede recibir una tablas con fechas //en que una instalacion ha sido reservada, en este caso marcar dichas //fechas en el calencia function mostrar_calendario($dia,$mes,$ano){ $mes_hoy=date("m"); $ano_hoy=date("Y"); $parametros_formulario = "formulario=" . $_GET["formulario"] . "&nomcampo=" . $_GET["nomcampo"];

E.T.S. de Informtica Aplicada (U.P.V.)

204

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

Proyecto Final de Carrera

//obtenemos if (($mes_hoy <> $mes) || ($ano_hoy <> $ano)) { $hoy=0; } else { $hoy=date("d"); } //tomo el nombre del mes que hay que imprimir $nombre_mes = dame_nombre_mes($mes); //construyo la cabecera de la tabla echo "<table width='200px' cellspacing='3' cellpadding='2' border='0'>< tr><td colspan='7' align='center' class='tit'>"; echo "<table width='100%' cellspacing='2' cellpadding='2' border='0'>< tr><td style='font-size:10pt;font-weight:bold;color:white'>"; //calculo el mes y ano del mes anterior $mes_anterior = $mes - 1; $ano_anterior = $ano; if ($mes_anterior==0){ $ano_anterior--; $mes_anterior=12; } echo "<a style='color:white;text-decoration:none' href='calendario_faltas.php?$parametros_formulario&amp;dia=$dia&amp; nuevo_mes=$mes_anterior&amp;nuevo_ano=$ano_anterior'>&lt;&lt;</a></td>"; echo "<td align=center class=tit>$nombre_mes $ano</td>"; echo "<td align=right style=font-size:10pt;font-weight:bold;color: white>"; //calculo el mes y ano del mes siguiente $mes_siguiente = $mes + 1; $ano_siguiente = $ano; if ($mes_siguiente==13){ $ano_siguiente++; $mes_siguiente=01; } echo "<a style='color:white;text-decoration:none' href='calendario_faltas.php?$parametros_formulario&amp;dia=$dia&amp; nuevo_mes=$mes_siguiente&amp;nuevo_ano=$ano_siguiente'>&gt;&gt;</a></td> </tr></table></td></tr>"; echo ' <tr> <td style="width: 14%;text-align: center ;" class="altn">Lu< /td> <td style="width: 14%;text-align: center ;" class="altn">Ma< /td> <td style="width: 14%;text-align: center ;" class="altn">Mi< /td> <td style="width: 14%;text-align: center ;" class="altn">Ju< /td> <td style="width: 14%;text-align: center ;" class="altn">Vi< /td> <td style="width: 14%;text-align: center ;" class="altn">Sa< /td> <td style="width: 14%;text-align: center ;" class="altn">Do< /td> </tr>'; //Variable para llevar la cuenta del dia actual $dia_actual = 1; //calculo el numero del dia de la semana del primer dia $numero_dia = calcula_numero_dia_semana(1,$mes,$ano); //echo "Numero del dia de demana del primer: $numero_dia <br>"; //calculo el ltimo dia del mes $ultimo_dia = ultimoDia($mes,$ano); $nodis = array(); //comprobamos si la variable con las fechas reservadas esta inicializada if (isset($reservas)) { //eliminamos las reservas que nos son del actual anyo y mes

E.T.S. de Informtica Aplicada (U.P.V.)

205

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 dems das 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>

E.T.S. de Informtica Aplicada (U.P.V.)

206

Vicente Sancho Guijarro


228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304

Proyecto Final de Carrera

if ($numero_dia == 0) echo "<tr>"; //si es el utimo de la semana, me pongo al principio de la semana y escribo el </tr> //De momento no se permite reservar una instalacion los //fines de semana if (($numero_dia == 5) || ($numero_dia == 6)) { if (in_array($dia_actual, $nodis )) { echo "<td class='nd'>$dia_actual</td>\n"; } else if ($dia_actual == $hoy) { //echo "<td class=da><a href=calendario. php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> $dia_actual</a></td>"; echo "<td class='da'>$dia_actual</td>\n"; } else if ($dia_actual == $dia) //Dia seleccionado { //echo "<td class=da><a href=calendario. php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> $dia_actual</a></td>"; echo "<td class='da'>$dia_actual</td>\n"; } else { //echo "<td class=fs ><a href=calendario. php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> $dia_actual</a></td>"; echo "<td class='da'>$dia_actual</td>\n"; } } else { if (in_array($dia_actual, $nodis )) { echo "<td class='nd'>$dia_actual</td>\n"; } else if ($dia_actual == $hoy) { echo "<td class='laborable' ><a href='javascript: devuelveFecha($dia_actual,$mes,$ano)'>$dia_actual</a>< /td>\n"; } else if ($dia_actual == $dia) //Dia seleccionado { echo "<td class='laborable' ><a href='javascript: devuelveFecha($dia_actual,$mes,$ano)'>$dia_actual</a>< /td>\n"; } else { echo "<td class='laborable' ><a href='javascript: devuelveFecha($dia_actual,$mes,$ano)'>$dia_actual</a>< /td>\n"; } } $dia_actual++; $numero_dia++; if ($numero_dia == 7) { $numero_dia = 0; echo "</tr>\n"; } } //compruebo que celdas me faltan por escribir vacias de la ltima semana del mes

E.T.S. de Informtica Aplicada (U.P.V.)

207

Vicente Sancho Guijarro


305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 for ($i=$numero_dia;$i<7;$i++){ echo "<td></td>\n"; } echo "</tr>\n"; echo "</table>\n";

Proyecto Final de Carrera

//echo "<input type='hidden' name='mes2' value='$mes' />\n"; //echo "<input type='hidden' name='anyo2' value='$ano' />\n"; } if (!$HTTP_POST_VARS && !$HTTP_GET_VARS){ $tiempo_actual = time(); $mes = date("n", $tiempo_actual); $ano = date("Y", $tiempo_actual); $dia=date("d"); $fecha=$ano . "-" . $mes . "-" . $dia; }else { $mes = $_GET["nuevo_mes"]; $ano = $_GET["nuevo_ano"]; $dia = $_GET["dia"]; if ( !isset ($mes) || !isset ($ano) || !isset ($dia) { $tiempo_actual = time(); $mes = date("n", $tiempo_actual); $ano = date("Y", $tiempo_actual); $dia=date("d"); } $fecha=$ano . "-" . $mes . "-" . $dia; } //echo"Fecha Seleccionada <input type=text name=fecha value=$fecha>"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <link href="css/calendario.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> function devuelveFecha(dia,mes,ano) { //Se encarga de escribir en el formulario adecuado los valores seleccionados //tambin debe cerrar la ventana del calendario var formulario_destino = '<?echo $_GET["formulario"]?>'; var campo_destino = '<?echo $_GET["nomcampo"]?>'; //meto el dia eval ("opener.document." + formulario_destino + "." + campo_destino + ". value='" + dia + "-" + mes + "-" + ano + "'") eval ("opener.document." + formulario_destino + "." + campo_destino + ". focus()"); window.close(); } </script> </head> <body> <? mostrar_calendario($dia,$mes,$ano); ?> </body> </html> )

E.T.S. de Informtica Aplicada (U.P.V.)

208

Vicente Sancho Guijarro

Proyecto Final de Carrera

calendario_ins.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php include_once("bd.php"); function calcula_numero_dia_semana($dia,$mes,$ano){ $numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano)); if ($numerodiasemana == 0) $numerodiasemana = 6; else $numerodiasemana--; return $numerodiasemana; } //funcion que devuelve el ltimo da de un mes y ao dados function ultimoDia($mes,$ano){ $ultimo_dia=28; while (checkdate($mes,$ultimo_dia + 1,$ano)){ $ultimo_dia++; } return $ultimo_dia; } function dame_nombre_mes($mes){ switch ($mes){ case 1: $nombre_mes="Enero"; break; case 2: $nombre_mes="Febrero"; break; case 3: $nombre_mes="Marzo"; break; case 4: $nombre_mes="Abril"; break; case 5: $nombre_mes="Mayo"; break; case 6: $nombre_mes="Junio"; break; case 7: $nombre_mes="Julio"; break; case 8: $nombre_mes="Agosto"; break; case 9: $nombre_mes="Septiembre"; break; case 10: $nombre_mes="Octubre"; break; case 11: $nombre_mes="Noviembre"; break; case 12: $nombre_mes="Diciembre"; break; } return $nombre_mes; } //Muestra el calendario, puede recibir una tablas con fechas //en que una instalacion ha sido reservada, en este caso marcar dichas //fechas en el calencia function mostrar_calendario($dia,$mes,$ano, $reservas, $tipo, $usuario){ $mes_hoy=date("m"); $ano_hoy=date("Y"); if (strcmp($tipo, INST) == 0 ) { $url= $usuario . "_reservar_instalacion.php";

E.T.S. de Informtica Aplicada (U.P.V.)

209

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 } else //aqui solo puede llegar los profesores { $url="Profesor_reservar_equipacion.php"; }

Proyecto Final de Carrera

//obtenemos if (($mes_hoy <> $mes) || ($ano_hoy <> $ano)) { $hoy=0; } else { $hoy=date("d"); } //tomo el nombre del mes que hay que imprimir $nombre_mes = dame_nombre_mes($mes); //construyo la cabecera de la tabla echo "<table width=200 cellspacing=3 cellpadding=2 border=0><tr><td colspan=7 align=center class=tit>"; echo "<table width=100% cellspacing=2 cellpadding=2 border=0><tr><td style=font-size:10pt;font-weight:bold;color:white>"; //calculo el mes y ano del mes anterior $mes_anterior = $mes - 1; $ano_anterior = $ano; if ($mes_anterior==0){ $ano_anterior--; $mes_anterior=12; } echo "<a style=color:white;text-decoration:none href=$url?dia=$dia&nuevo_mes=$mes_anterior&nuevo_ano=$ano_anterior>&lt; &lt;</a></td>"; echo "<td align=center class=tit>$nombre_mes $ano</td>"; echo "<td align=right style=font-size:10pt;font-weight:bold;color: white>"; //calculo el mes y ano del mes siguiente $mes_siguiente = $mes + 1; $ano_siguiente = $ano; if ($mes_siguiente==13){ $ano_siguiente++; $mes_siguiente=01; } echo "<a style=color:white;text-decoration:none href=$url?dia=$dia&nuevo_mes=$mes_siguiente&nuevo_ano=$ano_siguiente> &gt;&gt;</a></td></tr></table></td></tr>"; echo ' <tr> <td width=14% align=center class=altn>Lu</td> <td width=14% align=center class=altn>Ma</td> <td width=14% align=center class=altn>Mi</td> <td width=14% align=center class=altn>Ju</td> <td width=14% align=center class=altn>Vi</td> <td width=14% align=center class=altn>Sa</td> <td width=14% align=center class=altn>Do</td> </tr>'; //Variable para llevar la cuenta del dia actual $dia_actual = 1; //calculo el numero del dia de la semana del primer dia $numero_dia = calcula_numero_dia_semana(1,$mes,$ano); //echo "Numero del dia de demana del primer: $numero_dia <br>"; //calculo el ltimo dia del mes $ultimo_dia = ultimoDia($mes,$ano); $nodis = array(); //comprobamos si la variable con las fechas reservadas esta inicializada if (isset($reservas)) { //eliminamos las reservas que nos son del actual anyo y mes foreach ( $reservas as $actual) {

E.T.S. de Informtica Aplicada (U.P.V.)

210

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 dems das 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 utimo de la semana, me pongo al principio de la semana 226 y escribo el </tr> 227

E.T.S. de Informtica Aplicada (U.P.V.)

211

Vicente Sancho Guijarro


228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304

Proyecto Final de Carrera

//De momento no se permite reservar una instalacion los //fines de semana if (($numero_dia == 5) || ($numero_dia == 6)) { if (in_array($dia_actual, $nodis )) { echo "<td class=nd>$dia_actual</td>\n"; } else if ($dia_actual == $hoy) { //echo "<td class=da><a href=calendario. php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> $dia_actual</a></td>"; echo "<td class=da>$dia_actual</td>\n"; } else if ($dia_actual == $dia) //Dia seleccionado { //echo "<td class=da><a href=calendario. php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> $dia_actual</a></td>"; echo "<td class=da>$dia_actual</td>\n"; } else { //echo "<td class=fs ><a href=calendario. php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> $dia_actual</a></td>"; echo "<td class=da>$dia_actual</td>\n"; } } else { if (in_array($dia_actual, $nodis )) { echo "<td class=nd>$dia_actual</td>\n"; } else if ($dia_actual == $hoy) { echo "<td class=laborable ><a href='javascript:cambiar( $dia_actual);'>$dia_actual</a></td>\n"; } else if ($dia_actual == $dia) //Dia seleccionado { echo "<td class=laborable ><a href='javascript:cambiar( $dia_actual);'>$dia_actual</a></td>\n"; } else { echo "<td class=laborable ><a href='javascript:cambiar( $dia_actual);'>$dia_actual</a></td>\n"; } } $dia_actual++; $numero_dia++; if ($numero_dia == 7) { $numero_dia = 0; echo "</tr>\n"; } } //compruebo que celdas me faltan por escribir vacias de la ltima semana del mes for ($i=$numero_dia;$i<7;$i++){ echo "<td></td>\n"; } echo "</tr>\n"; echo "</table>\n"; //echo "<input type='hidden' name='mes2' value='$mes' />\n";

E.T.S. de Informtica Aplicada (U.P.V.)

212

Vicente Sancho Guijarro


305 306 }

Proyecto Final de Carrera

//echo "<input type='hidden' name='anyo2' value='$ano' />\n";

E.T.S. de Informtica Aplicada (U.P.V.)

213

Vicente Sancho Guijarro

Proyecto Final de Carrera

profesor_inc.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php define define define define define (INST, "INSTALACION"); (EQUIP, "EQUIPACION"); (PROFE, "Profesor"); (TRIMESTRE, 4); (CLAVE_REPETIDA, 1062);

require_once "bd.php";

session_start(); if($_SESSION["tipo"] != "Profesor") header("Location: prohibido.php"); //el maximo de la longitud del motivo para reservar una instalacion //o equipamiento. Solo habra que cambiarlo de aqui //el maximo que podria soportar la tabla en mysql es de 65535 caracteres define( MAX_LENGTH_MOTIVO, 1500); //devuelve una tabla con el id de las instalaciones, //el nombre de la instalacion y las normas //Acceso: // idinstalacion => id de la instalacion // instalacion => nombre de la instalacion // normas => ruta para llegar a las normas de la instalacion // (no contiene las normas, apunta al fichero // que las tiene) function listado_instalacion() { $link = Conectar(); $sql = "SELECT * FROM instalacion"; //ejecutamos la consulta $resultado = consulta ($sql, $link); //sacamos los valores que nos interesan de los //resultados (en este caso todos) $i = 0; while ($fila = siguiente($resultado)) { $tabla[$i]["idinstalacion"] = $fila["idinstalacion"]; $tabla[$i]["instalacion"] = $fila["instalacion"]; $tabla[$i++]["normas"] = $fila["normas"]; } Desconectar ($link); return $tabla; } //devuelve una tabla con el id de las equipaciones, //el nombre de la equipacion y las normas //Acceso: // idequipacion => id de la equipacion // equipacion => nombre de la equipacion // normas => ruta para llegar a las normas de la equipacion // (no contiene las normas, apunta al fichero // que las tiene) function listado_equipacion() { $link = Conectar(); $sql = "SELECT * FROM equipacion"; //ejecutamos la consulta $resultado = consulta ($sql, $link); //sacamos los valores que nos interesan de los //resultados (en este caso todos) $i = 0; while ($fila = siguiente($resultado)) { $tabla[$i]["idequipacion"] = $fila["idequipacion"]; $tabla[$i]["equipacion"] = $fila["equipacion"];

E.T.S. de Informtica Aplicada (U.P.V.)

214

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 $tabla[$i++]["normas"] = $fila["normas"]; } Desconectar ($link); return $tabla; }

Proyecto Final de Carrera

//Devuelve una tabla con las reservas de instalaciones que //ha efectuado el usuario. //El usuario se obtiene de la sesion iniciada //Acceso: // idinst => id de la instalacion // instalacion => nombre de la instalacion // normas => ruta para llegar a las normas de la instalacion // (no contiene las normas, apunta al fichero // que las tiene) // fecha => fecha de la reserva con formato "mm-dd-aa hh:mm:ss" // proposito => Motivo de la reserva (introducido por el usuario // cuando realiza la reserva. function listado_reservas_instalaciones() { $link = Conectar(); $sql = "SELECT * FROM res_ins WHERE login = '" . $_SESSION["id"] ."'"; //ejecutamos la consulta $resultado = consulta ($sql, $link); //sacamos los valores que nos interesan de los //resultados (en este caso todos) $i = 0; $tabla = null; while ($fila = siguiente($resultado)) { $tabla[$i]["fecha"] = $fila["fecha"]; //$tabla[$i]["fecha"] = $fila["fecha"]; $tabla[$i]["proposito"] = $fila["proposito"]; $sql_ins = "SELECT * FROM instalacion WHERE idinstalacion = '" . $fila["idinstalacion"] . "'"; $res_ins = consulta ($sql_ins, $link); $ins = siguiente($res_ins); if ($ins) { $tabla[$i]["idinst"] = $ins["idinstalacion"]; $tabla[$i]["instalacion"] = $ins["instalacion"]; $tabla[$i++]["normas"] = $ins["normas"]; } else { $tabla[$i]["idinst"] = -1; $tabla[$i]["instalacion"] = "Instalacion desconocida"; $tabla[$i++]["normas"] = "Normas no encontradas"; } } Desconectar ($link); return $tabla; } //Devuelve una tabla con las reservas de equipamientos que //ha efectuado el usuario. //El usuario se obtiene de la sesion iniciada //Acceso: // idequi => id de la equipacion // equipacion => nombre de la equipacion // normas => ruta para llegar a las normas de la equipacion // (no contiene las normas, apunta al fichero // que las tiene) // fecha => fecha de la reserva con formato "mm-dd-aa hh:mm:ss" // proposito => Motivo de la reserva (introducido por el usuario // cuando realiza la reserva. function listado_reservas_equipaciones() { $link = Conectar(); $sql = "SELECT * FROM res_equi WHERE login = '" . $_SESSION["id"] ."'"; //ejecutamos la consulta

E.T.S. de Informtica Aplicada (U.P.V.)

215

Vicente Sancho Guijarro


151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 $resultado = consulta ($sql, $link); //sacamos los valores que nos interesan de los //resultados (en este caso todos) $i = 0; $tabla = null; while ($fila = siguiente($resultado)) { $tabla[$i]["fecha"] = $fila["fecha"]; //$tabla[$i]["fecha"] = $fila["fecha"]; $tabla[$i]["proposito"] = $fila["proposito"];

Proyecto Final de Carrera

$sql_ins = "SELECT * FROM equipacion WHERE idequipacion = '" . $fila["idequipacion"] . "'"; $res_ins = consulta ($sql_ins, $link); $ins = siguiente($res_ins); if ($ins) { $tabla[$i]["idequipacion"] = $ins["idequipacion"]; $tabla[$i]["equipacion"] = $ins["equipacion"]; $tabla[$i++]["normas"] = $ins["normas"]; } else { $tabla[$i]["idequipacion"] = -1; $tabla[$i]["equipacion"] = "Equipacion desconocida"; $tabla[$i++]["normas"] = "Normas no encontradas"; } } Desconectar ($link); return $tabla; }

//Esta funcion elimina una reserva del usuario dado una fecha y el //id del item y el tipo (instalacion o equipamiento function anular_reserva($login, $fecha, $iditem, $item) { $link = Conectar(); if ($item == INST) { $sql = "DELETE FROM `res_ins` WHERE CONVERT(`res_ins`.`login` USING utf8)='$login' AND `res_ins`.`idinstalacion`=$iditem AND `res_ins`.`fecha`='$fecha' "; } else { $sql = "DELETE FROM `res_equi` WHERE CONVERT(`res_equi`.`login` USING utf8)='$login' AND `res_equi`.`idequipacion`=$iditem AND `res_equi`.`fecha`='$fecha' "; } $result = consulta ($sql, $link); $correcto =false; if($result) { $filas = mysql_affected_rows(); if ( $filas == 0 ) { //echo "La reserva ya hab&iacute;a sido eliminada"; $correcto =false; } else { //echo "La reserva ha sido eliminada"; $correcto =true; } } else { //echo"<p>Operacion NO efectuada</p>\n"; //echo"<p>Error: " . mysql_error($link) . "</p>\n"; //echo"SQL: $sql";

E.T.S. de Informtica Aplicada (U.P.V.)

216

Vicente Sancho Guijarro


228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 $correcto =false; } Desconectar ($link); return $correcto; }

Proyecto Final de Carrera

//Obtiene los dias en que esta reservado una instalacion dada //Devuelve una tabla con las fechas //Acceso: // dia // mes // anyo //Parametros recibido // id de una instalacion function fecha_reservas($iditem, $item) { if ( !isset($iditem) || $iditem == -1) { //echo "id instalacion no definido<br>\n"; return; } $link = Conectar(); if ($item == INST) { $sql = "SELECT fecha FROM `res_ins` WHERE `res_ins`.`idinstalacion`=$iditem" ; } else { $sql = "SELECT fecha FROM `res_equi` WHERE `res_equi`.`idequipacion`=$iditem" ; } $result = consulta ($sql, $link); //sacamos los valores que nos interesan de los //resultados (en este caso todos) $i = 0; $tabla; while ($fila = siguiente($result)) { $fecha = sacarFecha($fila["fecha"]); $trozo = explode ("-", $fecha); //echo " fecha: " . $fecha . "\n<br>"; $tabla[$i]["dia"] = $trozo[0]; $tabla[$i]["mes"] = $trozo[1]; $tabla[$i++]["anyo"] = $trozo[2]; } Desconectar ($link); return $tabla; } //Permite hacer una reserva //Recibe como parametros //Login del usuario, fecha(dia, mes, anyo) y hora(hora, min, seg) //el codigo del item a reservar (puede ser una instalacion o un //equipamiento y el motivo //Devuelve: // True si reveserva se pudo hacer // Falso en caso contrario function reservar_instalacion($login,$iditem,$dia,$mes,$anyo,$hora,$min, $seg,$motivo, $item) { $fecha = $anyo . "-" . $mes . "-" . $dia . " " . $hora . ":" . $min . ": " . $seg; $link = Conectar(); /*$sql = "INSERT INTO `webcole`.`res_ins` (`login`, `idinstalacion`, `fecha`, `proposito`) VALUES (\'$login\',

E.T.S. de Informtica Aplicada (U.P.V.)

217

Vicente Sancho Guijarro


305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 \'$idins\', \'$fecha\', \'$motivo\');"; */ if ($item == INST) { $sql = "INSERT INTO `webcole`.`res_ins` (`login`, `idinstalacion`, `fecha`, `proposito`) VALUES ('$login', '$iditem', '$fecha', '$motivo');"; } else { $sql = "INSERT INTO `webcole`.`res_equi` (`login`, `idequipacion`, `fecha`, `proposito`) VALUES ('$login', '$iditem', '$fecha', '$motivo');"; } $result = consulta ($sql, $link); echo "error: " . mysql_error($link); Desconectar ($link); return $result; }

Proyecto Final de Carrera

//Obtiene el listado de todos los profesores del centro //Devuelve una tabla con la informacion de los profesores // Nombre : Nombre // apellido1 : Primer apellido del profesor // apellido2 : Segundo apellido del profesor // email : Direccion de correo del profesor // tutorias : Las tutorias del profesor function listado_profesores() { $link = Conectar(); $sql = "SELECT u.nombre, u.apellido1, u.apellido2, p.email, p.tutorias FROM profesor p, usuario u WHERE p.login=u.login ORDER BY u.apellido1"; //ejecutamos la consulta $resultado = consulta ($sql, $link); //echo "error: " . mysql_error($link); //sacamos los valores que nos interesan de los //resultados (en este caso todos) $i = 0; $tabla = null; while ($fila = siguiente($resultado)) { $tabla[$i]["nombre"] = $fila["nombre"]; $tabla[$i]["apellido1"] = $fila["apellido1"]; $tabla[$i]["apellido2"] = $fila["apellido2"]; $tabla[$i]["email"] = $fila["email"]; if ($fila["tutorias"] == "null") { $tabla[$i]["tutorias"] = "Sin tutorias"; } else { $tabla[$i]["tutorias"] = $fila["tutorias"]; } $i++; } Desconectar ($link);

E.T.S. de Informtica Aplicada (U.P.V.)

218

Vicente Sancho Guijarro


382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 return $tabla; } //Obtiene las asignaturas del profesor function asignaturas_profesor () { $login = $_SESSION["id"];

Proyecto Final de Carrera

$link = Conectar(); $sql = "SELECT asignatura FROM imparte WHERE profesor='$login'"; //ejecutamos la consulta $resultado = consulta ($sql, $link); $i = 0; $tabla = null; //recorremos los resultados while ($fila = siguiente($resultado)) { $tabla[$i]["codasig"] = $fila["asignatura"]; //por cada asignatura sacamos sus datos $sql_asig = "SELECT nombre, curso, horario FROM asignatura WHERE codigoasignatura=" . $tabla[$i]["codasig"]; $res_asig = consulta ($sql_asig, $link); while ($fila_asig = siguiente($res_asig)) { $tabla[$i]["nombre"] = $fila_asig["nombre"]; $tabla[$i]["curso"] = $fila_asig["curso"]; $tabla[$i]["horario"] = $fila_asig["horario"]; } $i++; } desconectar($link); return $tabla; } //Obtiene los datos de la asignatura que se le pasa como parametro function obtener_datos_asignatura($codasig) { $login = $_SESSION["id"]; $link = Conectar(); $sql = "SELECT nombre, curso, horario FROM asignatura WHERE codigoasignatura='$codasig'"; //ejecutamos la consulta $resultado = consulta ($sql, $link); $fila = siguiente($resultado); if ($fila) { $tabla["codasig"] = $codasig; $tabla["nombre"] = $fila["nombre"]; $tabla["curso"] = $fila["curso"]; $tabla["horario"] = $fila["horario"]; } else { //posible error en el codigo de la asignatura mejor volver ya= return ; } $sql = "SELECT letra FROM impartida WHERE asignatura='$codasig'"; //ejecutamos la consulta $resultado = consulta ($sql, $link); $fila = siguiente($resultado); if ($fila) { $tabla["letra"] = $fila["letra"]; } else { echo "fallo la letra. Error: " . mysql_error();

E.T.S. de Informtica Aplicada (U.P.V.)

219

Vicente Sancho Guijarro


459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535

Proyecto Final de Carrera

} $sql = "SELECT aula FROM grupo WHERE curso='" . $tabla["curso"] . "' and letra='" . $tabla[ "letra"] . "'"; //ejecutamos la consulta $resultado = consulta ($sql, $link); $fila = siguiente($resultado); if ($fila) { $tabla["aula"] = $fila["aula"]; } else { echo "fallo el aula. Error: " . mysql_error(); }

desconectar($link); return $tabla; } function obtener_alumnos_asignatura($codasig) { $link = Conectar(); $sql = "SELECT curso, letra FROM impartida WHERE asignatura='$codasig'"; //ejecutamos la consulta $resultado = consulta ($sql, $link); $fila = siguiente($resultado); if ($fila) { $letra = $fila["letra"]; $curso = $fila["curso"]; } else { echo "fallo la letra. Error: " . mysql_error(); return; } //obtener los datos de los alumnos que estan en ese curso y letra $sql_alumnos = "SELECT usu.apellido1, usu.apellido2, usu.nombre, usu. login FROM usuario usu, alumno alu WHERE alu.curso=$curso and alu.letra='$letra' and alu. login=usu.login ORDER BY usu.apellido1"; $res_alumno = consulta ($sql_alumnos, $link);

while ($fila_alu = siguiente($res_alumno)) { $tabla[$i]["nombre"] $tabla[$i]["apellido1"] $tabla[$i]["apellido2"] $tabla[$i]["login"] $i++; } desconectar($link); return $tabla; } function poner_nota($alumno,$codasig, $trimestre, $nota) { $datos = obtener_datos_asignatura($codasig); $link = Conectar(); $sql = "INSERT INTO `webcole`.`nota` (`alumno`, `asignatura`, `curso`, `trimestre`, `nota`) VALUES ('$alumno', '$codasig', '" . $datos["curso"] . "', '$trimestre', '$nota');"; = = = = $fila_alu["nombre"]; $fila_alu["apellido1"]; $fila_alu["apellido2"]; $fila_alu["login"];

E.T.S. de Informtica Aplicada (U.P.V.)

220

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 }

E.T.S. de Informtica Aplicada (U.P.V.)

221

Vicente Sancho Guijarro


613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 else {

Proyecto Final de Carrera

$tabla[$i]["nota"] = $fila[""]; } $tabla[$i]["nombre"] = $fila_alu["nombre"]; $tabla[$i]["apellido1"] = $fila_alu["apellido1"]; $tabla[$i]["apellido2"] = $fila_alu["apellido2"]; $tabla[$i]["login"] = $fila_alu["login"]; $i++; //echo "fallo la nota. Error: " . mysql_error(); //echo "login vale : " . $fila_alu["login"] . "<br>\n"; //echo " sql vale: $sql_nota <br>\n"; } } else { echo "Se produjo un error al acceder a las notas del alumno<br>\n"; } desconectar($link); return $tabla; } function obtener_faltas_alumnos ($codasig, $fecha) { $alumnos = obtener_alumnos_asignatura($codasig); if (isset($fecha)) { $fecha_mysql = cambiar_a_date($fecha); } else { $fecha_mysql = "0000-00-00"; } $link = Conectar(); $lon = count($alumnos); foreach ($alumnos as $actual) { $sql = "SELECT justificada FROM faltaasistencia WHERE asignatura='$codasig' and fecha='$fecha_mysql' and alumno='" . $actual["login"]."'"; //ejecutamos la consulta $tabla[$i] = $actual; $resultado = consulta ($sql, $link); $fila = siguiente($resultado); if ($fila) { $tabla[$i]["justificada"] = $fila["justificada"]; $tabla[$i]["fecha"] = $fecha; } else { $tabla[$i]["justificada"] = ""; $tabla[$i]["fecha"] = ""; } $i++; } desconectar($link); return $tabla; } //Se recibe una fecha en formato dd-mm-aaaa //Se devuelve una fecha en formato aaaa-mm-dd function cambiar_a_date($fecha) { //$nuevafecha = ""; $separada = explode("-", $fecha); $nuevafecha = $separada[2] . "-" . $separada[1] . "-"; if ($separada[0] < 10) { $separada[0] = "0" . $separada[0];

E.T.S. de Informtica Aplicada (U.P.V.)

222

Vicente Sancho Guijarro


690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 } $nuevafecha .= $separada[0]; // echo "nueva fecha vale: $nuevafecha<br>\n"; return $nuevafecha; } function poner_falta($login, $codasig, $fecha, $just) { $link = Conectar(); $fecmysql = cambiar_a_date($fecha);

Proyecto Final de Carrera

$sql = "INSERT INTO `webcole`.`faltaasistencia` (`alumno`, `asignatura`, `fecha`, `justificada`) VALUES ('$login', '$codasig', '$fecmysql', '$just');"; echo "login vale: $login<br>\n"; $result = consulta ($sql, $link); if (!$result) { echo "error: " . mysql_error($link) . " codigo: " . mysql_errno(); //si el error devuelto es CLAVE_REPETIDA, entonces el alumno ya habia sido //puntuado, por tanto deberemos actualizar la nota. if ( mysql_errno() == CLAVE_REPETIDA) { echo "actualizando la falta del login: $login<br>\n"; $sql_actualizar = "UPDATE `webcole`.`faltaasistencia` SET `justificada` = '$just' WHERE CONVERT(`faltaasistencia`.`alumno` USING utf8) = '$login' AND `faltaasistencia`.`asignatura` = $codasig AND `faltaasistencia`.`fecha` = '$fecmysql' LIMIT 1;"; $res_actualizar = consulta ($sql_actualizar, $link); if ( !$res_actualizar ) { echo "Se produjo un error cuando se estaba actualizando la nota del alumno $login<br>\n"; echo "error: " . mysql_error($link) . " codigo: " . mysql_errno(); } } } else { echo "ocurrio algo raro: " } Desconectar ($link); return $result; } function quitar_falta($login, $codasig, $fecha) { echo " se esta quitando una falta...<br>\n"; $fecha_mysql = cambiar_a_date($fecha); $link = Conectar(); $sql= "DELETE FROM `faltaasistencia` WHERE CONVERT(`faltaasistencia`.`alumno` USING utf8)= '$login' AND `faltaasistencia`.`asignatura` = $codasig AND `faltaasistencia`.`fecha` = '$fecha_mysql'"; $resultado = consulta ($sql, $link); if ( !$resultado ) { echo "Se produjo un error cuando se estaba eliminado la falta de asistencia del alumno $login<br>\n"; echo "error: " . mysql_error($link) . " codigo: " . mysql_errno(); } Desconectar ($link); } //Funcion que devuelve los grupos que son tutorizados por un profesor. //el login del profesor lo obtenemos directamente de la sesion. . mysql_error($link) . "<br>\n";

E.T.S. de Informtica Aplicada (U.P.V.)

223

Vicente Sancho Guijarro


767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843

Proyecto Final de Carrera

//Se devuelve una tabla con todos los datos del grupo tutorizado function obtener_grupos_tutorizados() { $login = $_SESSION["id"]; /* $link = Conectar(); $sql = "SELECT curso, letra, aula, delegado FROM grupo WHERE tutor='$login'"; //ejecutamos la consulta $resultado = consulta ($sql, $link); if ($resultado) { while ($fila = siguiente($resultado)) { $tabla[$i]["curso"] = $fila["curso"]; $tabla[$i]["letra"] = $fila["letra"]; $tabla[$i]["aula"] = $fila["aula"]; $tabla[$i]["delegado"] = $fila["delegado"]; $i++; } } else { echo "Se produjo un error al acceder a las notas del alumno<br>\n"; return; } */ $link = Conectar(); $sql = "SELECT curso, letra FROM grupo WHERE tutor='$login'"; //ejecutamos la consulta $resultado = consulta ($sql, $link); if ($resultado) { while ($fila = siguiente($resultado)) { $tabla[$i]["codgrupo"] = $fila["curso"] . "-" . $fila["letra"]; $tabla[$i]["curso"] = $fila["curso"]; $tabla[$i]["letra"] = $fila["letra"]; //$tabla[$i]["aula"] = $fila["aula"]; //$tabla[$i]["delegado"] = $fila["delegado"]; echo "grupo vale:" . $tabla[$i]["codgrupo"] . "<br>\n"; $i++; } } else { echo "Se produjo un error al acceder a las notas del alumno<br>\n"; return; } desconectar($link); return $tabla; } // //El formato del codgrupo es "curso-letra" function obtener_datos_grupo ($codgrupo) { $curso = substr($codgrupo,0, 1); $letra = substr($codgrupo,2, 1); $login = $_SESSION["id"]; //echo "curso vale: $curso<br>\n"; //echo "letra vale: $letra<br>\n"; $link = Conectar(); $sql = "SELECT curso, letra, aula, delegado FROM grupo WHERE tutor='$login' and curso='$curso' and letra='$letra'"; //ejecutamos la consulta $resultado = consulta ($sql, $link); if ($resultado) { if ($fila = siguiente($resultado)) { $tabla["codgrupo"] = $curso . "-" . $letra;

E.T.S. de Informtica Aplicada (U.P.V.)

224

Vicente Sancho Guijarro


844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 $tabla["curso"] $tabla["letra"] $tabla["aula"] $tabla["delegado"] = = = = $curso; $letra; $fila["aula"]; $fila["delegado"];

Proyecto Final de Carrera

if (isset($fila["delegado"])) { $sql_alumnos = "SELECT usu.apellido1, usu.apellido2, usu. nombre, usu.login FROM usuario usu WHERE usu.login='" . $fila["delegado"] . "'"; $res_alumno = consulta ($sql_alumnos, $link); if ($fila_alu = siguiente($res_alumno)) { $tabla["del_nombre"] = $fila_alu["nombre"]; $tabla["del_ape1"] = $fila_alu["apellido1"]; $tabla["del_ape2"] = $fila_alu["apellido2"]; } } else { $tabla["del_nombre"] = ""; $tabla["del_ape1"] = ""; $tabla["del_ape2"] = ""; } //echo "aula vale " . $fila["aula"] . "<br>\n"; // echo "grupo vale:" . $tabla[$i]["codgrupo"] . "<br>\n"; } else { echo "fila nula<br>\n"; } } else { echo "Se produjo un error al acceder a las notas del alumno<br>\n"; return; } desconectar($link); return $tabla; } function obtener_alumnos_grupo($codgrupo) { $curso = substr($codgrupo,0, 1); $letra = substr($codgrupo,2, 1); $login = $_SESSION["id"]; echo "curso vale: $curso<br>\n"; echo "letra vale: $letra<br>\n"; $link = Conectar(); //obtener los datos de los alumnos que estan en ese curso y letra $sql_alumnos = "SELECT usu.apellido1, usu.apellido2, usu.nombre, usu. login FROM usuario usu, alumno alu WHERE alu.curso='$curso' and alu.letra='$letra' and alu. login=usu.login ORDER BY usu.apellido1"; $res_alumno = consulta ($sql_alumnos, $link); echo "sql vale: $sql_alumnos<br>\n"; $i = 0; if ($res_alumno) { echo "dentro if<br>\n"; while ($fila_alu = siguiente($res_alumno)) { echo "login vale: " .$fila_alu["usu.login"]."<br>\n"; $tabla[$i]["nombre"] = $fila_alu["nombre"]; $tabla[$i]["apellido1"] = $fila_alu["apellido1"]; $tabla[$i]["apellido2"] = $fila_alu["apellido2"]; $tabla[$i]["login"] = $fila_alu["login"]; echo "login vale: " .$fila_alu["login"]."<br>\n"; $i++;

E.T.S. de Informtica Aplicada (U.P.V.)

225

Vicente Sancho Guijarro


921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 } } else {

Proyecto Final de Carrera

echo "se produjo un error en obtener_alumnos_grupo "; echo mysql.errno(); } desconectar($link); return $tabla; }

function hacer_delegado($codgrupo, $alumno) { $curso = substr($codgrupo,0, 1); $letra = substr($codgrupo,2, 1); if (strcmp ($alumno, "NULL") == 0) { $sql = "UPDATE `webcole`.`grupo` SET `delegado` = NULL WHERE CONVERT(`grupo`.`curso` USING utf8) = '$curso' AND CONVERT(`grupo`.`letra` USING utf8) = '$letra' LIMIT 1;" ; } else { $sql = "UPDATE `webcole`.`grupo` SET `delegado` = '$alumno' WHERE CONVERT(`grupo`.`curso` USING utf8) = '$curso' AND CONVERT(`grupo`.`letra` USING utf8) = '$letra' LIMIT 1;" ;

} $link

= Conectar();

$result = consulta ($sql, $link); if (!$result) echo "error: " . mysql_error($link) . Desconectar ($link); return $result; //devolver ok o ko }

" codigo: " . mysql_errno();

function rellenar_eventos_curso() { $conn = Conectar(); $sql="SELECT * FROM evento WHERE titulo = 'Curso' ORDER BY fecha"; $res=consulta($sql,$conn); while($row = siguiente($res)) { $fecha=split("-",sacarFecha($row["fecha"])); $fechaComparar = "".$fecha[2].$fecha[1].$fecha[0]; if($fechaComparar >= date("Ymd")) for($i=0; $i<3 && $i<numeroFilas($res);$i++) echo "<p><span class='fechaNoticia'>".sacarFecha($row[ "fecha"])." </span>".tohtml($row["descripcion"])." </p> "; } desconectar($conn); }

function bienvenida() { //include("bd.php"); $dp = Conectar(); $sql = 'SELECT * FROM usuario WHERE login ="' . $_SESSION["id"] . '"'; $resultado = consulta($sql, $dp); while($row = siguiente($resultado)) echo 'Bienvenido ' . $row['nombre']; desconectar($dp); echo "<br/>\n<a href='/webcole/cerrar_sesion.php'>Cerrar

E.T.S. de Informtica Aplicada (U.P.V.)

226

Vicente Sancho Guijarro


998 999 } 1000 1001 1002 ?> sesi&oacute;n</a>";

Proyecto Final de Carrera

E.T.S. de Informtica Aplicada (U.P.V.)

227

Vicente Sancho Guijarro

Proyecto Final de Carrera

intranetProfe.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php require_once "profesor_inc.php"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td class="menu"> <ul> <li><a href="/webcole/intranetProfe.php">Inicio</a></li> <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> <li><a href="/webcole/Profesor_profesores.php">Profesores</a></li> <li><a href="/webcole/Profesor_notas.php">Notas</a></li> <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia </a>< /li> <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones </a> </li> <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos</a>< /li> <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"> <p style='text-align: center ; font-weight: bold; font-size:18px'> Intranet Profesor </p> <p> <?php //include("bd.php"); $conn = Conectar(); $sql = "SELECT * FROM usuario WHERE login = '" . $_SESSION[ "id"] ."'"; $resultado = consulta($sql, $conn); $row = siguiente($resultado); echo tohtml($row['apellido1']) . " " . tohtml($row[ 'apellido2']) . ", " . tohtml($row['nombre']); desconectar($conn); ?> </p> </td> <td class="general">&nbsp;</td> </tr> <tr> <td><?php bienvenida(); ?></td> <td colspan="2" class="noticias"><h3>Eventos del curso </h3> <?php rellenar_eventos_curso(); ?> </td>

E.T.S. de Informtica Aplicada (U.P.V.)

228

Vicente Sancho Guijarro


74 </tr> 75 </table> 76 </body> 77 </html>

Proyecto Final de Carrera

E.T.S. de Informtica Aplicada (U.P.V.)

229

Vicente Sancho Guijarro

Proyecto Final de Carrera

Profesor_alumnos.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php require_once "profesor_inc.php"; ?> <?php //leemos los datos recibidos (si se reciben) $codasig = $_REQUEST["codasig"]; $asignaturas = asignaturas_profesor(); if (!isset($codasig)) { $codasig = -1; } else { $encontrado = false; foreach ($asignaturas as $actual ) { if ( strcmp($actual["codasig"],$codasig ) == 0) { $encontrado = true; } } if (!$encontrado) { $codasig = -1; } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <link href="css/principal.css" rel="stylesheet" type="text/css" /> <link href="css/profesor.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <script type="text/javascript" > <!-function buscarasignatura() { //var id = document.asignatura.idasig.value; var id = document.getElementById("asignatura").idasig.value; document.location.href='/webcole/Profesor_alumnos.php?codasig=' + id ; } --> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"> <div id="campoHora">&nbsp;</div> </td> </tr> <tr> <td class="menu"> <ul> <li><a href="/webcole/intranetProfe.php">Inicio</a></li> <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< /li> <li><a href="/webcole/Profesor_notas.php">Notas</a></li>

E.T.S. de Informtica Aplicada (U.P.V.)

230

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

Proyecto Final de Carrera

<li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < /a></li> <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones </a></li> <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< /a></li> <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general" style="text-align: center;"> <p style='text-align: center ; font-weight: bold; font-size:18px'> Alumnos del profesor </p> <div style="text-align: center;"> <form method='get' action='#' id="asignatura"> <p style="font-weight: bold;">Asignaturas disponibles <select name="idasig" onchange="javascript:buscarasignatura();"> <option value='-1'>Selecciona una asignatura</option> <?php foreach ($asignaturas as $asig) { if ( $codasig == $asig["codasig"]) echo "<option value='" . $asig["codasig"]. "' selected='selected'>" . tohtml($asig["nombre"]) . "</option>\n"; else echo "<option value='" . $asig["codasig"]. "'>" . tohtml($asig["nombre"]) . "</option>\n"; } //Obtenemos los datos necesarios para rellenar la tabla if ( $codasig <= 0 ) { $nombre = "----"; $codigo = "----"; $curso = "----"; $letra = "-"; $horario = "----"; $clase = "----"; } else { //recuperamos los datos $datos = obtener_datos_asignatura($codasig); $nombre = $datos["nombre"]; $codigo = $codasig; $curso = $datos["curso"]; $letra = $datos["letra"]; $horario = $datos["horario"]; $clase = $datos["aula"]; $alumnos = obtener_alumnos_asignatura($codasig); } ?> </select> </p> </form> <br/> <table style="text-align: center; width: 100%;height: 100%" border="1" class="general"> <tr> <td style="height: 39px; width: 25%;" class='cabecera'><div style="text-align: right" ><strong>Nombre Asignatura </strong>< /div></td> <td style="width: 25%;"><div style="text-align: center;"><?php echo $nombre ?>&nbsp;</div></td> <td style="width: 25%;" class='cabecera'><div style="textalign: right;" ><strong>C&oacute;digo Asignatura </strong></div> </td> <td style="width: 25%;"><div style="text-align: center;" >< ?php echo $codigo ?>&nbsp;</div></td> </tr> <tr>

E.T.S. de Informtica Aplicada (U.P.V.)

231

Vicente Sancho Guijarro

Proyecto Final de Carrera

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="text162 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="text176 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>

E.T.S. de Informtica Aplicada (U.P.V.)

232

Vicente Sancho Guijarro

Proyecto Final de Carrera

Profesor_profesores.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php require_once "profesor_inc.php"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <link href="css/principal.css" rel="stylesheet" type="text/css" /> <link href="css/profesor.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script>

</head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"> <div id="campoHora">&nbsp;</div> </td> </tr> <tr> <td class="menu"> <ul> <li><a href="/webcole/intranetProfe.php">Inicio</a></li> <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< /li> <li><a href="/webcole/Profesor_notas.php">Notas</a></li> <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < /a></li> <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones </a></li> <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< /a></li> <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"><p style="font-weight: bold;">Profesores del Colegio P&uacute;blico Emilio Lluch&nbsp;&nbsp;</p> <table border="1" style='width: 100%;'> <?php $profesores = listado_profesores(); echo "<tr >\n"; echo " <td style='width: apellido</td>\n"; echo " <td style='width: apellido</td>\n"; echo " <td style='width: \n"; echo " <td style='width: \n"; echo " <td style='width: /td>\n"; echo "</tr>\n";

20%;' class='cabecera'>Primer 20%;' class='cabecera'>Segundo 20%;' class='cabecera'>Nombre</td> 20%;' class='cabecera'>E-mail</td> 20%;' class='cabecera'>Tutorias<

$i = 0; foreach ($profesores as $actual)

E.T.S. de Informtica Aplicada (U.P.V.)

233

Vicente Sancho Guijarro

Proyecto Final de Carrera

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>

E.T.S. de Informtica Aplicada (U.P.V.)

234

Vicente Sancho Guijarro

Proyecto Final de Carrera

guardar_notas.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 <?php require_once "profesor_inc.php"; $codasig $trimestre $datos = $_REQUEST["asignatura"]; = $_REQUEST["trimestre"]; = $_REQUEST["datos"];

if (isset($codasig) && isset($trimestre) && isset($datos) ) { //echo "datos vale: $datos<br>\n"; //separamos los alumnos (con sus notas) unos de otros $alu_notas = explode( "|" , $datos); foreach ($alu_notas as $actual) { if(strlen($actual) > 1) { $lognota = explode(";", $actual); $aux = explode(":", $lognota[0]); $login = $aux[1]; $aux = explode(":", $lognota[1]); $nota = $aux[1]; //echo "Login vale: $login, Nota vale: $nota<br>\n"; poner_nota($login, $codasig, $trimestre, $nota); } } } else { $codasig $trimestre $login $nota = = = = $_REQUEST["asignatura"]; $_REQUEST["trim"]; $_REQUEST["login"]; $_REQUEST["nota"];

if (isset($codasig) && isset($trimestre) && isset($login) && isset( $nota)) { poner_nota($login, $codasig, $trimestre, $nota); } else { header("Location: Profesor_notas.php"); } } //header("Location: Profesor_notas.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <META HTTP-EQUIV="Refresh" CONTENT="0;URL=Profesor_notas.php?trimestre=<? echo $trimestre;?>&codasig=<? echo $codasig;?>">

<title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body></body></html>

E.T.S. de Informtica Aplicada (U.P.V.)

235

Vicente Sancho Guijarro

Proyecto Final de Carrera

Profesor_notas.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php require_once "profesor_inc.php"; ?> <?php //leemos los datos recibidos (si se reciben) $codasig = $_REQUEST["codasig"]; $trimestre = $_REQUEST["trimestre"]; if (!isset($codasig)) { $codasig = -1; } if (!isset($trimestre)) { $trimestre = -1; } //Si las dos variables estan definidas deberemos buscar los datos que necesitaran. ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <link href="css/profesor.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <script type="text/javascript" src="./js/profesor.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"> <div id="campoHora">&nbsp;</div> </td> </tr> <tr> <td class="menu"> <ul> <li><a href="/webcole/intranetProfe.php">Inicio</a></li> <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< /li> <li><a href="/webcole/Profesor_notas.php">Notas</a></li> <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < /a></li> <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones </a></li> <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< /a></li> <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"> <p style='text-align: center ; font-weight: bold; font-size:18px'> Notas </p> <div align="center"> <form name='asignatura' method='get' action='#'> <br /> <strong>Asignaturas disponibles</strong>

E.T.S. de Informtica Aplicada (U.P.V.)

236

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

Proyecto Final de Carrera

<select name="idasig" onchange="javascript:buscarasignatura();"> <option value='-1'>Selecciona una asignatura</option> <?php $asignaturas = asignaturas_profesor(); foreach ($asignaturas as $asig) { if ( $codasig == $asig["codasig"]) echo "<option value='" . $asig["codasig"]. "' selected='selected'>" . tohtml($asig["nombre"]) . "</option> \n"; else echo "<option value='" . $asig["codasig"]. "'>" . tohtml( $asig["nombre"]) . "</option>\n"; } ?> </select> <? //Obtenemos los datos necesarios para rellenar la tabla if ( $codasig <= 0 ) { $nombre = "----"; $codigo = "----"; $curso = "----"; $letra = "-"; $horario = "----"; $clase = "----"; } else { //recuperamos los datos $datos = obtener_datos_asignatura($codasig); $nombre = $datos["nombre"]; $codigo = $codasig; $curso = $datos["curso"]; $letra = $datos["letra"]; $horario = $datos["horario"]; $clase = $datos["aula"]; $alumnos = obtener_alumnos_asignatura_trimestre($codasig, $trimestre); } ?> <br /> <br /> <strong>Trimestre por defecto</strong> <select name="trimestre" onchange="javascript:cambio_trimestre();"> <? echo"<option value=\"-1\">Trimestre</option>\n"; for ($i = 1; $i <= TRIMESTRE; $i++) { if ( $trimestre == $i) { echo"<option value=\"$i\" selected=\"selected\">$i< /option>\n"; } else { echo"<option value=\"$i\" >$i</option>\n"; } } ?> </select> </form> </div> <br /> <table style='width: 100%; height:100%; text-align:center;' border="1" class="general"> <tr> <td style='width: 25%; text-align: right ; font-weight: bold;' class="cabecera"> Nombre Asignatura </td> <td style='width: 25%; text-align: center ; '>

E.T.S. de Informtica Aplicada (U.P.V.)

237

Vicente Sancho Guijarro


151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227

Proyecto Final de Carrera

<?php echo tohtml($nombre) ?>&nbsp; </td> <td style='width: 25%; text-align: right ; font-weight: bold;' class="cabecera"> C&oacute;digo Asignatura </td> <td colspan="3" style='width: 25%; text-align: center ; '> <?php echo $codigo ?>&nbsp; </td> </tr> <tr> <td style='width: 25%; text-align: right ; font-weight: bold;' class="cabecera"> Curso </td> <td style='width: 25%; text-align: center ; '> <?php echo $curso ?>&nbsp; </td> <td style='width: 25%; text-align: right ; font-weight: bold;' class="cabecera"> Letra </td> <td colspan="3" style='width: 25%; text-align: center ; '> <?php echo $letra ?>&nbsp; </td> </tr> <tr> <td style='width: 25%; text-align: right ; font-weight: bold;' class="cabecera"> Horario </td> <td style='width: 25%; text-align: center ; '> <?php echo $horario ?>&nbsp; </td> <td style='width: 25%; text-align: right ; font-weight: bold;' class="cabecera"> Clase </td> <td colspan="3" style='width: 25%; text-align: center ; '> <?php echo $clase ?>&nbsp; </td> </tr> <tr> <td height="39" colspan="6"> <div align="center"><strong>Alumnos</strong></div> </td> </tr> <tr> <td style='width: 25%; text-align: center ; font-weight: bold;' class="cabecera"> Primer Apellido </td> <td style='width: 25%; text-align: center ; font-weight: bold;' class="cabecera"> Segundo Apellido </td> <td style='width: 25%; text-align: center ; font-weight: bold;' class="cabecera"> Nombre </td> <td style='width: 25%; text-align: center ; font-weight: bold;' class="cabecera" colspan="2"> Nota &nbsp; Guardar </td> <!--<td style='width:13%; text-align: center ; font-weight: bold;' class="cabecera"> Guardar </td> --> </tr> <?php if (isset($alumnos)) { $i = 0; foreach ($alumnos as $actual) {

E.T.S. de Informtica Aplicada (U.P.V.)

238

Vicente Sancho Guijarro

Proyecto Final de Carrera

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>

E.T.S. de Informtica Aplicada (U.P.V.)

239

Vicente Sancho Guijarro

Proyecto Final de Carrera

Profesor_faltas.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php require_once "profesor_inc.php"; ?> <?php //leemos los datos recibidos (si se reciben) $codasig = $_REQUEST["codasig"]; $fecha = $_REQUEST["fecha"]; $asignaturas = asignaturas_profesor(); if (!isset($codasig)) { $codasig = -1; } else { if (!array_key_exists($codasig, $asignaturas)) { $codasig = -1; } } if (!isset($fecha)) { $fecha = ""; }

//Si las dos variables estan definidas deberemos buscar los datos que necesitaran. ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <link href="css/principal.css" rel="stylesheet" type="text/css" /> <link href="css/profesor.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <script type="text/javascript" src="./js/profesor.js"> </script> <script type="text/javascript"> </script>

<link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"> <div id="campoHora">&nbsp;</div> </td> </tr> <tr> <td class="menu"> <ul> <li><a href="/webcole/intranetProfe.php">Inicio</a></li> <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< /li> <li><a href="/webcole/Profesor_notas.php">Notas</a></li> <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < /a></li> <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones

E.T.S. de Informtica Aplicada (U.P.V.)

240

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

Proyecto Final de Carrera

</a></li> <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< /a></li> <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"> <p style='text-align: center ; font-weight: bold; font-size:18px'> Faltas de Asistencia </p> <div align="center">

<form name='asignatura' method='get' action='#'> <br /> <strong>Asignaturas disponibles</strong> <select name="idasig" onchange="javascript:buscarasignaturafaltas(); "> <option value='-1'>Selecciona una asignatura</option> <?php foreach ($asignaturas as $asig) { if ( $codasig == $asig["codasig"]) echo "<option value='" . $asig["codasig"]. "' selected='selected'>" . tohtml($asig["nombre"]) . "</option> \n"; else echo "<option value='" . $asig["codasig"]. "'>" . tohtml( $asig["nombre"]) . "</option>\n"; } ?> </select> <? //Obtenemos los datos necesarios para rellenar la tabla if ( $codasig <= 0 ) { $nombre = "----"; $codigo = "----"; $curso = "----"; $letra = "-"; $horario = "----"; $clase = "----"; } else { //recuperamos los datos $datos = obtener_datos_asignatura($codasig); $nombre = $datos["nombre"]; $codigo = $codasig; $curso = $datos["curso"]; $letra = $datos["letra"]; $horario = $datos["horario"]; $clase = $datos["aula"]; if ( strlen($fecha) > 0 ) $alumnos = obtener_faltas_alumnos ($codasig, $fecha) ; } ?> <br /> <br /> <strong>Fecha de la falta </strong> <input type='text' value='<? echo $fecha; ?>' readonly="readonly" size='10' name='fecha' onfocus="javascript:buscarasignaturafaltas(); " /> <input type='button' value='Selecciona Dia' onclick="muestraCalendario('','asignatura','fecha')" />

</form> </div> <br/> <table style='width: 100%; height:100%; text-align:center;'

E.T.S. de Informtica Aplicada (U.P.V.)

241

Vicente Sancho Guijarro


151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227

Proyecto Final de Carrera

border="1"> <tr> <td style='width:20%; text-align: right ; font-weight: bold;' class='cabecera'>Nombre Asignatura </td> <td style='width:20%; text-align: center ; ' ><?php echo tohtml( $nombre) ?></td> <td style='width:20%; text-align: center ; ' >&nbsp;</td> <td style='width:20%; text-align: right ; font-weight: bold;' colspan="3" class='cabecera'>C&oacute;digo Asignatura</td> <td style='width:20%; text-align: center ; ' colspan="3"><?php echo $codigo ?></td> </tr> <tr> <td style='width:20%; text-align: right ; font-weight: bold;' class='cabecera'>Curso</td> <td style='width:20%; text-align: center ; '><?php echo $curso ?></td> <td style='width:20%; text-align: center ; ' >&nbsp;</td> <td style='width:20%; text-align: right ; font-weight: bold; 'colspan="3" class='cabecera'>Letra</td> <td style='width:20%; text-align: center ; 'colspan="3"><?php echo $letra ?>&nbsp;</td> </tr> <tr> <td style='width:20%; text-align: right ; font-weight: bold;' class='cabecera'>Horario</td> <td style='width:20%; text-align: center ; '><?php echo $horario ?></td> <td style='width:20%; text-align: center ; ' >&nbsp;</td> <td style='width:20%; text-align: right ; font-weight: bold; 'colspan="3" class='cabecera'>Clase</td> <td style='width:20%; text-align: center ; 'colspan="3"><?php echo $clase ?>&nbsp;</td> </tr> <tr> <td style=' text-align: center ; font-weight: bold;'colspan="8"> Alumno</td> </tr> <tr> <!--<td style='width:3%; text-align: center ; font-weight: bold; '>Sel</td> --> <td style='width:20%; text-align: center ; font-weight: bold;' class='cabecera'>Primer Apellido</td> <td style='width:20%; text-align: center ; font-weight: bold;' class='cabecera'>Segundo Apellido </td> <td style='width:20%; text-align: center ; font-weight: bold;' class='cabecera'>Nombre</td> <td colspan="5" style='width:40%; ' class='cabecera'> <span style='width:5%; text-align: left ;'>Sel</span> <span style='width:20%; text-align: center ;'>Fecha</span> <span style='width:5%; text-align: center ;'>Just</span> <span style='width:25%; text-align: center ;'>Poner Falta< /span> <span style='width:25%; text-align: center ;'>Quitar Falta< /span> </td> <!-- <td style='width:5%; text-align: center ; font-weight: bold;'>Jus.</td> <td style='width:10%; text-align: center ; font-weight: bold;'> Poner Falta </td> <td style='width:10%; text-align: center ; font-weight: bold;'> Quitar Falta </td> --> </tr>

<?php if (isset($alumnos)) { $i = 0; foreach ($alumnos as $actual) { if (strlen($actual["login"]) > 0) { $resto = $i % 2; echo"<tr class='fila" . $resto . "'>\n";

E.T.S. de Informtica Aplicada (U.P.V.)

242

Vicente Sancho Guijarro


228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304

Proyecto Final de Carrera

//echo" <td style='width:3%; text-align: center ;'>< form method='get' name='alumno_" . $actual["login"] . "_1' action='poner_faltas.php'>\n // </form></td> "; echo" <td style='width:20%; text-align: center ;'> " . tohtml($actual["apellido1"]) . " </td>\n"; echo" <td style='width:20%; text-align: center ;'> " . tohtml($actual["apellido2"]) . " </td>\n"; //echo" <td><div align=\"center\"> " . tohtml( $actual["nombre"]). " </div></td>\n"; echo" <td style='width:20%; text-align: center ;'> " . tohtml($actual["nombre"]). " </td>\n"; /*echo" <td style='width:10%; text-align: center ;'> <form method='get' name='alumno_" . $actual["login"] . "_2' action='poner_faltas.php'>\n </form></td>\n"; echo" <td style='width:5%; text-align: center ;'>< form method='get' name='alumno_" . $actual["login"] . "_3' action='poner_faltas.php'>\n"; echo" <td style='width:10%; text-align: center ;'> <form method='get' name='alumno_" . $actual["login"] . "' action='poner_faltas.php'>\n <input type=\"checkbox\" name=\"seleccionado\" />\n <input type=\"checkbox\" name=\"checkbox\" "; if ($actual["justificada"] != 0 ) { echo "checked=\"checked\" onchange=\"javascript:cambio('" .tohtml( $actual["login"]). "');\"/> </td>\n"; } else { echo " onchange=\"javascript:cambio('" . tohtml($actual["login"]). "');\"/> < /form></td>\n"; } echo" <input type='button' name='Submit' value='Poner Falta' onclick='javascript: enviar_alumno_faltas(\"" . $actual["login"] . "\"); '/>\n <input type='hidden' name='cambiado' value='false'/> <input type='hidden' name='borrar' value='false'/> <input type='hidden' name='login' value='" . tohtml($actual["login"]). "'/> <input type='hidden' name='asignatura' value=''/> \n </td>\n"; echo" <td style='width:10%; text-align: center ;'>< input type='button' name='Submit' value='Quitar Falta' onclick='javascript:quitar_falta(\"" . $actual["login"] . "\");'/>\n</td>\n"; echo"</form>\n"; */ echo" <td colspan=\"5\" style='width:40%; '> <form method='get' name='alumno_" . $actual["login"] . "' action='poner_faltas.php'> <span style='width:20%; text-align: left ;'><input type=\"checkbox\" name=\"seleccionado\" /></span> <span style='width:20%; text-align: center ;'><input type='text' name='fecha' size='6' value='". $actual["fecha"]." '/></span> <span style='width:20%; text-align: center ;'><input type=\"checkbox\" name=\"checkbox\" "; if ($actual["justificada"] != 0 ) { echo "checked=\"checked\"

E.T.S. de Informtica Aplicada (U.P.V.)

243

Vicente Sancho Guijarro

Proyecto Final de Carrera

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>

E.T.S. de Informtica Aplicada (U.P.V.)

244

Vicente Sancho Guijarro

Proyecto Final de Carrera

poner_faltas.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php require_once "profesor_inc.php"; $codasig $fecha $datos $borrar = = = = $_REQUEST["asignatura"]; $_REQUEST["fecha"]; $_REQUEST["datos"]; $_REQUEST["borrar"];

if (isset($codasig) && isset($fecha) && isset($datos) ) { //echo "datos vale: $datos<br>\n"; //separamos los alumnos ( unos de otros $alu_faltas = explode( "|" , $datos); foreach ($alu_faltas as $actual) { if(strlen($actual) > 1) { $logfalta = explode(";", $actual); $aux = explode(":", $logfalta[0]); $login = $aux[1]; $aux = explode(":", $logfalta[1]); if (strcmp($aux[1], "false") == 0) { $just = 0; } else { $just = 1; } //echo "Login vale: $login, Nota vale: $nota<br>\n"; if (strcmp($borrar, "true")==0) { quitar_falta($login, $codasig, $fecha); } else { poner_falta($login, $codasig, $fecha, $just); } } } } else { $codasig $fecha $login $just = = = = $_REQUEST["asignatura"]; $_REQUEST["fecha"]; $_REQUEST["login"]; $_REQUEST["checkbox"];

if (!isset($_REQUEST["checkbox"])) { $just = 0; } else { $just = 1; } if (isset($codasig) && isset($fecha) && isset($login)) { if (strcmp($borrar, "true")==0) { quitar_falta($login, $codasig, $fecha); } else { poner_falta($login, $codasig, $fecha, $just); } } else

E.T.S. de Informtica Aplicada (U.P.V.)

245

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 { header("Location: Profesor_faltas.php"); echo "header<br>\n"; } } //header("Location: Profesor_notas.php");

Proyecto Final de Carrera

?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <META HTTP-EQUIV="Refresh" CONTENT="0;URL=Profesor_faltas.php?codasig=<? echo $codasig;?>&fecha=<? echo $fecha;?>">

<title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body> <p style='text-align: center ; font-weight: bold; font-size:18px'> Poner faltas </p> Para volver a la pantalla de poner faltas de asistencia pulsa <a href="Profesor_faltas.php"> aqu&iacute; </a> </body></html>

E.T.S. de Informtica Aplicada (U.P.V.)

246

Vicente Sancho Guijarro

Proyecto Final de Carrera

Profesor_instalaciones.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php require_once "profesor_inc.php"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <link href="css/profesor.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"> <div id="campoHora">&nbsp;</div> </td> </tr> <tr> <td class="menu"> <ul> <li><a href="/webcole/intranetProfe.php">Inicio</a></li> <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< /li> <li><a href="/webcole/Profesor_notas.php">Notas</a></li> <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < /a></li> <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones </a></li> <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< /a></li> <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"> <p style='text-align: center ; font-weight: bold; font-size:18px'> Instalaciones </p> <table border="1"> <?php $ins = listado_reservas_instalaciones(); if ($ins == null) { echo "<tr><td><b>No hay instalaciones reservadas</b></td>< /tr>\n"; } else { echo "<tr>\n"; echo " <td style='width: 140px;' class='cabecera'> Instalaci&oacute;n</td>\n"; echo " <td style='width: 100px;' class='cabecera'>Fecha< /td>\n"; echo " <td style='width: 425px;' class='cabecera'> Proposito</td>\n"; echo " <td style='width: 90px;' class='cabecera'>Normas< /td>\n"; echo " <td style='width: 80px;' class='cabecera'>&nbsp;< /td>\n";

E.T.S. de Informtica Aplicada (U.P.V.)

247

Vicente Sancho Guijarro

Proyecto Final de Carrera

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>

E.T.S. de Informtica Aplicada (U.P.V.)

248

Vicente Sancho Guijarro

Proyecto Final de Carrera

Profesor_reservar_instalacion.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php require_once "profesor_inc.php"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <link href="css/calendario.css" rel="stylesheet" type="text/css" /> <link href="css/principal.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <script type="text/javascript" src="./js/reservas.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"> <div id="campoHora">&nbsp;</div> </td> </tr> <tr> <td class="menu"> <ul> <li><a href="/webcole/intranetProfe.php">Inicio</a></li> <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< /li> <li><a href="/webcole/Profesor_notas.php">Notas</a></li> <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < /a></li> <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones </a></li> <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< /a></li> <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"> <p style='text-align: center ; font-weight: bold; font-size:18px'> Reservar de Instalaciones </p> <form method="get" action="/webcole/Profesor_reserva.php" name="reservar"> <?php echo "<input type='hidden' name='item' value='" . INST . "' />"; ?> <table style="text-align: left; width: 700px; height: 284px;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="width: 300px; text-align: right;"><span style="font-weight: bold; text-align: right;"> Seleccionauna instalaci&oacute;n</span></td> <td style="width: 400px; text-align: left;"><select name="iditem" onchange="javascript:redirigir('<?php echo PROFE; ?> ', '<?php echo strtolower(INST); ?>');"> <option value='-1'>Selecciona una instalaci&oacute; n</option> <?php

E.T.S. de Informtica Aplicada (U.P.V.)

249

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

Proyecto Final de Carrera


//Comprobamos si llegamos aqui despues de elegir una instalacion $iditem = $_REQUEST["iditem"]; //echo "id vale: $iditem\n";

if (!isset($iditem)) $iditem = -1; //echo "id vale: $iditem\n"; $ins = listado_instalacion(); foreach ($ins as $actual) { if ($actual["idinstalacion"] == $iditem) { echo "<option value='" . $actual[ "idinstalacion"]. "' selected='selected'>" . $actual["instalacion"] . "</option>\n"; } else { echo "<option value='" . $actual[ "idinstalacion"]. "'>" . $actual[ "instalacion"] . "</option>\n"; } } ?> </select></td> </tr> <tr> <td style="width: 200px; text-align: right;"><span style="font-weight: bold; ">Selecciona una fecha< /span></td> <td style="width: 400px;"><?php require_once ("calendario_ins.php"); //if (!$HTTP_POST_VARS && !$HTTP_GET_VARS){ if ((!isset($_GET["nuevo_mes"])) || (!isset($_GET[ "nuevo_mes"])) || (!isset($_GET["nuevo_mes"]))) { //echo "http no definidos<br>\n"; $tiempo_actual = time(); $mes = date("n", $tiempo_actual); $ano = date("Y", $tiempo_actual); $dia=date("d"); $fecha=$ano . "-" . $mes . "-" . $dia; }else { //echo "http definidos<br>\n"; $mes = $_GET["nuevo_mes"]; $ano = $_GET["nuevo_ano"]; $dia = $_GET["dia"]; $fecha=$ano . "-" . $mes . "-" . $dia; } if (!isset($dia)) { $dia=date("d"); } if (!isset($mes)) { $mes = date("n", $tiempo_actual); } if (!isset($ano)) { $ano = date("Y", $tiempo_actual); } echo "<input type=\"hidden\" name=\"dia\" value=''/>\n"; echo "<input type=\"hidden\" name='dia_c' value='$dia'/> \n"; echo "<input type=\"hidden\" name='mes' value='$mes'/> \n"; echo "<input type=\"hidden\" name='anyo' value='$ano'/> \n"; $tabla = fecha_reservas($iditem, INST); if (!isset($tabla)) { //utilizamos una variable no inicializada //mostrar_calendario tiene en cuenta si esa variable

E.T.S. de Informtica Aplicada (U.P.V.)

250

Vicente Sancho Guijarro

Proyecto Final de Carrera

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>

E.T.S. de Informtica Aplicada (U.P.V.)

251

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 ao 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 }

E.T.S. de Informtica Aplicada (U.P.V.)

252

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 }

Proyecto Final de Carrera

?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <?php //Ruta de retorno que utilizaremos aqui si todo fue bien if (strcmp($item, INST)==0) { $url = "/webcole/Profesor_instalaciones.php"; } else { $url = "/webcole/Profesor_equipaciones.php"; } if ( $es_valido ) { echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=$url\">\n"; } ?> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime(); redirigir();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td class="menu"> <ul> <li><a href="/webcole/intranetProfe.php">Inicio</a></li> <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> <li><a href="/webcole/Profesor_profesores.php">Profesores</a></li> <li><a href="/webcole/Profesor_notas.php">Notas</a></li> <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia </a>< /li> <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones </a> </li> <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos</a>< /li> <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"> <?php //Ruta de retorno que utilizaremos aqui si todo fue bien if (strcmp($item, INST)==0) { $url_reserva = "/webcole/Profesor_reservar_instalacion.php"; } else { $url_reserva = "/webcole/Profesor_reservar_equipacion.php"; } echo "Se han producido los siguientes errores: <br> $error<br> \n"; echo "<br>\n";

E.T.S. de Informtica Aplicada (U.P.V.)

253

Vicente Sancho Guijarro

Proyecto Final de Carrera

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>

E.T.S. de Informtica Aplicada (U.P.V.)

254

Vicente Sancho Guijarro

Proyecto Final de Carrera

Profesor_anular_reserva.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php require_once "profesor_inc.php"; // $fecha = urldecode($_REQUEST["fecha"]); $iditem = $_REQUEST["iditem"]; $login = $_SESSION["id"]; $item = $_REQUEST["item"]; $error = ""; $es_valido = true; if ( !isset($login)) { header("Location: /webcole/prohibido.php"); $es_valido = false; } //ya estara en el formato de mysql, //si no es correcto sencillamente no se borrara el registro. if ( !isset($fecha)) { $error .="Error en la Fecha. No v&aacute;lida<br>\n"; $es_valido = false; } if ( !isset($iditem) || $iditem < 1 ) { $error .="Error en el codigo de instalaci&oacute;n. No v&aacute;lido<br> \n"; $es_valido = false; } if ($es_valido) { $resultado = anular_reserva($login, $fecha, $iditem, $item); if ($resultado) { //echo "Reserva correctamente anulada<br>\n"; } else { $error = "Han ocurrido problemas durante la anulaci&oacute;n de la reserva <br>\n"; $es_valido = false; } } else { $error = "Han ocurrido errores en los par&aacute;metros de anulaci&oacute;n<br>\n" . $error; //echo $error; $es_valido = false; } if (strcmp($item, INST) == 0 ) { $url = "/webcole/Profesor_instalaciones.php"; } else { $url = "/webcole/Profesor_equipaciones.php"; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <?php if ($es_valido) echo "<meta http-equiv=\"refresh\" content=\"5;URL=$url\" />\n"; ?> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" />

E.T.S. de Informtica Aplicada (U.P.V.)

255

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148

Proyecto Final de Carrera

<script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"> <div id="campoHora">&nbsp;</div> </td> </tr> <tr> <td class="menu"> <ul> <li><a href="/webcole/intranetProfe.php">Inicio</a></li> <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< /li> <li><a href="/webcole/Profesor_notas.php">Notas</a></li> <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < /a></li> <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones </a></li> <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< /a></li> <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"> <p style='text-align: center ; font-weight: bold; font-size:18px'> Anular reservas </p> <?php if ($es_valido) { echo "Reserva anulada correctamente<br/>\n"; echo "<p>En 5 segundos ser&aacute;s a la p&aacute;gina de instalaciones. Si no pulsa"; echo "<a href=\"$url\"> aqu&iacute;</a></p>\n"; } else { echo "Han ocurrido problemas durante la anulaci&oacute;n de la reserva"; echo "Errores: $error<br/>\n"; echo "<p>Pulsa <a href=\"$url\"> aqu&iacute;</a> para regresar a la p&aacute;gina de reservas</p>\n"; } ?> </td> <td class="general">&nbsp;</td> </tr> <tr> <td><?php bienvenida(); ?></td> <td colspan="2" class="noticias"><h3>Eventos del curso </h3> <?php rellenar_eventos_curso(); ?> </td> </tr> </table> </body> </html>

E.T.S. de Informtica Aplicada (U.P.V.)

256

Vicente Sancho Guijarro

Proyecto Final de Carrera

Profesor_equipaciones.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php require_once "profesor_inc.php"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <link href="css/profesor.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"> <div id="campoHora">&nbsp;</div> </td> </tr> <tr> <td class="menu"> <ul> <li><a href="/webcole/intranetProfe.php">Inicio</a></li> <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< /li> <li><a href="/webcole/Profesor_notas.php">Notas</a></li> <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < /a></li> <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones </a></li> <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< /a></li> <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"> <p style='text-align: center ; font-weight: bold; font-size:18px'> Equipaciones Reservadas </p> <table border="1"> <?php $ins = listado_reservas_equipaciones(); if ($ins == null) { echo "<tr><td><b>No hay equipamientos reservados</b></td>< /tr>\n"; } else { echo "<tr>\n"; echo " <td style='width: 140px;' class='cabecera'> Equipamiento</td>\n"; echo " <td style='width: 100px;' class='cabecera'>Fecha< /td>\n"; echo " <td style='width: 425px;' class='cabecera'> Prop&oacute;sito</td>\n"; echo " <td style='width: 90px;' class='cabecera'>Normas< /td>\n"; echo " <td style='width: 80px;' class='cabecera'>&nbsp;< /td>\n"; echo "</tr>\n";

E.T.S. de Informtica Aplicada (U.P.V.)

257

Vicente Sancho Guijarro

Proyecto Final de Carrera

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>

E.T.S. de Informtica Aplicada (U.P.V.)

258

Vicente Sancho Guijarro

Proyecto Final de Carrera

Profesor_reservar_equipacion.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php require_once "profesor_inc.php"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <link href="css/calendario.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <script type="text/javascript" src="./js/reservas.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td style="width: 150px;" class="logo">&nbsp;</td> <td colspan="2" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="2" class="fecha"> <div id="campoHora">&nbsp;</div> </td> </tr> <tr> <td class="menu"> <ul> <li><a href="/webcole/intranetProfe.php">Inicio</a></li> <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< /li> <li><a href="/webcole/Profesor_notas.php">Notas</a></li> <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < /a></li> <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones </a></li> <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< /a></li> <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td class="general"> <p style='text-align: center ; font-weight: bold; font-size:18px'> Reservas de equipaciones </p> <form method="get" action="/webcole/Profesor_reserva.php" name="reservar"> <?php echo "<input type='hidden' name='item' value='" . EQUIP . "' />\n"; ?> <table style="text-align: left; width: 700px; height: 284px;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="width: 300px; text-align: right;"><span style="font-weight: bold; text-align: right;"> Seleccionauna instalaci&oacute;n</span></td> <td style="width: 400px; text-align: left;"><select name="iditem" onchange="javascript:redirigir('<?php echo PROFE; ?>', '<?php echo strtolower(EQUIP); ?>');"> <option value='-1'>Selecciona una equipaci&oacute;n< /option> <?php

E.T.S. de Informtica Aplicada (U.P.V.)

259

Vicente Sancho Guijarro


74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

Proyecto Final de Carrera


//Comprobamos si llegamos aqui despues de elegir una instalacion $iditem = $_REQUEST["iditem"]; //echo "id vale: $iditem\n";

if (!isset($iditem)) $iditem = -1; //echo "id vale: $iditem\n"; $ins = listado_equipacion(); foreach ($ins as $actual) { if ($actual["idequipacion"] == $iditem) { echo "<option value='" . $actual[ "idequipacion"]. "' selected='selected'>" . $actual["equipacion"] . "</option>\n"; } else { echo "<option value='" . $actual[ "idequipacion"]. "'>" . $actual[ "equipacion"] . "</option>\n"; } } ?> </select></td> </tr> <tr> <td style="width: 200px; text-align: right;"><span style="font-weight: bold; ">Selecciona una fecha< /span></td> <td style="width: 400px;"><?php require_once ("calendario_ins.php"); //if (!$HTTP_POST_VARS && !$HTTP_GET_VARS){ if ((!isset($_GET["nuevo_mes"])) || (!isset($_GET[ "nuevo_mes"])) || (!isset($_GET["nuevo_mes"]))) { //echo "http no definidos<br>\n"; $tiempo_actual = time(); $mes = date("n", $tiempo_actual); $ano = date("Y", $tiempo_actual); $dia=date("d"); $fecha=$ano . "-" . $mes . "-" . $dia; }else { //echo "http definidos<br>\n"; $mes = $_GET["nuevo_mes"]; $ano = $_GET["nuevo_ano"]; $dia = $_GET["dia"]; $fecha=$ano . "-" . $mes . "-" . $dia; } if (!isset($dia)) { $dia=date("d"); } if (!isset($mes)) { $mes = date("n", $tiempo_actual); } if (!isset($ano)) { $ano = date("Y", $tiempo_actual); } echo "<input type=\"hidden\" name=\"dia\" value=''/>\n"; echo "<input type=\"hidden\" name='dia_c' value='$dia'/> \n"; echo "<input type=\"hidden\" name='mes' value='$mes'/> \n"; echo "<input type=\"hidden\" name='anyo' value='$ano'/> \n"; $tabla = fecha_reservas($iditem, EQUIP); if (!isset($tabla)) { //utilizamos una variable no inicializada //mostrar_calendario tiene en cuenta si esa variable

E.T.S. de Informtica Aplicada (U.P.V.)

260

Vicente Sancho Guijarro

Proyecto Final de Carrera

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>

E.T.S. de Informtica Aplicada (U.P.V.)

261

Vicente Sancho Guijarro

Proyecto Final de Carrera

Profesor_tablon.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 <?php session_start(); if($_SESSION["tipo"] != "Profesor") header("Location: prohibido.php"); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>CP Emilio Lluch</title> <link href="css/general.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="./js/fecha.js"> </script> <link href="css/principal.css" rel="stylesheet" type="text/css" /> </head> <body onload="javascript:displayTime();"> <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> <tr> <td width="150" class="logo">&nbsp;</td> <td colspan="3" class="titulo">&nbsp;</td> </tr> <tr> <td class="fecha">&nbsp;</td> <td colspan="3" class="fecha"><div id="campoHora">&nbsp;</div></td> </tr> <tr> <td rowspan="5" class="menu"> <ul> <li><a href="/webcole/intranetProfe.php">Inicio</a></li> <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> <li><a href="/webcole/profesores.php">Profesores</a></li> <li><a href="/webcole/Profesor_notas.php">Notas</a></li> <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < /a></li> <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones </a></li> <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< /a></li> <li><a href="/webcole/Profesor_tablon.php">Tabl&oacute;n de anuncios </a></li> </ul> </td> <td colspan="2" class="general"><h1>Tabl&oacute;n de anuncios </h1> <p>&nbsp;</p></td> <td rowspan="5" class="general">&nbsp;</td> </tr> <?php include("bd.php"); $conn = Conectar(); $sql = "SELECT * FROM anuncio ORDER BY idanuncio DESC"; $anuncios = consulta($sql, $conn); $anuncios_mostrados = 0; $anuncios_amostrar = 10; while($row = siguiente($anuncios)) { if($anuncios_mostrados >= $anuncios_amostrar) break; $anuncios_mostrados++; $sql = "SELECT * FROM usuario WHERE login = '".$row["login"]."'"; $usuario = consulta($sql,$conn); $usuario = siguiente($usuario); echo "<tr>"; if($anuncios_mostrados>=3) echo "<td></td>"; echo "<td class='general'><p class='anuncioTitulo'>".tohtml($row["titulo"] )." <br/>"; echo "<span class='anuncioNombre'>".tohtml($usuario["nombre"])." ".tohtml( $usuario["apellido1"])."</span> <span class='anuncioFecha'>- ".$row[ "fecha"]."</span> </td>";

E.T.S. de Informtica Aplicada (U.P.V.)

262

Vicente Sancho Guijarro

Proyecto Final de Carrera

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>

E.T.S. de Informtica Aplicada (U.P.V.)

263

Vicente Sancho Guijarro

Proyecto Final de Carrera

Profesor_tablon_insertar.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 <?php session_start(); if($_SESSION["tipo"] != "Profesor") header("Location: prohibido.php"); $titulo = $_POST["titulo"]; $texto = $_POST["texto"]; $fecha = date("Y-m-d H:i:s"); include("bd.php"); $conn = Conectar(); $sql = "SELECT * FROM anuncio ORDER BY idanuncio DESC"; $num = consulta($sql,$conn); if($num = siguiente($num)) $idanun= $num["idanuncio"] + 1; else $idanun = 1; $sql = "INSERT INTO `anuncio` ( `idanuncio` , `login` , `fecha` , `titulo` , `texto` ) VALUES ('".$idanun."', '".$_SESSION["id"]."', '".$fecha."', '". $titulo."', '".$texto."')"; $insert = consulta($sql,$conn); //echo "id".$_SESSION["id"]."error: " . mysql_error($conn); Desconectar($conn); ?> <head> <meta http-equiv="refresh" content="15;URL=Profesor_tablon.php"> </head> Insertando...

E.T.S. de Informtica Aplicada (U.P.V.)

264

Vicente Sancho Guijarro

Proyecto Final de Carrera

H. Cdigo CSS
Calendario.css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 TD { font-family : verdana,arial,helvetica; font-size : 10pt;

} INPUT { font-family : verdana,arial,helvetica; font-size : 8pt; } TEXTAREA { font-family : verdana,arial,helvetica; font-size : 8pt; } SELECT { font-family : verdana,arial,helvetica; font-size : 8pt; } .altn { font-family : verdana,arial,helvetica; font-size : 10pt; color: #ffffff; background-color: #666666; } .tit { font-family : verdana,arial,helvetica; font-size : 10pt; color: #ffffff; background-color: #333333; font-weight: bold;

} .fs { font-family : verdana,arial,helvetica; background-color: #FFCCCC; color: #FFFFFF; font-weight: bold; text-align: center; } .da { font-family : verdana,arial,helvetica; background-color: #F0E68C; color: #FFFFFF; font-weight: bold; text-align: center; } .nd { font-family : verdana,arial,helvetica; background-color: #000066; color: #FFFFFF; font-weight: bold; text-align: center; } .curso { font-family : verdana,arial,helvetica; background-color: #CCFFFF; color: #FFFFFF; font-weight: bold; text-align: center; } .laborable {

E.T.S. de Informtica Aplicada (U.P.V.)

265

Vicente Sancho Guijarro


66 67 68 69 70 71 72 }

Proyecto Final de Carrera

font-family : verdana,arial,helvetica; background-color: #CCFF99; color: #FFFFFF; font-weight: bold; text-align: center;

E.T.S. de Informtica Aplicada (U.P.V.)

266

Vicente Sancho Guijarro

Proyecto Final de Carrera

general.css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 .logo { background-color: #99CC33; background-image: url(../img/LogoPeq.jpg); height: 150px; width: 150px; background-repeat: no-repeat; background-position: center center; } .titulo { background-color: #99CC33; background-image: url(../img/titulo.png); background-repeat: no-repeat; background-position: center center; width: 100%; } body { background-color: #999933; background-position: center; } .menu { vertical-align: top; } .fecha { font-family: Verdana, Arial, Helvetica, sans-serif; color: #660033; text-align: right; background-color: #FFFF99; } .general { background-color: #99CC66; padding-left: 15px; font-family: Arial, Helvetica, sans-serif; text-align: center; } 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; } ul li:hover { background-color: #CCFFCC; } .imagenCalendario { background-color: #99CC66; padding-left: 15px; font-family: Arial, Helvetica, sans-serif; background-image: url(../img/calendario.jpg); width: 130px; background-repeat: no-repeat; background-position: center center; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none;

E.T.S. de Informtica Aplicada (U.P.V.)

267

Vicente Sancho Guijarro


72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 border-top-color: #FFFF66; border-right-color: #FFFF66; border-bottom-color: #FFFF66; border-left-color: #FFFF66; } .imagenReglamento { background-color: #99CC66; padding-left: 15px; font-family: Arial, Helvetica, sans-serif; background-image: url(../img/reglas.png); width: 320px; background-repeat: no-repeat; background-position: center center; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-top-color: #FFFF66; border-right-color: #FFFF66; border-bottom-color: #FFFF66; border-left-color: #FFFF66; } .imagenLocalizacion { background-color: #99CC66; padding-left: 15px; font-family: Arial, Helvetica, sans-serif; background-image: url(../img/plano_valencia.gif); width: 150px; background-repeat: no-repeat; background-position: center center; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-top-color: #FFFF66; border-right-color: #FFFF66; border-bottom-color: #FFFF66; border-left-color: #FFFF66; } .imagenEnlaces {

Proyecto Final de Carrera

background-color: #99CC66; padding-left: 15px; font-family: Arial, Helvetica, sans-serif; background-image: url(../img/arroba.jpg); width: 150px; background-repeat: no-repeat; background-position: center center; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-top-color: #FFFF66; border-right-color: #FFFF66; border-bottom-color: #FFFF66; border-left-color: #FFFF66; } .imagenEmail {

background-color: #99CC66; padding-left: 15px; font-family: Arial, Helvetica, sans-serif; background-image: url(../img/email.jpg); width: 300px; background-repeat: no-repeat; background-position: center center; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-top-color: #FFFF66; border-right-color: #FFFF66; border-bottom-color: #FFFF66;

E.T.S. de Informtica Aplicada (U.P.V.)

268

Vicente Sancho Guijarro


149 150 } border-left-color: #FFFF66;

Proyecto Final de Carrera

E.T.S. de Informtica Aplicada (U.P.V.)

269

Vicente Sancho Guijarro

Proyecto Final de Carrera

principal.css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 .foto { background-color: #99CC66; background-image: url(../img/colegio.JPG); width: 250px; background-repeat: no-repeat; background-position: center center; } .noticias { background-color: #99CC33; padding-left: 15px; border: medium dashed #FFFF99; } .fechaNoticia { font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 14px; color: #CC0066; font-weight: bold; }

E.T.S. de Informtica Aplicada (U.P.V.)

270

Vicente Sancho Guijarro

Proyecto Final de Carrera

Professor.css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 @CHARSET "ISO-8859-1"; .cabecera { background-color:#000000; color:#FFFFFF; font:Arial, Helvetica, sans-serif; } .fila0 { background-color: #99CC66; color:#000000; } .fila1 { background-color:#009900; color:#000000; }

E.T.S. de Informtica Aplicada (U.P.V.)

271

Vicente Sancho Guijarro

Proyecto Final de Carrera

I. JavaScript
fecha.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 <!-var pong; function makeArray(n){ this.length = n; for (i=1;i<=n;i++){ this[i]=0; } return this; } function displayDate() { var this_month = new makeArray(12); this_month[0] = "Enero"; this_month[1] = "Febrero"; this_month[2] = "Marzo"; this_month[3] = "Abril"; this_month[4] = "Mayo"; this_month[5] = "Junio"; this_month[6] = "Julio"; this_month[7] = "Agosto"; this_month[8] = "Septiembre"; this_month[9] = "Octubre"; this_month[10] = "Noviembre"; this_month[11] = "Deciembre"; var this_day_e this_day_e[0] this_day_e[1] this_day_e[2] this_day_e[3] this_day_e[4] this_day_e[5] this_day_e[6] = = = = = = = = new makeArray(7); "Domingo"; "Lunes"; "Martes"; "Mircoles"; "Jueves"; "Viernes"; "Sbado";

var today = new Date(); var day = today.getDate(); var month = today.getMonth(); var year = today.getYear(); var dia = today.getDay(); if (year < 1000) { year += 1900; } return( " " + this_day_e[dia] + ", " + day + " de " + this_month[month] + " " + year); } 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); } function horaActualizada() { tiempo = setTimeout("displayTime()",1000); } // -->

E.T.S. de Informtica Aplicada (U.P.V.)

272

Vicente Sancho Guijarro

Proyecto Final de Carrera

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 {

E.T.S. de Informtica Aplicada (U.P.V.)

273

Vicente Sancho Guijarro


73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149

Proyecto Final de Carrera

if (document.forms[i].seleccionado.checked == true) { var msg = "login:" + document.forms[i].login.value + "; "; msg += "just:" + document.forms[i].checkbox.checked + "|"; mensaje += msg; } i++; } document.general.datos.value = mensaje; document.general.fecha.value = fecha; document.general.asignatura.value = asig; if (mensaje.length > 0) { document.general.submit(); } else { alert ("No has seleccionado a ningun alumno al que poner la falta"); } } else { alert("Debes seleccionar una asignatura y una fecha antes de enviar las faltas"); } } function quitar_falta(alumno) { var fecha_general = document.asignatura.fecha.value; var idasig = document.asignatura.idasig.value; var fecha = document.eval("alumno_" + alumno).fecha.value; var justificado = document.eval("alumno_" + alumno).checkbox. checked; document.eval("alumno_" + fecha.value; document.eval("alumno_" + asignatura.idasig.value; document.eval("alumno_" + document.eval("alumno_" + } alumno).fecha.value = document.asignatura. alumno).asignatura.value = document. alumno).borrar.value = "true"; alumno).submit();

function buscarasignatura() { var idasig = document.asignatura.idasig.value; var trimestre = document.asignatura.trimestre.value; document.location.href='/webcole/Profesor_notas.php?trimestre=' + trimestre + '&codasig=' + idasig ; } function cambiar_trimestre() { } function nueva_nota(login) { formulario = "alumno_" + login; var ha_cambiado = document.eval("alumno_" + login).cambiado.value; var nota_txt = document.eval("alumno_" + login).nota.value; try { nota_txt = nota_txt.replace(",", "."); if ( nota_txt.length > 0 ) { var nota = parseFloat(nota_txt); if ( isNaN(nota) ) {

E.T.S. de Informtica Aplicada (U.P.V.)

274

Vicente Sancho Guijarro


150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226

Proyecto Final de Carrera

document.eval("alumno_" + login).cambiado.value = "false"; document.eval("alumno_" + login).eval("nota").value = nota; alert("El numero introducido no es correcto"); } else if ( nota >= 0 && nota <= 10 ) { document.eval("alumno_" + login).cambiado.value = "true"; document.eval("alumno_" + login).nota.value = nota; } else { alert("La nota debe estar comprendida entre 0 y 10"); document.eval("alumno_" + login).nota.focus(); } } else { document.eval("alumno_" + login).cambiado.value = "false"; } } catch(e) { alert ("No has introducido un numero valido: " + e.message); document.eval("alumno_" + login).cambiado.value = "false"; } document.eval("alumno_" + login).cambiado.value = "true"; } function enviar_alumno(login) { formulario = "alumno_" + login; document.eval("alumno_" + login).trim.value = document.asignatura. trimestre.value ; var ha_cambiado = document.eval("alumno_" + login).cambiado.value; var nota_txt = document.eval("alumno_" + login).nota.value; nota_txt = nota_txt.replace(",", "."); if ( ha_cambiado == "true" ) { if ( nota_txt.length > 0 ) { try { var nota = parseFloat(nota_txt); if ( nota >= 0 && nota <= 10 ) { document.eval("alumno_" + login).eval("nota").value = nota; document.eval("alumno_" + login).asignatura.value = document.asignatura.idasig.value; document.eval("alumno_" + login).submit(); } else { alert("La nota debe estar comprendida entre 0 y 10") ; document.eval("alumno_" + login).nota.focus(); } } catch(e) { alert ("No has introducido un numero valido: " + e. message); } } else { alert ("No has introducido ningun numero "); } } else {

E.T.S. de Informtica Aplicada (U.P.V.)

275

Vicente Sancho Guijarro


227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303

Proyecto Final de Carrera

alert ("no se envia porque no ha cambiado su situacion"); } document.eval("alumno_" + login).submit(); }

function enviar_todos() { var lon = document.forms.length; var mensaje = ""; //empezamos en el 1 en vez del 0 porque hay un formulario que no nos interesa al //comienzo y acabamos uno antes porque el ultimo es el que llama a esta funcion //for(i = 0; i< 6; i++) var i = 1 while ( i < lon -1 ) { try { var nombre = document.forms[i].name; var ha_cambiado = document.forms[i].cambiado.value; if ( ha_cambiado == "true" ) { var nota_txt = document.forms[i].nota.value; if ( nota_txt.length > 0 ) { try { nota_txt = nota_txt.replace(",", "."); var nota = parseFloat(nota_txt); if ( nota >= 0 && nota <= 10 ) { var msg = "login:"+document.forms[i].login. value + ";"; msg += "nota:" + nota + "|"; mensaje += msg; } else { alert("La nota debe estar comprendida entre 0 y 10"); document.forms[i].nota.focus(); return; } } catch(e) { alert ("No has introducido un numero valido: " + e.message); } } else { //alert ("No has introducido ningun numero "); } } } catch(e) { alert("Error: " + e.message); } i++; } document.general.datos.value = mensaje; document.general.trimestre.value = document.asignatura.trimestre. value; document.general.asignatura.value = document.asignatura.idasig. value; document.general.submit(); } function cambio_trimestre() { var trimestre = document.asignatura.trimestre.value; var idasig = document.asignatura.idasig.value;

E.T.S. de Informtica Aplicada (U.P.V.)

276

Vicente Sancho Guijarro


304 305 306 307 308 309

Proyecto Final de Carrera

if ( trimestre != "-1" ) { document.location.href="/webcole/Profesor_notas.php?trimestre=" + trimestre + "&codasig=" + idasig; } }

E.T.S. de Informtica Aplicada (U.P.V.)

277

Vicente Sancho Guijarro

Proyecto Final de Carrera

reservas.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 MAX_LENGTH = 1500; function cambiar(i) { alert ("id vale:" + i ); if ( i < 10 ) { i = "0" + i; } document.reservar.fecha.value = i + "-" + document.reservar.mes. value + "-" + document.reservar.anyo.value; document.reservar.dia.value = i; } function redirigir(usuario, tipo) { iditem = document.reservar.iditem.value; dia = document.reservar.dia.value; mes = document.reservar.mes.value; anyo = document.reservar.anyo.value; document.location.href='/webcole/' + usuario + '_reservar_' + tipo + '.php?iditem=' + iditem + '&dia=' + dia + '&nuevo_mes=' + mes + '&nuevo_ano=' + anyo; } function enviar() { fecha = new Date(); anyo_actual = fecha.getFullYear(); //comprobar si tenemos todos los parametros necesarios //de fecha dia = document.reservar.dia.value; mes = document.reservar.mes.value; anyo = document.reservar.anyo.value; correcto = true; if (document.reservar.iditem.value == -1) { correcto = false; alert ("Debes elegir una instalacion de las disponibles"); } else if (dia > 31 || dia < 1 || document.reservar.dia.value==0) { correcto = false; alert ("Dia incorrecto. Debes elegir un dia de los disponibles en el calendario"); } else if (mes < 1 || mes > 12 || document.reservar.mes.value==0 ) { correcto = false; alert ("Mes incorrecto. Debes elegir un dia de los disponibles en el calendario"); } else if (anyo != anyo_actual || document.reservar.anyo.value==0) { correcto = false; alert ("Ao incorrecto. Debes elegir un dia de este ao "); } else if (document.reservar.motivo.value.length == 0) { correcto = false; alert ("Debes rellenar el campo motivo"); }

E.T.S. de Informtica Aplicada (U.P.V.)

278

Vicente Sancho Guijarro


73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98

Proyecto Final de Carrera

if (document.reservar.motivo.value.length > MAX_LENGTH) { temp=""; temp = document.reservar.motivo.value.substring(0, MAX_LENGTH-1) ; document.reservar.motivo.value = temp; } if (correcto) { document.reservar.submit(); } } function maxCaracteres() { if(document.reservar.motivo.value.length>= MAX_LENGTH) { return "return false;"; } } function longitud() { return MAX_LENGTH; }

E.T.S. de Informtica Aplicada (U.P.V.)

279

You might also like