PROYECTO FINAL DE CARRERA
DESARROLLO DE UN SITIO WEB PARA UN COLEGIO
EMILIO LLUCH (NÁQUERA)
CURSO 2006/2007
Código proyecto: DISCA-24
Autores Vicente Sancho Guijarro Vicente Blasco Sánchez
Director
Félix Buendía García
Vicente Sancho Guijarro - Vicente Blasco Sánchez Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) i
INDICE 1. Introducción.............................................................................................................. 6 2. Especificación de Requisitos .................................................................................... 8 3. Análisis ................................................................................................................... 15
3.1. Diagrama de clases. ........................................................................................ 15 3.2. Diagrama de casos de uso............................................................................... 18
3.2.1. Casos de uso del usuario......................................................................... 19 3.2.2. Casos de uso del usuario registrado........................................................ 20 3.2.3. Casos de uso del administrador .............................................................. 21 3.2.4. Casos de uso del alumno y del progenitor.............................................. 22 3.2.5. Casos de uso del profesor ....................................................................... 23 3.2.6. Casos de uso del equipo directivo .......................................................... 24
3.3. Diagrama de Secuencia .................................................................................. 25 3.3.1. Iniciar sesión........................................................................................... 25 3.3.2. Añadir anuncio al tablón de anuncios .................................................... 26 3.3.3. Consultar horario .................................................................................... 27 3.3.4. Dar de baja alumnos ............................................................................... 28 3.3.5. Mostrar notas .......................................................................................... 29 3.3.6. Poner notas ............................................................................................. 30 3.3.7. Poner faltas de asistencia........................................................................ 31 3.3.8. Reservar equipaciones ............................................................................ 32 3.3.9. Anular reserva de instalaciones .............................................................. 33
4. Diseño..................................................................................................................... 34 4.1. Nivel de presentación ..................................................................................... 34 4.2. Nivel de aplicación ......................................................................................... 39 4.3. Nivel de persistencia....................................................................................... 40
5. Implementación ...................................................................................................... 43 5.1. Tecnologías..................................................................................................... 43
5.1.1. HTML..................................................................................................... 43 5.1.2. XHTML.................................................................................................. 43 5.1.3. CSS ......................................................................................................... 45 5.1.4. JavaScript ............................................................................................... 46 5.1.5. PHP......................................................................................................... 46 5.1.6. MySQL ................................................................................................... 48
5.2. Descripción de la implementación ................................................................. 50 5.2.1. Sección pública....................................................................................... 50 5.2.2. Sección privada ...................................................................................... 52
6. Pruebas ................................................................................................................... 57 6.1 Tamaño de la ventana..................................................................................... 57 6.2 Comprobador de links .................................................................................... 59 6.3 Estándar XHTML........................................................................................... 59 6.4 Estándar CSS .................................................................................................. 61 6.5 Navegadores ................................................................................................... 62
7. Conclusiones........................................................................................................... 66 8. Bibliografía............................................................................................................. 67 9. Anexos .................................................................................................................... 68
A. W3C.................................................................................................................... 68 B. Anexo II (Herramientas usadas) ......................................................................... 70 C. XAMPP .............................................................................................................. 77
Vicente Sancho Guijarro - Vicente Blasco Sánchez Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) ii
D. Plantillas de los casos de uso.............................................................................. 79 E. Guía del usuario.................................................................................................. 87
Usuario anónimo .................................................................................................... 87 Intranet del profesor................................................................................................ 93 Intranet de alumno................................................................................................ 103
F. Código Setup.php (Base de datos).................................................................... 110 Interfaz_db.php..................................................................................................... 137 Connexion_i.php .................................................................................................. 141 Conexión.php........................................................................................................ 142
G. Código PHP ...................................................................................................... 143 Index.php .............................................................................................................. 143
Historia.php .......................................................................................................... 145 Equipodirectivo.php ............................................................................................. 146 Reglamento.php.................................................................................................... 147 Calendarioescolar.php .......................................................................................... 148 Localizacion.php .................................................................................................. 150 Contactar.php........................................................................................................ 151 Enlaces.php........................................................................................................... 153 Prohibido.php ....................................................................................................... 154 Anonimo_inc.php ................................................................................................. 155 Analizadorlogin.php ............................................................................................. 157 Bd.php .................................................................................................................. 158 Cerrar_sesion_alumno.php................................................................................... 160 Cerrar_sesion.php................................................................................................. 160 calendarioscript.php.............................................................................................. 161 Alumno_inc.php ................................................................................................... 166 intranetAlumno.php.............................................................................................. 173 Alumno_horario.php ............................................................................................ 174 Alumno_alumnos.php .......................................................................................... 182 Alumno_profes.php .............................................................................................. 184 Alumno_notas.php................................................................................................ 186 Alumno_faltas.php ............................................................................................... 188 Alumno_menu.php ............................................................................................... 190 Alumno_instalaciones.php ................................................................................... 191 Alumno_reserva.php ............................................................................................ 193 Alumno_reservar_instalacion.php........................................................................ 196 Alumno_tablon.php .............................................................................................. 199 Alumno_tablon_insertar.php ................................................................................ 201 Alumno_anular_reserva.php................................................................................. 202 calendario_faltas.php............................................................................................ 204 calendario_ins.php................................................................................................ 209 profesor_inc.php................................................................................................... 214 intranetProfe.php .................................................................................................. 228 Profesor_alumnos.php .......................................................................................... 230 Profesor_profesores.php....................................................................................... 233 guardar_notas.php ................................................................................................ 235 Profesor_notas.php ............................................................................................... 236 Profesor_faltas.php............................................................................................... 240 poner_faltas.php ................................................................................................... 245 Profesor_instalaciones.php................................................................................... 247
Vicente Sancho Guijarro - Vicente Blasco Sánchez Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) iii
Profesor_reservar_instalacion.php ....................................................................... 249 Profesor_reserva.php ............................................................................................ 252 Profesor_anular_reserva.php ................................................................................ 255 Profesor_equipaciones.php................................................................................... 257 Profesor_reservar_equipacion.php ....................................................................... 259 Profesor_tablon.php.............................................................................................. 262 Profesor_tablon_insertar.php................................................................................ 264
H. Código CSS ...................................................................................................... 265 Calendario.css....................................................................................................... 265 general.css ............................................................................................................ 267 principal.css .......................................................................................................... 270 Professor.css ......................................................................................................... 271
I. JavaScript ......................................................................................................... 272 fecha.js.................................................................................................................. 272 profesor.js ............................................................................................................. 273 reservas.js ............................................................................................................. 278
Vicente Sancho Guijarro - Vicente Blasco Sánchez Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) iv
INDICE DE FIGURAS Figura 1 Diagrama de Clases de la aplicación................................................................ 16 Figura 2 Actores del sistema .......................................................................................... 18 Figura 3 Caso de uso para Usuario................................................................................. 19 Figura 4 Caso de uso Usuario Registrado ...................................................................... 20 Figura 5 Caso de uso del Administrador ........................................................................ 21 Figura 6 Caso de uso del Alumno y del Progenitor........................................................ 22 Figura 7 Caso de uso para Profesor ................................................................................ 23 Figura 8 Caso de uso para Equipo Directivo.................................................................. 24 Figura 9 Diagrama de secuencia: Iniciar sesión ............................................................. 25 Figura 10 Diagrama de secuencia: Añadir anuncio........................................................ 26 Figura 11 Diagrama de Secuencia: Consultar Horario................................................... 27 Figura 12 Diagrama de Secuencia: Dar de baja alumnos............................................... 28 Figura 13 Diagrama de Secuencia: Mostrar notas.......................................................... 29 Figura 14 Diagrama de Secuencia: Poner notas ............................................................. 30 Figura 15 Diagrama de Secuencia: Poner faltas de asistencia........................................ 31 Figura 16 Diagrama de Secuencia: Reservar equipación ............................................... 32 Figura 17 Diagrama de secuencia: Anular reserva de instalaciones. ............................. 33 Figura 18 - Arquitectura a tres capas.............................................................................. 34 Figura 19 Captura de la página de inicio........................................................................ 35 Figura 20 Cabecera de la página. ................................................................................... 35 Figura 21 Menú del sitio web. ........................................................................................ 36 Figura 22 Formulario de inicio de sesión ....................................................................... 36 Figura 23 Zona de información de la página de inicio. .................................................. 36 Figura 24 Captura de la página donde se muestra el calendario escolar. ....................... 37 Figura 25 Captura del horario de clase en la zona privada de un alumno...................... 37 Figura 26 Captura del formulario de notas de la zona privada del profesor. ................. 38 Figura 27 Capas del proyecto ......................................................................................... 39 Figura 28 Diagrama entidad-relación. ............................................................................ 41 Figura 29 - Cabecera del sitio web. ................................................................................ 51 Figura 30 Menú de la zona anónima. ............................................................................. 52 Figura 31 Formulario de identificación. ......................................................................... 52 Figura 32 Página principal con la zona de noticias en la parte inferior.......................... 56 Figura 33 Resolución a 600x480.................................................................................... 57 Figura 34 Resolución 800x600....................................................................................... 58 Figura 35 Resolución 1024x768..................................................................................... 58 Figura 36 XHTML - página con errores......................................................................... 60 Figura 37 XHTML - página válida................................................................................. 60 Figura 38 xhtml .............................................................................................................. 61 Figura 39 Resultado de la validación CSS ..................................................................... 61 Figura 40 Explorer 6 - Problemas visualización ............................................................ 62 Figura 41 Explorer 7 - página inicial.............................................................................. 63 Figura 42 Opera - página inicial ..................................................................................... 64 Figura 43 Mozilla - página inicial .................................................................................. 65 Figura 44 B.1 - Logotipo de StarUML........................................................................... 70 Figura 45 B.2 - Logotipo de Dreamweaver 8................................................................. 71 Figura 46 B.3 Pantalla inicial Eclipse 3.2 ...................................................................... 73 Figura 47 B.4 Eclipse - Pantalla principal...................................................................... 74
Vicente Sancho Guijarro - Vicente Blasco Sánchez Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) v
Figura 48 B.5 Eclipse Auto completado de variable ...................................................... 74 Figura 49 B.6 Dia – Pantalla de Inicio ........................................................................... 75 Figura 50 B.7 Dia – Eligiendo tipo de diagrama............................................................ 75 Figura 51 B.7 Dia – Espacio de trabajo.......................................................................... 76 Figura 52 C.1 - Logotipo de XAMPP ............................................................................ 77 Figura 53 C.2 - Panel de Control de XAMPP ................................................................ 77 Figura 54 C.3 - Logotipo del servidor web Apache ....................................................... 78 Figura 55 C.4 - Logotipo de phpMyAdmin.................................................................... 78 Figura 56 Usuario anónimo – inicio............................................................................... 87 Figura 57 Usuario anónimo - menú navegacional.......................................................... 88 Figura 58 Usuario anónimo – Historia ........................................................................... 88 Figura 59 Usuario anónimo - Equipo directivo.............................................................. 89 Figura 60 Usuario anónimo - reglamento....................................................................... 89 Figura 61 Usuario anónimo – Calendario ...................................................................... 90 Figura 62 Usuario anónimo – localización..................................................................... 91 Figura 63 Usuario anónimo – contacto .......................................................................... 92 Figura 64 Usuario anónimo – enlaces ............................................................................ 92 Figura 65 Pantalla Inicial................................................................................................ 93 Figura 66 Intranet del profesor ....................................................................................... 94 Figura 67 Menú navegacional ........................................................................................ 94 Figura 68 Intranet Profesor - Alumnos........................................................................... 94 Figura 69 Escogiendo asignatura.................................................................................... 95 Figura 70 Intranet Profesor - datos cargados.................................................................. 95 Figura 71 Intranet Profesor – profesores ........................................................................ 96 Figura 72 Intranet Profesor – Notas ............................................................................... 96 Figura 73 Intranet Profesor - notas - mensaje error........................................................ 97 Figura 74 Intranet Profesor - falta – Calendario............................................................. 98 Figura 75 Intranet profesor – falta.................................................................................. 98 Figura 76 Intranet Profesor – instalaciones .................................................................... 99 Figura 77 Intranet Profesor - reserva de instalaciones. .................................................. 99 Figura 78 Intranet Profesor - reserva confirmada........................................................ 100 Figura 79 Intranet Profesor – equipaciones.................................................................. 100 Figura 80 Intranet Profesor - reserva de equipaciones. ................................................ 101 Figura 81 Intranet Profesor - reserva confirmada........................................................ 101 Figura 82 Intranet Profesor - tablón anuncios .............................................................. 102 Figura 83 Intranet Profesor - Insertar anuncio.............................................................. 102 Figura 84 Pantalla Inicial.............................................................................................. 103 Figura 85 Intranet del alumno ...................................................................................... 103 Figura 86 Menú navegacional ...................................................................................... 104 Figura 87 Intranet alumno – horario............................................................................. 104 Figura 88 Intranet alumno - listado alumno ................................................................. 105 Figura 89 Intranet alumno - listado profesores............................................................. 105 Figura 90 Intranet alumno – notas................................................................................ 106 Figura 91 Intranet alumno - faltas asistencia................................................................ 106 Figura 92 Intranet alumno – menú ............................................................................... 107 Figura 93 Intranet Alumno – instalaciones ................................................................. 107 Figura 94 Intranet alumno - reserva de instalaciones. .................................................. 108 Figura 95 Intranet alumno - reserva confirmada ......................................................... 108 Figura 96 Intranet Profesor - tablón anuncios .............................................................. 109 Figura 97 Intranet Profesor - Insertar anuncio.............................................................. 109
Vicente Sancho Guijarro Proyecto Final de Carrera
1. Introducción
Este proyecto trata sobre el desarrollo de un sitio web de un colegio público. El centro sobre el que se basa el sitio es el Colegio Público Emilio Lluch, situado en Náquera (Camp de Túria, Valencia).
El objetivo de este sitio web es dar a conocer el centro a través de Internet, así como
hacer más accesible información personalizada a los componentes del centro, como son los profesores, los alumnos y los padres de los mismos.
El sitio web consta de una parte pública accesible a todos los usuarios que accedan
al portal sin registrarse. Entre la información de la cual consta destaca la información general sobre el centro, así como información de contacto para que los usuarios que no pertenezcan al colegio puedan contactar con él para informarse de una forma más personalizada o con dudas más concretas.
La parte privada del sitio es una intranet para los usuarios que se autentiquen. Ésta
se diferencia según el grupo al que pertenezca el usuario, ya sea profesor o padre/alumno. En ella puede encontrar información personalizada sobre las asignaturas que tiene, horarios, etc. y puede hacer reservas de los equipamientos del centro entre otras cosas.
Por último, el administrador también tiene su propia intranet desde la cual puede
administrar el sitio, pudiendo realizar acciones como dar de alta usuarios o visualizar estadísticas del sitio web.
La motivación de este tipo de proyecto es el seguimiento más activo por parte de los
padres sobre la educación de sus hijos, en un medio muy extendido como es Internet, en el cual la mayoría de colegios e institutos ya tienen su sitio web. También los profesores podrán agilizar sus trámites como son las faltas de asistencia o poner las notas, habiendo una comunicación más constante con los padres. Por ello, lo consideramos un proyecto motivador para que los alumnos del colegio puedan tener una buena educación con la supervisión más activa de los padres, y a la vez favorecer la comunicación tanto con los profesores de sus hijos como con los padres de los compañeros de clase de sus hijos. Será un proyecto muy bien acogido, ya que será muy usado por los profesores y los padres de los alumnos.
Muchos colegios ya tienen su propia web. Para ello, antes de realizar nuestro
proyecto nos fijamos en los sitios web de otros centros como: Colegio Público Llanares http://web.educastur.princast.es/cp/llaranes/ Colegio Público San Blas http://www.educa.madrid.org/portal/web/cp_sanblas_ajalvir Colegio Público Migjorn http://www.cpmigjorn.net/
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 7
1.1 Estructura del documento Sobre la estructura de la memoria, podemos decir que se ha dividido en los
apartados que hemos tratado en la realización del proyecto. Para ello, el primer paso fue redactar la especificación de requisitos en la cual redactamos una primera visión del proyecto donde especificamos las funcionalidades y los requisitos que debía tener. La finalidad de este documento es plasmar el acuerdo entre el desarrollador y el cliente acerca de las funcionalidades del proyecto. En nuestro caso el visto bueno nos lo dio el director del proyecto.
La siguiente etapa en la realización del proyecto fue la de análisis. En ella se realizó
un análisis del problema y el modelado conceptual de nuestra solución mediante diagramas. Los diagramas realizados fueron el diagrama de clases y los diagramas de los casos de uso.
Con esto ya tenemos una visión global de cómo va a estar estructurado nuestro
proyecto por lo que ya nos ponemos a realizar el diseño de cómo vamos a implementar el sitio web.
Tras realizar el diseño nos adentramos en la fase de implementación del proyecto a
partir de los diagramas obtenidos en la etapa anterior. Aquí explicamos las tecnologías utilizadas y cómo son usadas.
Tras todo esto, damos por finalizado el proyecto, por lo que ya podemos redactar las
conclusiones sacadas en la realización del mismo. Por último, se han incluido unos anexos que creemos pueden ser interesantes sobre
el desarrollo del proyecto. En el primero de ellos se habla del consorcio llamado W3C, ya que ellos son los que dictan los estándares que hemos usado para desarrollar el proyecto como son HTML y CSS por ejemplo. En otro anexo presentamos brevemente las herramientas usadas para la elaboración del diseño y del desarrollo del proyecto. También dedicamos un anexo para hablar del paquete XAMPP que nos ha sido de gran utilidad para probar el correcto funcionamiento del proyecto en local, antes de subirlo al servidor prestado por el director. Por último, exponemos el código fuente de las páginas desarrolladas.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 8
2. Especificación de Requisitos 2.1 Introducción 2.1.1 Propósito El propósito de la especificación de requisitos expuesta a continuación es mostrar al
usuario cual va a ser la funcionalidad del proyecto. En esta ERS se realizará una descripción general del mismo, así como una especificación de los requisitos que debe cumplir.
1) Ámbito La aplicación que vamos a desarrollar con el nombre WebCole. Será la encargada de
proporcionar información general sobre el colegio Emilio Lluch de Náquera (Valencia) e información más especializada a los usuarios registrados.
De esta forma, el usuario puede obtener información desde su propia casa sobre el
colegio proporcionándole una mayor comodidad. Así los padres podrán tener un mayor control de lo que hacen sus hijos pudiendo consultar por ejemplo sus faltas de asistencia, sus notas, etc. De esta forma, los profesores también pueden agilizar la forma de comunicarles estos datos a los padres de sus alumnos.
2) Definiciones, acrónimos y abreviaturas • Definiciones
Interfaz - Parte del programa informático que permite el flujo de información entre varias aplicaciones o entre el propio programa y el usuario. Navegador - Aplicación software que permite al usuario recuperar y visualizar documentos de hipertexto. Portal Web - Página de inicio que permite el acceso a las distintas secciones de un sitio web. Puede tener servicios como: Chat, e-mail, foros, blogs etc Usuario Administrador - Usuario que se encarga del mantenimiento del portal. Usuario Registrado - Usuario que se ha autentificado en el portal mediante su nombre de usuario y contraseña que previamente se le ha sido asignada. Sitio Web - conjunto de páginas web, típicamente comunes a un dominio de Internet o subdominio en la World Wide Web en Internet.
• Acrónimos HTML - HyperText Markup Language. IEEE - Institute of Electrical and Electronics Engineers. PHP - PHP Hypertext Pre-processor. W3C - World Wide Web Consortium. WWW - World Wide Web.
3) Referencias [1] ANSI/IEEE Std. 830 - 1984. Guía del IEEE para la especificación de
requerimientos software. [2] Ejemplos de otros proyectos. 4) Visión global
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 9
Posteriormente en este documento se realizará la descripción general del sistema que va desarrollarse con sus funciones, características del usuario, restricciones generales, supuestos y dependencias. También se expondrá una especificación detallada de los requisitos detectados.
1.2 Descripción general 2.2.1 Perspectiva del producto La aplicación pretende proporcionar información general sobre el centro. Otra parte
de la aplicación suministrará información más específica para cada tipo de usuario que acceda a esta sección del portal.
Nuestra aplicación podrá ser accedida desde cualquier sistema operativo, utilizando
para ello un navegador Web. 2.2.2 Funciones del producto
• Usuarios no registrados Información general
En esta sección se presentará el centro Historia
Se escribirá un pequeño resumen de la historia del colegio (año de fundación, remodelaciones,...) Equipo de dirección
Se dispondrá el organigrama directivo con información de contacto de cada uno de los componentes del equipo directivo (e-mail, etc.) Reglamento de régimen interno
Se expondrá un resumen del reglamento básico del centro Calendario escolar
En esta parte de la aplicación se podrá visualizar el calendario escolar con los festivos del centro y otras actividades que consideren importantes. Localización
Se especificará la dirección y un pequeño mapa de la localización del centro Contactar
En esta sección se proporcionará un pequeño formulario para poder mandar correos electrónicos al centro con consultas y/o sugerencias. Enlaces
Se listarán las direcciones de otros sitios Web que el centro considere de interés.
o Padres y alumnos
Horario En este apartado se mostrará el horario de las clases del alumno. Listado de alumnos
Se mostrará un listado de los alumnos que van a la misma clase que el usuario que esté conectado a la aplicación en esos momentos. Listado de profesores
Los usuarios podrán visualizar un listado de los profesores que imparten clase al alumno Notas
Se mostrarán las calificaciones de las asignaturas matriculadas por el alumno conectado. Faltas de asistencia
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 10
Se podrá llevar a cabo un control sobre las faltas de asistencia del alumno conectado Menú semanal
Se podrá consultar el menú del comedor Reserva de instalaciones
En esta sección se podrán realizar reservas de las instalaciones del centro (campo de fútbol sala, gimnasio, etc.) Tablón de anuncios
Desde aquí se podrá acceder al foro donde los usuarios pueden poner anuncios para buscar gente para practicar algún deporte.
o Profesores
Listado de alumnos Los profesores dispondrán de un listado de los alumnos ordenados por grupos Listado de profesores
Se listarán los profesores que imparten clases en el centro Poner notas
En esta sección el profesor podrá calificar a los alumnos de las asignaturas que imparte Poner faltas de asistencia
En este apartado el profesor tutor de cada alumno podrá poner las faltas de asistencia. Reserva de instalaciones
Aquí se podrán realizar reservas de las instalaciones del centro (campo de fútbol sala, gimnasio, aulas, etc.) Reserva de equipamientos
Se podrán efectuar reservas de los equipamientos disponibles en el centro (radio-cd, proyector, etc.) Tablón de anuncios
Desde aquí se podrá acceder al foro donde el usuario redactará anuncios para pedir voluntarios para actividades por ejemplo
o Administrador
Dar de alta usuarios Dar de baja usuarios Modificar usuarios Dar de alta noticias Ver estadísticas de la Web Mantenimiento del foro
2.2.3 Características del usuario Los tipos de usuarios registrados se pueden dividir en los padres y alumnos, los
profesores y el administrador. Por otra parte estarán los usuarios no registrados, que sólo tendrán acceso a la información general del centro, sin poder acceder a la información personalizada.
Los padres y alumnos que podrán consultar información acerca del alumno a través
de la zona privada y hacer reservas de instalaciones del centro en horario extraescolar. Los profesores también tendrán acceso a su zona restringida desde la cual podrán consultar información propia y sobre los grupos de alumnos a los que imparte clases, como la composición, las notas y las faltas de asistencia. También podrá hacer reservas de instalaciones y equipamientos del colegio para su uso en las distintas clases.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 11
El administrador será el que gestiones las altas, las modificaciones y las bajas de los
usuarios registrados. Los usuarios deberán de tener conocimientos mínimos de informática y de
navegación por la Web para poder acceder al sitio Web. 2.2.4 Restricciones generales Se requiere un ordenador con conexión a Internet. 2.2.5 Supuestos y dependencias Se necesita un navegador de Internet, preferiblemente que respete los estándares de
W3C.
2.3 Requerimientos específicos 2.3.1 Interfaces de usuario Habrá dos partes diferenciadas: el portal Web y la intranet. El portal Web será
visible a todos los usuarios, mientras que para acceder a la intranet habrá que identificarse como padre/alumno, profesor o administrador.
2.3.2 Requisitos funcionales 2.3.2.1 Usuarios no registrados 2.3.2.1.1 Información general En está sección se hará una presentación del centro acompañada de una foto. Entre
la información que podemos encontrar estará la dirección, el teléfono y otros datos de interés.
2.3.2.1.2 Historia Se hará un breve resumen de la historia del centro indicando el año de fundación,
acontecimientos que ellos consideren más importantes, anteriores equipos directivos, así como las remodelaciones y traslados que haya podido sufrir el centro en el transcurso de su historia.
2.3.2.1.3 Equipo de dirección Se mostrará el organigrama directivo del centro en el que aparecerá la organización
interna del centro con todos sus componentes como el director, el jefe de estudios, etc. De cada uno se mostrará información como su teléfono interno, su e-mail, su despacho y sus horarios de atención.
2.3.2.1.4 Reglamento de régimen interno Se podrá acceder al reglamento de régimen interno redactado por el centro. Se
dispondrá de varios formatos, uno de ellos para poder visualizarlo desde el navegador mismo y otro para su posible descarga en el ordenador del usuario.
2.3.2.1.5 Calendario escolar Se mostrará el calendario escolar donde se podrán consultar los días festivos y los
no lectivos del centro. En el mismo calendario se podrá ver la fecha de las actividades
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 12
realizadas en el centro, así como los periodos de evaluación o de los plazos de matriculación y presentación de becas.
2.3.2.1.6 Localización Aquí se pondrá la dirección del centro acompañada de un mapa para facilitar la
localización. También se podrán consultar las rutas de autobuses existentes para recoger a los alumnos. Además se colocarán los diferentes accesos por carretera al colegio, así como líneas de transporte público.
2.3.2.1.7 Contactar Se dispondrá de un pequeño formulario a través del cual se pueden hacer llegar las
dudas o consultas por e-mail al centro. También se mostrarán los teléfonos del centro para los usuarios que prefieran ponerse en contacto con el centro por teléfono. La dirección completa también se podrá consultar en este apartado.
2.3.2.1.8 Enlaces Aquí aparecerán enlaces a otras webs de interés para el usuario, como pueden ser las
webs del Ministerio de Educación, la Conselleria de Educación, webs de recursos educativos y los que el colegio considere oportunos. Estos enlaces estarán ordenados por área de interés.
2.3.2.2 Usuarios registrados como alumno/padre Las funcionalidades descritas a continuación sólo son accesibles para los usuarios
que se identifiquen como alumno/padre que hayan sido dados de alta por el administrador previamente.
2.3.2.2.1 Horario Aquí se mostrará el horario de clases correspondiente al grupo en el cual está
matriculado el alumno. 2.3.2.2.2 Listado de alumnos Se mostrará una lista con los alumnos del mismo grupo al que pertenece. Los datos
mostrados serán nombre y apellidos del alumno, su dirección de correo electrónico. 2.3.2.2.3 Listado de profesores Se mostrará una lista con los profesores que imparten clase al alumno. Los datos
mostrados serán nombre y apellidos del alumno, su dirección de correo electrónico y su despacho.
2.3.2.2.4 Notas Aquí se podrán consultar las notas obtenidas por el alumno en las asignaturas en las
que esté matriculado. También aparecerá la nota media del grupo para poder tener una idea de la marcha del grupo en general.
2.3.2.2.5 Faltas de asistencia En este apartado habrá constancia de las faltas de asistencia a clases que ha tenido el
alumno a lo largo del curso. También se podrá diferenciar entre las justificadas y las no justificadas.
2.3.2.2.6 Menú semanal
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 13
En esta sección aparecerá el menú del comedor escolar. También aparecerá el nombre del encargado del comedor para poder consultar con él cualquier tipo de duda o queja. Así como la normativa vigente del comedor. Además aparecerán los precios del comedor diferenciados por días, semanas o meses según se quiera consultar.
2.3.2.2.7 Reserva de instalaciones Desde aquí se podrán reservar las instalaciones del centro, como pueden ser la pista
de fútbol, el gimnasio, el aula de usos múltiples, etc. También se podrá anular reservas. Las reservas sólo pueden hacerse en horario extraescolar. Además se dispondrá de las normas a la hora de usar las instalaciones y de hacer la reserva.
2.3.2.2.8 Tablón de anuncios Aquí se publicarán anuncios en general. Por ejemplo, un alumno puede publicar un
anuncio para buscar gente para practicar algún deporte. También podrán eliminar mensajes creados por ellos mismos.
2.3.2.3 Usuarios registrados como profesores A continuación describimos las funcionalidades accesibles desde la intranet de los
usuarios identificados como profesores que hayan sido dados de alta por el administrador previamente.
2.3.2.3.1 Listado de alumnos Se mostrará una lista de los alumnos a los que imparte clase ordenados por el grupo
al que pertenecen. Los datos mostrados serán nombre y apellidos del alumno, su dirección de correo electrónico incluido el teléfono de contacto de los padres.
2.3.2.3.2 Listado de profesores Se mostrará un listado del resto de profesores que imparten clase en el centro. Los
datos mostrados serán nombre y apellidos del profesor, su dirección de correo electrónico y su despacho.
2.3.2.3.3 Poner notas Desde aquí se podrá introducir las notas de cada alumno que podrán ser visualizadas
posteriormente por los alumnos desde su intranet. Los alumnos aparecerán ordenados por grupos. En esta sección también se podrán modificar notas que hayan sido previamente introducidas.
2.3.2.3.4 Poner faltas de asistencia Desde aquí se podrá introducir las faltas de asistencia de cada alumno. También se
podrá justificar las faltas que aún no lo están. En caso de error también estará la posibilidad de poder modificar dichas faltas.
2.3.2.3.5 Reserva de instalaciones Desde aquí se podrá reservar las instalaciones del centro, como pueden ser la pista
de fútbol, el gimnasio, el aula de usos múltiples, etc. También se podrá anular reservas. Además se dispondrá de las normas a la hora de usar las instalaciones y de hacer la reserva.
2.3.2.3.6 Reserva de equipamientos
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 14
Desde aquí se podrá reservar los equipamientos del centro, tales como el radio-CD, proyectores de diapositivas, etc. En el caso de ya estar reservado en la franja horaria requerida, aparecerá quien lo ha reservado. También se podrán anular reservas que haya efectuado antes el profesor. Además se dispondrá de las normas a la hora de usar las instalaciones y de hacer la reserva.
2.3.2.3.7 Tablón de anuncios Se podrá acceder y publicar anuncios al mismo tablón de los alumnos/padres, con
las mismas funcionalidades que ellos. También podrán eliminar mensajes creados por ellos mismos.
2.3.2.4 Administrador del portal Por último, las siguientes funcionalidades sólo serán accesibles al administrador del
portal. 2.3.2.4.1 Dar de alta usuarios El administrador podrá dar de alta a usuarios de cualquier tipo e introducir su
correspondiente información. Los usuarios a los que podrá dar de alta serán aquellos profesores que estén impartiendo clases en el centro o a aquellos alumnos/padres que estén matriculados en el centro.
2.3.2.4.2 Dar de baja a usuarios El administrador podrá eliminar usuarios para que ya no puedan acceder a su
correspondiente información personalizada, ya sea porque se han dado de baja en el centro en el caso de los alumnos o porque ya no trabajen allí en el caso de los profesores.
2.3.2.4.3 Modificar usuarios Podrá modificar atributos a los usuarios. Esto es útil para cambios de domicilio,
teléfono, etc. o por errores a la hora de dar de alta a algún usuario. Otra opción desde esta sección es poder sancionar a usuarios restringiéndole el acceso al tablón de anuncios si éste pone anuncios obscenos o de otra índole que no se considere apropiada para los alumnos o quitar el permiso de reservar instalaciones o equipaciones si este hace una reserva pero no la lleva a cabo.
2.3.2.4.4 Dar de alta noticias Se podrá introducir noticias nuevas que serán visibles en la página principal del
portal. 2.3.2.4.5 Ver estadísticas de la Web Aquí aparecerán estadísticas de la Web, como el número de accesos. 2.3.2.4.6 Mantenimiento del foro Aquí el administrador podrá eliminar los anuncios del foro que el considere
inapropiados. Al comienzo de cada curso el administrador podrá eliminar todos los anuncios del curso pasado del foro.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 15
3. Análisis Para realizar el análisis de esta aplicación Web se ha optado por seguir las recomendaciones definidas por UML (Unified Modeling Language o Lenguaje Unificado de Modelado en castellano). Este modelo dispone de multitud de diagramas que nos ayudarán a comprender la complejidad del futuro sistema, permitiéndonos plasmar en un lenguaje estándar aquellas funcionalidades, requisitos y demás características que hemos detectado en el sistema. Los resultados producidos por UML son el equivalente a los planos con los que trabajan los arquitectos, por ejemplo. Estos modelos nos permitirán comprender mejor la aplicación, especialmente en grandes aplicaciones, lo que nos facilitará la tarea de implementación, así como la ampliación del sistema si fuera necesario. Aunque UML define una gran cantidad de diagramas para representar los distintos aspectos del desarrollo de la aplicación, en nuestro caso nos centraremos en tres tipos de diagrama:
• Diagrama de clases • Diagrama de casos de usos • Diagrama de secuencia
Cada uno de estos diagramas pertenece una clase de diagramas (de estructura, de comportamiento y de interacción respectivamente), lo que nos permitirá cubrir los distintos aspectos del desarrollo.
3.1. Diagrama de clases. El diagrama de clases nos permite visualizar las relaciones que involucran el
sistema. También nos permitirá conocer a grandes rasgos las clases u objetos de nuestro sistema.
A continuación describiremos brevemente dichas clases para conocer mejor la
aplicación. Usuario Registrado: Esta clase representa a aquellos usuarios que pueden
acceder a la intranet de la aplicación y que podrán interactuar con el sistema, en la medida de los permisos que les concedamos. Tiene una serie de atributos que permite definirlos, siendo los más importantes, desde el punto del sistema, el “login” que deberá ser único dentro del sistema y la “contrasenya” ya que serán necesarios a la hora de poder acceder a la intranet del colegio. De esta clase se derivan las siguientes sub-clases: Alumno, Profesor, Progenitor, Equipo directivo y Administrador.
Instalación: Este objeto representa aquellas infraestructuras del colegio que
pueden ser reservadas, en principio por todos los usuarios registrados. Un posible ejemplo de infraestructura reservable podría ser el caso de un aula informática, que pueda ser reservada por un profesor para realizar una clase especial en ella.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 16
Figura 1 Diagrama de Clases de la aplicación
Anuncio: Esta clase representa aquellos mensajes que pueden publicar los
usuarios registrados en el sitio Web. Estos mensajes serán públicos para todos los usuarios registrados de la aplicación.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 17
Progenitor: Esta entidad identifica a los padres, madres o tutores de los alumnos del centro que pueden acceder a la sección privada del sitio. Esta clase se deriva de Usuario Registrado.
Alumno: Una de las clases derivadas de Usuario Registrado es alumno. Esta clase representa a aquellos alumnos matriculados en el centro que pueden acceder a la intranet de la aplicación.
Grupo: Este objeto contendrá la información necesaria para identificar a los
distintos grupos de alumnos que conforman el colegio. Seguirá la distribución normal de los colegios, separando los grupos tanto por el curso como por una letra.
Profesor: Esta clase, derivada también de la súper clase Usuario Registrado,
representa a aquellos profesores del colegio que acceden a la sección privada de la aplicación.
Asignatura: Esta clase representa a las materias que se imparten en el centro y a
las que asisten los alumnos y que son impartidas por los profesores del centro. Falta de asistencia: Este objeto permitirá identificar las ausencias de los
alumnos en horario escolar, ya sean sin justificar o justificándolas más adelante. De esta forma se podrá llevar un control de las asistencias de los alumnos a clase y que podrá ser consultado por sus padres o tutores. Esta clase solamente podrá ser modificada por los profesores al poner las faltas.
Equipación: Esta clase al igual que las instalaciones, permite realizar reservadas
de objetos del colegio, aunque en este caso únicamente podrá realizar la operación profesores. Un ejemplo de equipación que puede ser reservado sería un radio-cd o televisor.
Equipo directivo: De esta clase se derivarán otras tres (director, jefe estudios,
secretario) Dichas clases representarán a dichos cargos en la aplicación. Administrador: Esta clase representa a aquellos usuarios que administrarán el
sitio Web del colegio y que tendrá los permisos suficientes para realizar cualquier acción.
Evento: Esta clase identificará aquellas noticias que el colegio considere de
interés para el conjunto del colegio. Este objeto podrá contener tanto eventos que se producen en el centro, por ejemplo excursiones, exámenes, etc, como eventos de un mayor alcance, por ejemplo, fiesta locales, autonómicos y nacionales, etc. Esta clase solamente podrá ser modificada por los usuarios que pertenezcan a la clase Equipo directivo o a la clase de Administradores.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 18
3.2. Diagrama de casos de uso Los diagramas de casos de uso nos permitirán conocer los distintos tipos de
actores que podrán acceder y/o utilizar nuestra aplicación. También nos servirá para especificar las acciones que tendrán dichos usuarios dentro de nuestra aplicación, así como las relaciones que aparecerán entre los distintos casos de uso.
Para algunos casos de uso, además se incluye su plantilla, que proporciona
información adicional sobre dichos casos de uso. No se han colocado todas las plantillas, ya que muchas prácticamente son idénticas.
Figura 2 Actores del sistema
En la Figura 2 Actores del sistema se puede ver los distintos tipos de actores
(entidades externas al sistema que interactúan con él) que podrán acceder a la aplicación. Todos ellos derivan de Usuario. Este actor representa para la aplicación Web a todos aquellos usuarios que no se han identificado ante el sistema, ya sea porque todavía no hayan iniciado la sesión o porque sean usuarios que estén de paso o buscando información.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 19
3.2.1. Casos de uso del usuario
Figura 3 Caso de uso para Usuario
En la Figura 3 Caso de uso para Usuario se puede ver los casos de usos a los
que podrá acceder el actor Usuario. Dado que este tipo de actor no se ha identificado ante el sistema, las acciones que podrá realizar serán en consecuencia muy limitadas, centrándose en la obtención de información general del centro.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 20
3.2.2. Casos de uso del usuario registrado
Figura 4 Caso de uso Usuario Registrado
En la Figura 4 Caso de uso Usuario Registrado pueden verse todos los casos de usos a los que tendrá acceso el usuario registrado. Como puede verse, este usuario será el que más casos de uso disponga, ya que en realidad, este actor nos permite crear un usuario genérico del que dependerán del resto de usuarios que pueden acceder a la intranet. De esta forma podemos asignar a este actor todos los casos de usos que serán comunes a todos los actores que utilizarán esta aplicación (con excepción del actor usuario).
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 21
3.2.3. Casos de uso del administrador
Figura 5 Caso de uso del Administrador
En la imagen anterior, puede verse el caso de uso del actor Administrador. Este
actor será el que más funcionalidades posea, ya que, además de las funcionalidades que posee todo usuario registrado, como administrador tendrá acceso total al sistema.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 22
3.2.4. Casos de uso del alumno y del progenitor
Figura 6 Caso de uso del Alumno y del Progenitor
Este caso de uso, muestra las funcionalidades que tendrán a su disposición tanto
los alumnos como sus padres, madres, o tutores. Los padres podrán acceder a la misma información que sus hijos para así poder realizar un control sobre ciertos aspectos como el control de asistencia a clase.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 23
3.2.5. Casos de uso del profesor
Figura 7 Caso de uso para Profesor
En la Figura 7 Caso de uso para Profesor pueden verse las funcionalidades de las
que dispondrá el profesor. En este caso será el que más pueda modificar el sistema (aparte del administrador), ya que el profesor dispondrá de varios casos de uso que le permitirán modificar la información de los alumnos de sus respectivas asignaturas.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 24
3.2.6. Casos de uso del equipo directivo
Figura 8 Caso de uso para Equipo Directivo
El equipo directivo será el actor que menos casos de usos propios dispone (hay
que recordar que todos los actores a excepción de usuario, heredan los casos de uso del usuario registrado)
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 25
3.3. Diagrama de Secuencia Este tipo de diagrama nos ayudará a identificar las comunicaciones que se
producen dentro del sistema y las operaciones de clase. También nos mostrará la secuencia temporal del flujo de mensajes.
No se colocarán todos los diagramas de secuencia, ya que muchos son
prácticamente idénticos unos de otros.
3.3.1. Iniciar sesión
Figura 9 Diagrama de secuencia: Iniciar sesión
En la Figura 9 Diagrama de secuencia: Iniciar sesión se puede ver el diagrama
de secuencia que será más utilizado por los usuarios registrados, ya que éste será el escenario que les permitirá acceder a la intranet del colegio, en el caso de que introduzcan correctamente sus datos (login y password).
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 26
3.3.2. Añadir anuncio al tablón de anuncios
Figura 10 Diagrama de secuencia: Añadir anuncio
En este escenario, el Usuario Registrado podrá crear nuevos anuncios que aparecerán en el tablón de anuncios del colegio. El Usuario Registrado deberá proporcionar el título del anuncio y el contenido del mismo.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 27
3.3.3. Consultar horario
Figura 11 Diagrama de Secuencia: Consultar Horario
Este escenario permitirá tanto a los alumnos como a sus tutores consultar el horario de las clases del alumno. El sistema obtendrá los datos del grupo del alumno que solicita el horario. Con los datos del grupo solicitará el horario de cada asignatura que tenga ese grupo en cuestión. Una vez que el sistema tenga los horarios del grupo del alumno, se los devolverá al alumno
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 28
3.3.4. Dar de baja alumnos
Figura 12 Diagrama de Secuencia: Dar de baja alumnos
En este escenario el administrador podrá eliminar o dar de baja a alumnos de la
aplicación. En esta situación el administrador solicitará los datos del alumno a eliminar. El sistema le devolverá todos los datos del alumno, si el administrador confirma la eliminación del alumno, el sistema lo intentará suprimir del sistema devolviendo el resultado de la eliminación al administrador.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 29
3.3.5. Mostrar notas
Figura 13 Diagrama de Secuencia: Mostrar notas
En la Figura 13 Diagrama de Secuencia: Mostrar notas podemos ver el diagrama de secuencia necesario para que los alumnos puedan ver las notas de las asignaturas en las que están matriculados. El escenario comienza cuando el alumno desea ver sus notas, el sistema obtendrá los datos del alumno y con éstos los del grupo al que pertenece el alumno. Para cada asignatura que se imparta en ese grupo se obtendrá sus notas correspondientes. Una vez que el sistema haya obtenido todas las notas, se las devolverá al alumno.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 30
3.3.6. Poner notas
Figura 14 Diagrama de Secuencia: Poner notas
Este diagrama representa los pasos que deberá seguir el profesor a fin de poder
calificar a sus alumnos. El profesor pedirá al sistema que le proporcione los alumnos que tiene en cada asignatura que imparte ese profesor. El sistema le devolverá el listado de alumnos para esa asignatura. En este momento el profesor podrá calificar a cada uno de los alumnos. Una vez que haya acabado de puntuar a los alumnos de una asignatura puede pasar a la siguiente asignatura que imparta.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 31
3.3.7. Poner faltas de asistencia
Figura 15 Diagrama de Secuencia: Poner faltas de asistencia
Este diagrama de secuencia es muy parecido al que podía verse en la Figura 14
Diagrama de Secuencia: Poner notas. El profesor solicitará al sistema que le proporcione el listado de alumnos que asisten a la asignatura que el elija (de las que el profesor imparte). Una vez que el sistema le dé el listado de alumnos, el profesor podrá ir indicando al sistema los alumnos que han faltado a la asignatura, para ello deberá indicar la fecha de la falta (por defecto la fecha del sistema) y si ha sido justificada. El profesor podrá repetir este proceso por cada asignatura que imparta.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 32
3.3.8. Reservar equipaciones
Figura 16 Diagrama de Secuencia: Reservar equipación
En este escenario el profesor será capaz de realizar la reserva de equipaciones
del colegio como puedan ser radio-cd, televisores, etc. En el primer paso, el profesor pedirá al sistema que le muestre la disponibilidad de la equipación que está interesado en reservar. El sistema le devolverá un listado con los días en que se puede reservar la equipación. En este momento el profesor deberá escoger una de las fechas disponibles y escribir el motivo de su petición. A continuación el profesor confirmará los datos de la reserva, a lo que el sistema le responderá si fue posible realizar la reserva de la equipación requerida.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 33
3.3.9. Anular reserva de instalaciones
Figura 17 Diagrama de secuencia: Anular reserva de instalaciones.
En el diagrama mostrado en la Figura 17 Diagrama de secuencia: Anular reserva, puede verse los pasos que necesitará seguir un usuario registrado para poder eliminar una reserva que haya efectuado él mismo. El primer paso que seguirá el usuario registrado será pedir al sistema que le proporciones todas las reservas que tiene. Cuando el sistema le devuelva el listado con las reservas del usuario, éste podrá escoger la reserva de la instalación para anular y el sistema quitará la reserva. Como último paso el sistema le proporcionará el listado de reserva actualizado.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 34
4. Diseño Para el diseño del sitio Web se ha escogido una arquitectura de tres capas. Se ha
elegido esta arquitectura debido al desacoplamiento entre las distintas capas. De esta forma se pueden cambiar fácilmente el comportamiento de las clases en el nivel de aplicación sin que ello influya en las otras capas. Estas capas se corresponden con la de presentación, aplicación y persistencia.
Figura 18 - Arquitectura a tres capas.
4.1. Nivel de presentación La primera capa es la de presentación. Esta capa es la encargada de interaccionar
con el usuario a través de una representación visual. En esta capa también se ofrecen servicios al usuario.
A continuación presentamos algunas capturas de pantalla representativas del proyecto.
PRESENTACIÓN
PERSISTENCIA
APLICACIÓN
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 35
Figura 19 Captura de la página de inicio.
Esta es la pantalla principal del sitio web. La podemos dividir en varias partes.
• La cabecera, que consta de tres elementos. A la parte izquierda encontramos la zona institucional, con el logotipo del colegio, en la parte central el nombre del colegio (C.P. Emilio Lluch) y debajo de ambos una barra amarilla donde aparece la fecha y la hora actual, la cual se va actualizando cada segundo.
Figura 20 Cabecera de la página.
• En la parte izquierda de la página encontramos la zona de navegación
representada por un menú desde el cual podemos acceder a las diferentes secciones.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 36
Figura 21 Menú del sitio web.
Justo debajo del menú se encuentra una pequeña zona de entrada de datos para que
los usuarios registrados en la base de datos puedan identificarse introduciendo su login y su contraseña y acceder a su zona privada.
Figura 22 Formulario de inicio de sesión
• Por último, en la zona central de la página se haya la zona de información, que a su vez la podemos dividir en dos partes. En la parte superior se ubica la información principal que ofrece la página, mientras que en la parte inferior aparecen las cinco últimas noticias introducidas en la base de datos.
Figura 23 Zona de información de la página de inicio.
A continuación presentamos otros ejemplos de las páginas web implementadas en
nuestro proyecto. La siguiente página se corresponde con la que muestra el calendario escolar. Para ello se ha utilizado un script que forma un calendario, mostrando los sábados y domingos en rojo, así como los festivos marcados como tales en la base de datos. También se marcan de otro color los eventos introducidos por el centro en la base de datos. Si pinchamos en un festivo o un día en el cual hay un evento programado, nos dice de qué se trata en la parte inferior de la página.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 37
Figura 24 Captura de la página donde se muestra el calendario escolar.
La siguiente captura de pantalla se corresponde con un ejemplo de página de la zona
privada del alumno. Para ello el alumno debe haberse identificado antes. En esta pantalla por ejemplo, se muestra el horario de un alumno, leyendo el horario de cada asignatura de la base de datos. Como podemos comprobar, el menú ha cambiado, ofertando ahora las opciones de la zona privada del alumno. También observamos que en la zona donde se ha identificado el usuario, ahora aparece “Bienvenido” seguido de su nombre de pila. También da la opción de cerrar sesión, volviendo tras ello a la página inicial del sitio web. Otro cambio es que ahora en vez de mostrar en la parte inferior noticias, sólo se muestran los próximos eventos referentes al desarrollo del curso ya que son los que más interés tienen para el alumno, como por ejemplo la fecha de inicio del próximo curso que es lo que hemos puesto en la captura de pantalla adjunta.
Figura 25 Captura del horario de clase en la zona privada de un alumno.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 38
Por último, la siguiente captura de pantalla pertenece a la zona privada del profesor. Al igual que la zona privada del alumno, esta parte del sitio también dispone de su propio menú. En este ejemplo, podemos apreciar la pantalla de la que dispone el profesor para poner calificaciones a los alumnos que imparte clase, pudiendo elegir el trimestre correspondiente y pudiendo guardar cada nota individualmente o todas a la vez.
Figura 26 Captura del formulario de notas de la zona privada del profesor.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 39
4.2. Nivel de aplicación
Esta capa es la encargada de implementar el comportamiento de nuestro sitio web. También sirve de enlace entre las otras dos capas, ya que la capa de presentación no accede a la base de datos directamente, sino que ésta se comunica con la capa de aplicación para demandarle el servicio deseado y la capa de aplicación se comunica con la capa de persistencia para recuperar los datos necesarios.
Figura 27 Capas del proyecto
La capa de aplicación está organizada en cinco componentes. El analizador del login
será el encargado de comprobar el usuario y luego redirigir a su zona privada correspondiente cuando un usuario de identifique desde la zona anónima. Los siguientes
Capa de presentación
Zona anónima Zona alumno Zona profesor
Capa de aplicación
Analizadorlogin Alumno_inc Profesor_inc Anonimo_inc
bd
Capa de persistencia
Base de datos
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 40
tres componentes (anonimo_inc, alumno_inc y profesor_inc) son los encargados de implementar la lógica de las zonas correspondientes.
Cuando alguno de estos ficheros necesite acceder a la base de datos ya sea para
realizar una consulta o para modificar datos, lo hará a través de bd. Este componente surge de aplicar el patrón de diseño llamado Fachada o Façade. Este patrón consiste en utilizar la clase bd para todas las operaciones que interactúen con la base de datos. El uso de este patrón es muy útil para actualizar cambios en la base de datos como pueden ser el tipo de base de datos (MySQL, SQL Server, etc.) o el nombre de la base de datos por ejemplo. En nuestro caso nos ha sido muy útil, por ejemplo, para hacer pruebas en nuestro servidor local y luego subirlas al servidor prestado por el director del proyecto, ya que en ambos accedíamos a la base de datos con usuarios distintos. De esta forma, para adaptarnos a la base de datos del servidor simplemente teníamos que cambiar la clase bd sin tener que tocar ningún fichero más.
4.3. Nivel de persistencia
La capa de persistencia es la que dota al sistema de poder mantener los datos de una
forma persistente como su propio nombre indica, es decir, de mantener información de una sesión a otra aunque el sistema no esté en uso.
A continuación mostramos el diagrama entidad-relación utilizado para la
implementación de la base de datos de nuestro proyecto.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 41
Figura 28 Diagrama entidad-relación.
En el diagrama podemos observar los tipos de personal que existen en el colegio,
como son los pertenecientes al equipo directivo, el administrador, el padre, el alumno y
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 42
el profesor. Esta especialización de usuario registrado es disjunta, ya que por ejemplo, un profesor puede formar parte del equipo directivo del centro o un profesor puede llevar a su hijo a ese colegio, por lo que también puede ser padre.
Los miembros del equipo directivo, junto con el administrador, son los únicos que
pueden introducir eventos. Estos eventos pueden ser de varios tipos según su atributo evento. Pueden ser del tipo festivo, los cuales se utilizan en el calendario escolar para marcar los festivos en rojo. También podrán ser de tipo noticia, los cuales se muestran en la parte inferior de la zona pública o de tipo evento del curso, los cuales se muestran en las zonas privadas y muestran información de interés a los usuarios registrados, como puede ser el día de inicio de las clases.
Los alumnos están matriculados en un grupo, el cual se caracteriza por su número de
curso y su letra. Uno de ellos, además, será el delegado del mismo. Cada grupo también tendrá un profesor que lo tutorice. Los grupos están compuestos por asignaturas, las cuales son impartidas por un profesor, pudiendo un profesor impartir múltiples asignaturas. Por cada asignatura y curso, el alumno podrá obtener una nota por trimestre. Asimismo, cada vez que falte a una clase se le pondrá una falta de asistencia que estará por defecto sin justificar hasta que los padres la justifiquen al tutor del grupo.
Todos los usuarios identificados en el sistema podrán publicar anuncios en el tablón
de anuncios, así como reservar una instalación del colegio, mientras que los profesores serán los únicos que puedan reservar equitaciones (radio-cd, proyector, .etc.).
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 43
5. Implementación
5.1. Tecnologías
Dada la necesidad de crear contenidos dinámicos, debemos utilizar otros lenguajes a
parte de HTML. Para este proyecto se ha optado por el lenguaje PHP acompañado de una base de datos MySQL. Estas tecnologías cumplen sobradamente con nuestras necesidades y están muy extendidas, por lo que no supondrá una dificultad encontrar documentación en la cual apoyarnos durante el desarrollo del sitio web. También cabe destacar el hecho de que sean tecnologías de libre distribución y uso.
5.1.1. HTML El HTML, acrónimo inglés de HyperText Markup Language (lenguaje de marcas
hipertextuales), es un lenguaje de marcación diseñado para estructurar textos y presentarlos en forma de hipertexto, que es el formato estándar de las páginas web. Gracias a Internet y a los navegadores del tipo Internet Explorer, Opera, Firefox o Netscape, el HTML se ha convertido en uno de los formatos más populares que existen para la construcción de documentos y también de los más fáciles de aprender.HTML es una aplicación de SGML conforme al estándar internacional ISO 8879.
El lenguaje HTML puede ser creado y editado con cualquier editor de textos básico,
como puede ser Gedit, el Bloc de Notas de Windows (o Notepad), o cualquier otro editor que admita texto sin formato como GNU Emacs, Microsoft Wordpad, etc. Existen además, otros programas para la realización de sitios Web o edición de código HTML, como por ejemplo Microsoft FrontPage o Macromedia Dreamweaver.
HTML utiliza etiquetas o marcas, que consisten en breves instrucciones de
comienzo y final, mediante las cuales se determinan la forma en la que debe aparecer en su navegador el texto, así como también las imágenes y los demás elementos, en la pantalla del ordenador.
Toda etiqueta se identifica porque está encerrada entre los signos menor que y
mayor que (<>), y algunas tienen atributos que pueden tomar algún valor. En general las etiquetas se pueden aplicar de las siguientes formas:
• Se abren y se cierran, como por ejemplo: <b>negrita</b> que se vería en su navegador como negrita.
• No pueden abrirse y cerrarse, como <hr> que se vería en su navegador como una línea horizontal.
• Otras que pueden abrirse y cerrarse, como por ejemplo <p>.
5.1.2. XHTML
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 44
XHTML, acrónimo inglés de eXtensible Hypertext Markup Language (lenguaje extensible de marcado de hipertexto), es el lenguaje de marcado pensado para sustituir a HTML como estándar para las páginas web. XHTML es la versión XML de HTML, por lo que tiene, básicamente, las mismas funcionalidades, pero cumple las especificaciones, más estrictas, de XML. Su objetivo es avanzar en el proyecto del World Wide Web Consortium de lograr una web semántica, donde la información, y la forma de presentarla estén claramente separadas. En este sentido, XHTML serviría únicamente para transmitir la información que contiene un documento, dejando para hojas de estilo y JavaScript su aspecto y diseño en distintos medios (ordenadores, PDAs, teléfonos móviles, impresoras...).
XHTML es el sucesor de HTML. Es por eso que muchos lo consideran la “versión
actual” del HTML, pero es una recomendación aparte y a la vez paralela; la W3C continúa recomendando el uso de XHTML 1.1, XHTML 1.0, y HTML 4.01 para publicar en la web.
La necesidad de una versión más estricta de HTML se sintió principalmente porque
el contenido de la World Wide Web ahora puede visualizarse desde numerosos dispositivos (como móviles) aparte de los ordenadores tradicionales, donde no pueden dedicarse recursos suplementarios para afrontar la complejidad añadida de la sintaxis del HTML.
La mayoría de las versiones recientes de los navegadores web más populares
soportan XHTML adecuadamente, pero algunas versiones más antiguas solo pueden leer el XHTML como si se tratara de HTML. El mayor inconveniente es que el Internet Explorer de Microsoft es incompatible con XHTML, a pesar de que esta empresa sea miembro de la W3C. Por tanto, gran parte de los autores de sitios web se ven forzados a elegir entre la escritura de documentos válidos, respetuosos con los estándares u ofrecer contenido que se visualice correctamente en la mayor parte de los navegadores.
Los cambios de HTML a la primera generación de XHTML (es decir, XHTML 1.x)
son menores ya que, principalmente, están destinados a conseguir la conformidad con XML. El cambio más importante es el requisito de que el documento esté bien formado y que todas las etiquetas estén explícitamente cerradas, como se requiere en XML. Como las etiquetas en XML distinguen entre mayúsculas y minúsculas (case-sensitive), la recomendación XHTML ha definido todos los nombres de etiqueta en minúsculas. En XHTML, los valores de los atributos deben encerrarse entre comillas ('simples' o "dobles", es indiferente). Al contrario ocurría en SGML y por consecuencia en HTML, donde las comillas podían omitirse en algunos casos. Todos los elementos han de ser explícitamente cerrados, incluyendo elementos vacíos como pueden ser img o br. Esto puede hacerse añadiendo una barra a la etiqueta: <img … /> y <br />. La minimización de atributos (como <option selected>) está también prohibida, ya que el atributo “selected” no contiene ningún valor explícito; en lugar de eso, se usa <option selected="selected">.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 45
5.1.3. CSS Las hojas de estilo en cascada (Cascading Style Sheets, CSS) son un lenguaje formal
usado para definir la presentación de un documento estructurado escrito en HTML o XML (y por extensión en XHTML). El W3C (World Wide Web Consortium) es el encargado de formular la especificación de las hojas de estilo que servirá de estándar para los agentes de usuario o navegadores.
La idea que se encuentra detrás del desarrollo de CSS es separar la estructura de un
documento de su presentación. Por ejemplo, el elemento de HTML <H1> indica que un bloque de texto es un encabezamiento y que es más importante que un bloque etiquetado como <H2>. Versiones más antiguas de HTML permitían atributos extra dentro de la etiqueta abierta para darle formato (como el color o el tamaño de fuente). No obstante, cada etiqueta <H1> debía disponer de la información si se deseaba un diseño consistente para una página, y además, una persona que lea esa página con un navegador pierde totalmente el control sobre la visualización del texto.
Cuando se utiliza CSS, la etiqueta <H1> no debería proporcionar información sobre
como va a ser visualizado, solamente marca la estructura del documento. La información de estilo separada en una hoja de estilo, especifica cómo se ha de mostrar <H1> : color, fuente, alineación del texto, tamaño, y otras características no visuales como definir el volumen de un sintetizador de voz (véase Sintetización del habla), por ejemplo.
La información de estilo puede ser adjuntada tanto como un documento separado o
en el mismo documento HTML. En este último podrían definirse estilos generales en la cabecera del documento o en cada etiqueta particular mediante el atributo "style".
Las ventajas de utilizar CSS (u otro lenguaje de estilo) son: • Control centralizado de la presentación de un sitio web completo con lo que se
agiliza de forma considerable la actualización del mismo. • Los Navegadores permiten a los usuarios especificar su propia hoja de estilo
local que será aplicada a un sitio web remoto, con lo que aumenta considerablemente la accesibilidad. Por ejemplo, personas con deficiencias visuales pueden configurar su propia hoja de estilo para aumentar el tamaño del texto o remarcar más los enlaces.
• Una página puede disponer de diferentes hojas de estilo según el dispositivo que la muestre o incluso a elección del usuario. Por ejemplo, para ser impresa, mostrada en un dispositivo móvil, o ser "leída" por un sintetizador de voz.
• El documento HTML en sí mismo es más claro de entender y se consigue reducir considerablemente su tamaño.
Hay varias versiones: CSS1 y CSS2, con CSS3 en desarrollo por el World Wide
Web Consortium (W3C). Los navegadores modernos implementan CSS1 bastante bien, aunque existen pequeñas diferencias de implementación según marcas y versiones de los navegadores. CSS2, sin embargo, está solo parcialmente implementado en los más recientes. Un problema muy conocido de implementación de CSS es el de la versión 5.X del popular navegador Internet Explorer que utiliza un modelo no estándar para el cálculo de las medidas.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 46
5.1.4. JavaScript JavaScript es un lenguaje interpretado, es decir, que no requiere compilación,
utilizado principalmente en páginas web, con una sintaxis semejante a la del lenguaje Java.
Al contrario que Java, JavaScript no es un lenguaje orientado a objetos propiamente
dicho, ya que no dispone de Herencia, es más bien un lenguaje basado en prototipos, ya que las nuevas clases se generan clonando las clases base (prototipos) y extendiendo su funcionalidad. Todos los navegadores interpretan el código JavaScript integrado dentro de las páginas web. Para interactuar con una página web se provee al lenguaje JavaScript de una implementación del DOM.
El lenguaje fue inventado por Brendan Eich en la empresa Netscape
Communications, que es la que fabricó los primeros navegadores web comerciales. Tradicionalmente, se venía utilizando en páginas web HTML, para realizar tareas y operaciones en el marco de la aplicación únicamente cliente, sin acceso a funciones del servidor. JavaScript se ejecuta en el agente de usuario al mismo tiempo que las sentencias van descargándose junto con el código HTML.
Los autores inicialmente lo llamaron Mocha y más tarde LiveScript pero fue
rebautizado como JavaScript en un anuncio conjunto entre Sun Microsystems y Netscape, el 4 de diciembre de 1995.
En 1997 los autores propusieron JavaScript para que fuera adoptado como estándar de la the European Computer Manufacturers' Association ECMA, que a pesar de su nombre no es europeo sino internacional, con sede en Ginebra. En junio de 1997 fue adoptado como un estándar ECMA, con el nombre de ECMAScript. Poco después también lo fue como un estándar ISO.
JScript es la implementación de ECMAScript de Microsoft, muy similar al
JavaScript de Netscape, pero con ciertas diferencias en el modelo de objetos del navegador que hacen a ambas versiones con frecuencia incompatibles. Para evitar estas incompatibilidades, el World Wide Web Consortium (W3C) diseñó el estándar Document Object Model (DOM, ó Modelo de Objetos del Documento en castellano), que incorporan Konqueror, las versiones 6 de Internet Explorer y Netscape Navigator, Opera versión 7, y Mozilla desde su primera versión.
5.1.5. PHP PHP es un lenguaje de programación usado generalmente para la creación de
contenido para sitios web. PHP es un acrónimo recurrente que significa "PHP Hypertext Pre-processor" (inicialmente PHP Tools, o, Personal Home Page Tools), y se trata de un lenguaje interpretado usado para la creación de aplicaciones para servidores, o creación de contenido dinámico para sitios web. Últimamente también para la creación de otro tipo de programas incluyendo aplicaciones con interfaz gráfica usando la biblioteca GTK+.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 47
El fácil uso y la similitud con los lenguajes más comunes de programación estructurada, como C y Perl, permiten a la mayoría de los programadores experimentados crear aplicaciones complejas con una curva de aprendizaje muy suave. También les permite involucrarse con aplicaciones de contenido dinámico sin tener que aprender todo un nuevo grupo de funciones y prácticas. Debido al diseño de PHP, también es posible crear aplicaciones con una interfaz gráfica para el usuario (también llamada GUI), utilizando la extensión PHP-GTK. También puede ser usado desde la línea de órdenes, de la misma manera como Perl o Python pueden hacerlo, esta versión de PHP se llama PHP CLI (Command Line Interface).
Su interpretación y ejecución se da en el servidor, en el cual se encuentra
almacenado el script, y el cliente sólo recibe el resultado de la ejecución. Cuando el cliente hace una petición al servidor para que le envíe una página web, generada por un script PHP, el servidor ejecuta el intérprete de PHP, el cual procesa el script solicitado que generará el contenido de manera dinámica, pudiendo modificar el contenido a enviar, y regresa el resultado al servidor, el cual se encarga de regresárselo al cliente. Además es posible utilizar PHP para generar archivos PDF, Flash, así como imágenes en diferentes formatos, entre otras cosas.
Permite la conexión a diferentes tipos de servidores de bases de datos tales como
MySQL, Postgres, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite; lo cual permite la creación de Aplicaciones web muy robustas.
PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas
operativos tales como UNIX (y de ese tipo, como Linux), Windows y Mac OS X, y puede interactuar con los servidores de web más populares ya que existe en versión CGI, módulo para Apache, e ISAPI.
El modelo PHP puede ser visto como una alternativa al sistema de Microsoft que
utiliza ASP.NET/C#/VB.NET, a ColdFusion de la compañía Macromedia, a JSP/Java de Sun Microsystems, y al famoso CGI/Perl. Aunque su creación y desarrollo se da en el ámbito de los sistemas libres, bajo la licencia GNU, existe además un IDE comercial llamado Zend Optimizer.
Los principales usos del PHP son los siguientes: • Programación de páginas web dinámicas, habitualmente en combinación con el
motor de base datos MySQL, aunque cuenta con soporte nativo para otros motores, incluyendo el estándar ODBC, lo que amplía en gran medida sus posibilidades de conexión.
• Programación en consola, al estilo de Perl o Shell scripting. • Creación de aplicaciones gráficas independientes del navegador, por medio de la
combinación de PHP y GTK (GIMP Tool Kit), lo que permite desarrollar aplicaciones de escritorio en los sistemas operativos en los que está soportado.
Entre las ventajas de PHP podemos encontrar:
• Es un lenguaje multiplataforma. • Capacidad de conexión con la mayoría de los manejadores de base de datos que
se utilizan en la actualidad, destaca su conectividad con MySQL • Leer y manipular datos desde diversas fuentes, incluyendo datos que pueden
ingresar los usuarios desde formularios HTML.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 48
• Capacidad de expandir su potencial utilizando la enorme cantidad de módulos (llamados ext's o extensiones).
• Posee una amplia documentación en su página oficial ([1]), entre la cual se destaca que todas las funciones del sistema están explicadas y ejemplificadas en un único archivo de ayuda.
• Es libre, por lo que se presenta como una alternativa de fácil acceso para todos. • Permite las técnicas de Programación Orientada a Objetos. • Permite crear los formularios para la web. • Biblioteca nativa de funciones sumamente amplia e incluida • No requiere definición de tipos de variables ni manejo detallado del bajo nivel.
5.1.6. MySQL MySQL es un sistema de gestión de base de datos, multihilo y multiusuario con más
de seis millones de instalaciones. MySQL AB desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado lo ofrece bajo la GNU GPL, pero, empresas que quieran incorporarlo en productos privativos pueden comprar a la empresa una licencia que les permita ese uso. Está desarrollado en su mayor parte en ANSI C.
Al contrario de proyectos como el Apache, donde el software es desarrollado por
una comunidad pública, y el copyright del código está en poder del autor individual, MySQL está poseído y patrocinado por una empresa privada, que posee el copyright de la mayor parte del código. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson, y Michael Widenius.
SQL (Lenguaje de Consulta Estructurado) fue comercializado por primera vez en
1981 por IBM, el cual fue presentado a ANSI y desde ese entonces ha sido considerado como un estándar para las bases de datos relacionales. Desde 1986, el estándar SQL ha aparecido en diferentes versiones como por ejemplo: SQL:92, SQL:99, SQL:2003. MySQL es una idea originaria de la empresa opensource MySQL AB establecida inicialmente en Suecia en 1995 y cuyos fundadores son David Axmark, Allan Larsson, y Michael "Monty" Widenius. El objetivo que persigue esta empresa consiste en que MySQL cumpla el estándar SQL, pero sin sacrificar velocidad, fiabilidad o usabilidad.
Michael Widenius en la década de los 90 trató de usar mSQL para conectar las
tablas usando rutinas de bajo nivel ISAM, sin embargo, mSQL no era rápido y flexible para sus necesidades. Esto lo conllevó a crear una API SQL denominada MySQL para bases de datos muy similar a la de mSQL pero más portable.
La procedencia del nombre de MySQL no es clara. Por más de 10 años, las
herramientas han mantenido el prefijo My. También, se cree que tiene relación con el nombre de la hija del cofundador Monty Widenius quien se llama My.
Por otro lado, el nombre del delfín de MySQL es Sakila y fue seleccionado por los
fundadores de MySQL AB en el concurso “Name the Dolphin”. Este nombre fue
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 49
enviado por Ambrose Twebaze, un desarrollador de Opensource Africano, derivado del idioma SiSwate, el idioma local de Swaziland y corresponde al nombre de una ciudad en Arusha, Tanzania, cerca de Uganda la ciudad origen de Ambrose.
MySQL es muy utilizado en aplicaciones web como MediaWiki, Amazon, Yahoo,
Flickr o Drupal; en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL. MySQL es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 50
5.2. Descripción de la implementación 5.2.1. Sección pública
La capa de presentación se ha implementado en HTML, aplicando los estilos con
hojas de estilo CSS, y con PHP. Esta capa está representada por los ficheros Alumno_* (menos Alumno_inc.php), Profesor_* (menos Profesor_inc.php), index.php, historia.php, equipodirectivo.php, reglamento.php, calendario.php, localización.php, contactar.php y enlaces.php. Se ha intentado que el uso de las CSS sean lo más compatibles posibles con los diferentes navegadores existentes en el mercado ya que por desgracia no todos siguen completamente los estándares.
La cabecera simplemente se compone de dos imágenes (el logotipo del colegio y el
nombre del colegio). En la parte inferior de la cabecera se ha implementado la fecha y la hora, las cuales se actualizan en tiempo real. Para ello se ha definido una capa en HTML:
<td colspan="2" class="fecha"><div id="campoHora"> </div></td> Esta capa es rellenada por el script programado en Javascript llamado fecha.js, el
cual cada segundo lee la fecha del sistema y la plasma en la capa que hemos llamado campoHora. La función encargada de leer la fecha es la siguiente:
function displayTime() { var hora = new Date(); var horas = hora.getHours(); var minutos = hora.getMinutes(); var segundos = hora.getSeconds(); if (segundos < 10) segundos = "0" + segundos; if (minutos < 10) minutos = "0" + minutos; cadena = displayDate() + " " + horas + ":" + minutos + ":" +
segundos; document.getElementById('campoHora').innerHTML = cadena; tiempo = setTimeout("displayTime()",1000); } Esta función obtiene la fecha (obtenida a su vez de la función displayDate()) y la
hora y las guarda en la variable cadena. Para volcar el contenido de esa variable en la capa correpondiente, asignamos dicha variable a la propiedad innerHTML de la capa campoHora. Por último, para que la hora se actualice cada segundo llamamos a la función setTimeout pasándole como parámetros la misma función en la que estamos y un intervalo de 1000 milisegundos.
Finalmente, para que la página HTML ejecute el Javascript al cargarse basta con
poner estas líneas: <head> … <script type="text/javascript" src="./js/fecha.js"> </script>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 51
… </head> <body onload="javascript:displayTime();">
Figura 29 - Cabecera del sitio web.
El menú es una lista desordenada, la cual hemos modificado para que no salga la
viñeta al principio de cada elemento y salga cada uno con borde y fondo verde. Para ello hemos aplicado los siguientes estilos descritos en el fichero general.css. El primero se aplica a los ítems que estén dentro de una lista desordenada, como es el caso de los elementos del menú. El segundo se aplica a los ítems de la lista desordenada que sean enlaces. En estos estilos definimos el color, el tipo de letra, tamaño de la letra, la alineación y el tipo de lista entre otras cosas.
ul li { border: medium ridge #CCFF66; background-color: #99CC00; list-style-type: none; font-family: Verdana, Arial, Helvetica, sans-serif; text-align: left; font-size: 14px; color: #FF66CC; height: 24px; vertical-align: middle; margin-left: -40px; padding-top: 8px; width: 140px; } ul li a { font-family: Verdana, Arial, Helvetica, sans-serif; color: #003399; font-weight: bold; font-size: 13px; }
Cuando pasamos el curso por encima de un elemento podemos observar que cambia
el color de fondo del elemento. Para ello especificamos para el último estilo la propiedad hover, la cual se activa cuando pasamos el cursor por encima del elemento.
ul li:hover { background-color: #CCFFCC; }
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 52
Figura 30 Menú de la zona anónima.
5.2.2. Sección privada
El formulario de identificación consta de dos campos. El primero es para introducir el login del usuario, mientras que el segundo es de tipo password que, como su propio nombre indica, es para introducir la contraseña. El código HTML del formulario es el siguiente.
<td><p>Autenticarse</p> <form id="form1" method="post" action="analizadorlogin.php"> <p> <label>Login <input type="text" name="log" /> </label> <br/> <label>Password <input type="password" name="pass" /> </label> <label> <input type="submit" value="Identificarse" name="b" /> </label> </p> </form> <p> Cuando se pulsa sobre identificarse, se redirige al usuario al archivo
analizadorlogin.php, el cual será explicado más abajo, cuando nos centremos en los ficheros correspondientes a la capa de aplicación. Si la autentificación es errónea, se crea una cookie y se devuelve al usuario a index, que al encontrar esta cookie muestra un mensaje advirtiéndolo, como se muestra en el código siguiente.
<?php if($_COOKIE['login'] == "Error") { echo '<span class="fechaNoticia">Autenticación
errónea</span>'; } ?>
Figura 31 Formulario de identificación.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 53
La capa de aplicación se ha desarrollado íntegramente en PHP. Esta capa la forman los ficheros Anonimo_inc.php, Alumno_inc.php, Profesor_inc.php, analizadorlogin.php y bd.php. Los cuatro primeros se comunican directamente con la capa de presentación, mientras que bd.php se comunica con la capa de persistencia, ya que en ella se implementan las funciones necesarias para acceder a la base de datos.
Las funciones implementadas para acceder a la base de datos son las siguientes. Esta función se encarga de realizar la conexión con la base de datos, con el usuario
cole1 y su correspondiente contraseña. Si la conexión falla por cualquier motivo, devuelve un mensaje de error.
function Conectar() //realiza la conexion con la base de datos. { if (!($link=mysql_connect("localhost","cole1","webcole"))) { echo "Error conectando a la base de datos."; exit(); } if (!mysql_select_db("webcole",$link)) { echo "Error seleccionando la base de datos."; exit(); } return $link; } Esta función recibe como parámetros la sentencia sql a ejecutar y la conexión sobre
la cual realizarla. function consulta($sql, $c) { $res = mysql_query($sql, $c); return $res; } Con esta función, al realizar una consulta, avanza al siguiente registro de las filas
devueltas por la consulta. function siguiente($res) { return mysql_fetch_assoc($res); } Por último, con esta función podemos cerrar la conexión con la base de datos
cuando hemos terminado de trabajar con ella. function Desconectar($link) { mysql_close($link); //cierra la conexion } Según avanzamos en el proyecto, también le añadimos funciones para facilitar la
lectura de datos de la base de datos, como por ejemplo funciones para sacar la fecha de los campos de tipo DateTime en el formato deseado o para convertir los caracteres especiales a formato HTML, como son las vocales acentuadas o las eñes.
function sacarFecha($fecha_datetime) { $fecha = split("-",$fecha_datetime); $hora = split(":",$fecha[2]); $fecha_hora=split(" ",$hora[0]);
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 54
$fecha_convertida=$fecha_hora[0] . '-' . $fecha[1] . '-' . $fecha[0];
return $fecha_convertida; } //Reemplaza en un texto las tildes y caracteres especiales por su
equivalente en html function tohtml($texto) { $especial=array('á','é','í','ó','ú','ñ','Á','É','Í','Ó','Ú','Ñ',
'à','è','ò','À','È','Ò'); $traducir=array('á','é','í','ó','&ua
cute;','ñ','Á','É','Í','Ó','Ú','Ñ','à','è','ò','À','È','Ò');
return str_replace($especial,$traducir,$texto); } El fichero analizadorlogin.php es el encargado de redireccionar a un usuario cuando
se identifica a su zona privada. Esta clase utiliza la clase bd para hacer una consulta en la base de datos para cerciorar que el usuario existe, que su contraseña es la correcta y que tipo de usuario es. Para ello consultamos la tabla usuario, donde buscamos si coincide el login y la contraseña. Si ambos coinciden, buscamos en la tabla profesor y en la tabla alumno para comprobar que tipo de usuario es y finalmente lo redirigimos a su zona privada correspondiente mediante la cabecera http llamada Location.
$ok = 0; // se han encontrado en la base de datos session_start(); include("bd.php"); $conn = conectar(); $sql = 'SELECT * FROM usuario'; $resultado = consulta($sql, $conn); while($row = siguiente($resultado)) { if($_POST['pass'] == $row['contrasenya'] && $_POST['log']
== $row['login']) { $ok = 1; //Guardamos el cookie con el nombre del usuario
conectado $_SESSION["id"] = $row["login"]; //Comprobamos si es profesor $sql2 = 'SELECT * FROM profesor'; $resultado2 = consulta($sql2, $conn); while($row2 = siguiente($resultado2)) { if($_POST['log'] == $row2['login']) { //mysql_close($dp); $_SESSION["tipo"] = "Profesor"; header('Location: intranetProfe.php'); break; } } //Comprobamos si es alumno $sql3 = 'SELECT * FROM alumno'; $resultado3 = consulta($sql3, $conn); while($row3 = siguiente($resultado3))
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 55
{ if($_POST['log'] == $row3['login']) { $_SESSION["tipo"] = "Alumno"; header('Location: intranetAlumno.php'); } } } } if($ok == 0) { setcookie('login', 'Error', time()+1); header("Location: index.php"); echo '<script language="Javascript"> alert("Autenticación
errónea"); </script>'; } desconectar($conn); Cuando en la zona del alumno se requiere alguna función php para cargar los
contenidos de la base de datos, carga esta función del fichero Alumno_inc.php. Del mismo modo en la zona del profesor los carga del fichero Profesor_inc.php. También la zona del usuario anónimo tiene su fichero de funciones para implementar la capa de aplicación, en este caso es el fichero Anonimo_inc.php.
Un ejemplo de la llamada a estas funciones lo podemos encontrar en todas las
páginas del usuario anónimo. En la parte inferior encontramos las noticias más recientes introducidas en la base de datos. Para esto llama a la función noticias() que se encuentra en el fichero Anonimo_inc.php de la siguiente forma:
<h3>Noticias</h3> <p> <?php require_once ("Anonimo_inc.php"); noticias(); ?> </p> La función noticias() está implementada de la siguiente forma. Primero conecta con
la base de datos y realiza una consulta de todos los eventos de tipo ‘Noticia’ ordenados descendentemente. Luego mediante el bucle for hacemos que lea las cinco primeras noticias que, como están ordenadas en orden descendente, serán las cinco noticias más recientes. Ponemos las noticias en la página y para terminar nos desconectamos de la base de datos.
function noticias() { $conn=Conectar(); $sql="SELECT * FROM evento WHERE titulo = 'Noticia' ORDER BY
idevento DESC"; $res=consulta($sql,$conn); for($i=0; $i<5 && $i<numeroFilas($res);$i++) {
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 56
$row = siguiente($res); echo "<p><span
class='fechaNoticia'>".sacarFecha($row["fecha"])." </span>".tohtml($row["descripcion"])." </p>";
} desconectar($conn); }
Figura 32 Página principal con la zona de noticias en la parte inferior.
En este caso, la capa de persistencia viene implementada como una base de datos en
MySQL. Hemos elegido MySQL por tratarse de una base de datos libre y gratuita, así como por su buena integración de su uso con PHP. Se ha cambiado el tipo de tablas por defecto (MyISAM), ya que la original no aceptaba las restricciones que queríamos imponer en las tablas, por lo que hemos puesto tablas de tipo InnoDB. Para ello simplemente hemos tenido que descomentar las líneas referentes a InnoDB del fichero de configuración de MySQL, my.cnf. Para crear la base de datos hemos usado PHPMyAdmin. En el anexo se detalla el fichero de creación de la base de datos, llamado setup.php.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 57
6. Pruebas
Con el fin de comprobar cómo responde nuestra aplicación a las distintas situaciones en las que se puede encontrar hemos decidido realizar una serie de pruebas, que consistirán en las siguientes:
• Tamaño de la ventana. • Comprobador de links
6.1 Tamaño de la ventana Gracias a la página Web http://www.anybrowser.com/ podemos ver como
quedaría nuestra Web con distintos tamaños de ventana sin la necesidad de tener que cambiar la resolución de nuestro monitor.
Con una resolución de 600x480 la página inicial de nuestra Web se vería de la siguiente forma:
Figura 33 Resolución a 600x480
Como podemos ver se aprecian problemas con la cabecera, aunque hay que
señalar de desde tiempo estas resoluciones tan bajas son cada vez menos frecuentes.Con una resolución de 800x600, se puede ver que si se representa adecuadamente.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 58
Figura 34 Resolución 800x600
A partir de esta resolución (800x600) la Web se desplegará adecuadamente en
los navegadores.
Figura 35 Resolución 1024x768
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 59
6.2 Comprobador de links Debido a que en aplicación la mayoría de las páginas están en la intranet (con
acceso restringido, solamente realizaremos esta prueba sobre la parte pública de nuestra Web. Siendo el resultado obtenido el siguiente:
http://pion.disca.upv.es/webcole/:
• View http://pion.disca.upv.es/webcole/css/general.css: OK • View http://pion.disca.upv.es/webcole/js/fecha.js: OK • View http://pion.disca.upv.es/webcole/css/principal.css: OK • View http://pion.disca.upv.es/webcole/#: OK • View http://pion.disca.upv.es/webcole/historia.php: OK • View http://pion.disca.upv.es/webcole/equipoDirectivo.php: OK • View http://pion.disca.upv.es/webcole/reglamento.php: OK • View http://pion.disca.upv.es/webcole/calendario.php: OK • View http://pion.disca.upv.es/webcole/localizacion.php: OK • View http://pion.disca.upv.es/webcole/contactar.php: OK • View http://pion.disca.upv.es/webcole/enlaces.php: OK • View http://pion.disca.upv.es/webcole/analizadorlogin.php: OK
Total Number of links for this page: 13
Con lo que todos los enlaces de la sección pública son válidos.
6.3 Estándar XHTML Para comprobar si nuestra aplicación cumplía con dicho estándar utilizamos una
aplicación en línea proporcionado por el World Wide Web Consortium (W3c), que fueron los responsables del estándar. Esta aplicación se puede encontrar en la siguiente dirección: http://validator.w3.org/
Como esta aplicación no podía entrar en la intranet del colegio, tuvimos que entrar en cada página y copiar el código fuente de la página para introducirlo en el validador.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 60
Figura 36 XHTML - página con errores
Donde más problemas tuvimos fue en la parte del profesor, llegando a ser necesario el pasar del XHTML 1.0 Strict al XHTML 1.0 Transitional, que tiene menos restricciones que el estricto. El principal motivo de este cambio fue hacer posible mantener sin cambios el código javascript que hacia uso de la propiedad “name” en los formularios. Esta propiedad no está permitida en el XHTML 1.0 Strict.
Figura 37 XHTML - página válida
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 61
Páginas que cumple con el XHTML 1.0 Transitional:
Profesor_equipaciones.php Profesor_faltas.php Profesor_instalaciones.php Profesor_notas.php Profesor_reserva_instalacion.php Profesor_reserva_equipacion.php Alumno_reserva_instalacion.php
Figura 38 xhtml
Esta imagen indica que ha superado el estándar XHTML 1.0, y por tanto podría
colocarse esta imagen en el sitio Web
6.4 Estándar CSS Los css nos permiten cambiar el estilo de las distintas etiquetas que se
encuentran en las páginas HTML, siempre que estas páginas agreguen las css. En este caso, al igual que en el estándar XHTML, se ha utilizado una aplicación online del w3c. La dirección para acceder a esta aplicación es la siguiente: http://jigsaw.w3.org/css-validator/ . El resultado obtenido al pasarle el css de la Web se puede ver en la siguiente imagen.
Figura 39 Resultado de la validación CSS
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 62
6.5 Navegadores
Esta prueba consiste en comprobar el correcto funcionamiento en los navegadores más utilizados. En concreto comprobaremos los siguientes navegadores:
• Firefox 2 • Explorer 6 • Explorer 7 • Opera 9 • Mozilla 1.7
6.5.1 Firefox 2
Durante el desarrollo de la aplicación se utilizó Firefox como navegador predeterminado con lo que todas las funcionalidades del sistema son correctas en este navegador, así como su visualización. 6.5.2 Explorer 6
En este navegador se pueden ver algunos problemas con la cabecera de la página.
Figura 40 Explorer 6 - Problemas visualización
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 63
En cuanto a la capacidad de ejecutar las funcionalidades que hacen uso de Javascript, Explorer 6 se queda a medias, siendo capaz de ejecutar algunas de ellas y dando errores en otras. Se han encontrado problemas para ejecutar las siguientes páginas:
• Página de inserción de notas (Intranet de profesores) • Página de inserción de faltas de asistencia (Intranet de profesores). No se pueden
poner ni quitar faltas a alumnos aislados, sin embargo si se pueden poner falta a varios alumnos utilizando el botón “Poner faltas a todos”
• Página de reservas de instalaciones (Intranet de profesores y alumnos), página de reservas de equipaciones (Intranet de profesores). No se pueden anular las reservas
• No se pueden realizar nuevas reservas de instalaciones y equipaciones. 6.5.3 Explorer 7
A diferencia de lo que hacia su predecesor, Explorer 7 si representa correctamente la página inicial de la aplicación Web.
Figura 41 Explorer 7 - página inicial
Las limitaciones por el código Javascript son prácticamente las mismas que en la
versión anterior, aunque en esta versión si es posible efectuar las reservas de instalaciones y equipaciones.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 64
6.5.4 Opera 9
La visualización de la página principal es correcta, como puede verse en la siguiente figura.
Figura 42 Opera - página inicial
Como en el caso de Explorer 6, Opera también presenta algunas incompatibilidades con el Javascript, siendo estas las más importantes.
• Página de inserción de notas (Intranet de profesores) • Página de inserción de faltas de asistencia (Intranet de profesores). No se pueden
poner ni quitar faltas a alumnos aislados, sin embargo si se pueden poner falta a varios alumnos utilizando el botón “Poner faltas a todos”
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 65
6.5.5 Mozilla 1.7
Como puede verse en la figura, Mozilla interpreta correctamente la página inicial de nuestra aplicación.
Figura 43 Mozilla - página inicial
En este caso no hay ningún tipo de compatibilidad con el Javascript.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 66
7. Conclusiones
La realización de este proyecto de final de carrera nos ha permitido conocer de primera mano los pasos necesarios que deben seguirse para el desarrollo de una aplicación Web. Nos ha dado la oportunidad de iniciar una aplicación desde sus inicios hasta casi su final, obligándonos a tomar decisiones en cuanto al análisis, diseño e implementación de la misma, aunque siempre con la guía de nuestro tutor del proyecto, que nos ayudó señalándonos los fallos que cometimos durante el desarrollo de la aplicación.
Durante el trabajo en este proyecto nos hemos tenido que afrontar una serie de
problemas, tanto de índole teórico, práctico e incluso interpersonal. Los problemas teóricos han sido sobre todo a la hora de aplicar los conocimientos que hemos ido adquiriendo en el transcurso de nuestra carrera como informáticos a un proyecto más cercano a la vida real de lo que habitualmente se puede ver en las distintas asignaturas de la carrera. Los problemas prácticos han aparecido debido a la necesidad que los miembros del proyecto han tenido para aprender un nuevo lenguaje de programación como es php y a la circunstancia de tener que refrescar las nociones que poseíamos de html, css y javascript o de adquirirlos desde cero en algunos casos. En cuanto a las dificultades interpersonales eran debidas a que al inicio del proyecto ningún miembro del equipo conocía a los restantes miembros, lo que nos obligó a hacer un esfuerzo con el fin de adaptarnos unos a otros.
Otro problema con el que hemos tenido que enfrentarnos ha sido al hecho de no
disponer del suficiente tiempo para completar el proyecto como hubiéramos querido, dejándonos ciertas partes del proyecto sin poder implementar. Entre las principales faltas destacan:
• Implementación de la parte del administrador, y del equipo directivo. • Hacer seguro la transmisión de datos sensibles de la aplicación como puedan
ser las contraseñas, mediante técnicas de encriptación de datos utilizando protocolos como ssl.
Como conclusión final podemos decir que la realización de este proyecto nos ha
permitido crecer profesionalmente y también en ciertos aspectos personalmente, lo que nos ayudará en nuestro futuro como profesionales del sector de la informática.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 67
8. Bibliografía
• PHP 5. Sitios web dinámicos. Johann-Christian Hanke. PC Cuadernos
• Los secretos de PHP y MySQL. Johann-Christian Hanke PC Cuadernos
• Proyectos Profesionales PHP 5.
Francisco Charte Ojeda ANAYA Multimedia
• JavaScript Tom Negrino, Dori Smith Prentice Hall
• Apuntes de BDA, DBD, CDH • Wikipedia, la enciclopedia libre
www.es.wikipedia.org
• Página oficial de PHP www.php.org
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 68
9. Anexos
A. W3C
Figura A.1 - Logotipo de la W3C El World Wide Web Consortium, abreviado W3C, es un consorcio internacional que
produce estándares para la World Wide Web. Está dirigida por Tim Berners-Lee, el creador original de URL (Uniform Resource Locator, Localizador Uniforme de Recursos), HTTP (HyperText Transfer Protocol, Protocolo de Transferencia de HiperTexto) y HTML (Lenguaje de Marcado de HiperTexto) que son las principales tecnologías sobre las que se basa la Web.
Un estándar pasa por los siguientes estados : • Working Draft (Borrador de trabajo) • Last Call (Última convocatoria) • Proposed Recommendation (Propuesta de recomendación) y • Candidate Recommendation (Recomendación candidata)
Finaliza con la aprobación de la "Recomendación", lo que equivale a una
homologación de la propuesta, es decir, un nuevo estándar público y abierto para la Web. La mayoría de estas recomendaciones son secundadas por los fabricantes de herramientas (navegadores, editores, buscadores) y tecnologías (servicios Web, directorios, registros). Esta competencia en exclusiva del W3C para crear estándares abiertos es crucial, pues de ella depende que ningún fabricante alcance nunca el monopolio de explotación de la Web.
Algunas importantes recomendaciones son: • HTML • Hojas de Estilo en Cascada o Cascading Style Sheets (CSS) • DOM • RDF Marco de Descripción de Recursos • SOAP Simple Object Access Protocol • SVG • XForms • XML • WSDL Web Services Description Language
Figura A.2 - Logotipos que la W3C le concede a las páginas web que cumplen con los estándares XHTML 1.0 y CSS respectivamente. En el sitio web del consocio se pueden validar páginas web para comprobar si cumplen los estándares.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 69
La W3C fue creada el 1 de octubre de 1994 por Tim Berners-Lee en el MIT, actual sede central del consorcio. Uniéndose posteriormente en abril de 1995 INRIA en Francia, reemplazado por el ERCIM en el 2003 como el huésped europeo del consorocio y Universidad de Keio (Shonan Fujisawa Campus) en Japón en septiembre de 1996 como huésped asiatico. Estos organismos adminstran el consorcio el cual está integrado por:
• Miembros del W3C. A septiembre de 2006 contaba con 417 miembros (lista completa)
• Equipo W3C (W3C Team) 65 investigadores y expertos a través del mundo (Directorio)
• Oficinas W3C (W3C Offices). Centros regionales establecidos en Alemania y Austria (oficina cojunta), Australia, Benelux (oficina conjunta), China, Corea del Sur, España, Finlandia, Grecia, Hong Kong, Hungría, India, Israel, Italia, Marruecos, Suecia y Reino Unido e Irlanda (oficina conjunta) (Oficinas W3C)
La oficina española del W3C, establecida en el 2003, esta albergada por la Fundación CTIC en el Parque Científico Tecnológico de Gijón (Principado de Asturias).
Más información: • www.w3c.org - World Wide Web Consortium • www.w3c.es - Oficina española del consorcio
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 70
B. Anexo II (Herramientas usadas)
• StarUML
Figura 44 B.1 - Logotipo de StarUML
StarUML es un proyecto de software libre disponible para Windows. Se trata de una
herramienta CASE (Computer-Aided Software Engineering) de modelado similar a otros como Rational Rose. Dispone de una serie de módulos para tener funcionalidad añadida, aunque su funcionalidad básica es muy completa.
StarUML es capaz de generar código fuente a partir de diagramas en los siguientes
lenguajes: C/C++, Java, Visual Basic, Delphi, JScript, VBScript, C#, VB.NET, etc. Esta aplicación ha sido utilizada en el desarrollo del proyecto en la fase de análisis,
más concretamente para la realización del diagrama de clases. La hemos elegido debido a que es una aplicación libre y cumplía a la perfección con nuestras necesidades, al mismo tiempo que es sencilla de utilizar y pese a ser usuarios nuevos en la aplicación no nos ha costado adaptarnos a la manera de trabajar con ella para la realización del diagrama de clases. Su sitio web oficial es: www.staruml.com
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 71
• Dreamweaver
Figura 45 B.2 - Logotipo de Dreamweaver 8
Adobe Dreamweaver es un editor WYSIWYG (What You See Is What You Get,
lo que ves es lo que obtienes) de páginas web, creado por Adobe (anteriormente por Macromedia). Es el programa de este tipo más utilizado en el sector del diseño y la programación web, por sus funcionalidades, su integración con otras herramientas como Adobe Flash y, recientemente, por su soporte de los estándares del World Wide Web Consortium. Tiene soporte tanto para edición de imágenes como para animación a través de su integración con otras herramientas.
Hasta la versión MX, fue duramente criticado por su escaso soporte de los
estándares de la web, ya que el código que generaba era con frecuencia sólo válido para Internet Explorer, y no validaba como HTML estándar. Esto se ha ido corrigiendo en las versiones recientes.
La gran baza de este editor sobre otros es su gran poder de ampliación y
personalización del mismo, puesto que este programa, sus rutinas (como la de insertar un hipervínculo, una imagen o añadir un comportamiento) están hechas en Javascript-C lo que le ofrece una gran flexibilidad en estas materias. Esto hace que los archivos del programa no sean instrucciones de C++ sino, rutinas de Javascript que hace que sea un programa muy fluido, que todo ello hace, que programadores y editores Web hagan extensiones para su programa y lo ponga a su gusto.
Las versiones originales de la aplicación se utilizaban como simples editores
WYSIWYG, sin embargo, versiones más recientes soportan otras tecnologías Web como CSS, JavaScript y algunos frameworks del lado servidor.
Dreamweaver ha tenido un gran éxito desde finales de los 90 y actualmente
mantiene el 90% del mercado de editores HTML. Esta aplicación está disponible tanto para la plataforma MAC como Windows, aunque también se puede ejecutar en plataformas basadas en UNIX utilizando emuladores como Wine.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 72
Como editor WYSIWYG que es, Dreamweaver oculta el código HTML de cara al usuario, haciendo posible que alguien no entendido pueda crear páginas y sitios Web fácilmente.
Algunos desarrolladores Web critican esta propuesta ya que crean páginas
HTML más largas de lo que solían ser al incluir mucho código inútil, lo cual va en detrimento de la ejecución de las páginas en el navegador Web. Esto puede ser especialmente cierto ya que la aplicación facilita en exceso el diseño de las páginas mediante tablas. Además, algunos desarrolladores Web han criticado Dreamweaver en el pasado porque creaba código que no cumplía con los estándares del consorcio Web (W3C). No obstante, Adobe ha aumentado el soporte CSS y otras maneras de diseñar páginas sin tablas en versiones posteriores de la aplicación.
Dreamweaver permite al usuario utilizar la mayoría de los navegadores Web
instalados en su ordenador para previsualizar las páginas Web. También dispone de herramientas de administración de sitios dirigidas a principiantes como, por ejemplo, la habilidad de encontrar y reemplazar líneas de texto y código por cualquier tipo de parámetro especificado, hasta el sitio Web completo. El panel de comportamientos también permite crear JavaScript básico sin conocimientos de código.
Con la llegada de la versión MX, Macromedia incorporó herramientas de
creación de contenido dinámico en Dreamweaver. En lo fundamental de las herramientas HTML WYSIWYG, también permite la conexión a Bases de Datos como MySQL y Microsoft Access, para filtrar y mostrar el contenido utilizando tecnología de script como, por ejemplo, ASP (Active Server Pages), ASP.NET, ColdFusion, JSP (JavaServer Pages),PHP sin necesidad de tener experiencia previa en programación.
Un aspecto de alta consideración de Dreamweaver es su arquitectura extensible.
Es decir, permite el uso de "Extensiones". Las extensiones, tal y como se conocen, son pequeños programas, que cualquier desarrollador Web puede escribir (normalmente en HTML y Javascript) y que cualquiera puede descargar e instalar, ofreciendo así funcionalidades añadidas a la aplicación. Dreamweaver goza del apoyo de una gran comunidad de desarrolladores de extensiones que hacen posible la disponibilidad de extensiones gratuitas y de pago para la mayoría de las tareas de desarrollo Web, que van desde simple efectos rollover hasta completas cartas de compra. Características.
Además de sus capacidades WYSIWYG, tiene las funciones típicas de un editor de código fuente para la Web:
Un administrador de sitios, para agrupar los archivos según el proyecto al que pertenezcan.
Un cliente FTP integrado, que permite subir los archivos editados inmediatamente al sitio en Internet.
Función de autocompletar y resaltado de la sintaxis para instrucciones en HTML y lenguajes de programación como PHP, JSP o ASP.
Esta herramienta ha sido usada para el desarrollo de las páginas web en PHP debido a que es la más extendida y cumple como editor PHP ofreciéndote ayuda en línea mientras escribes líneas de código. También ofrece la funcionalidad de subir las páginas al servidor de una manera sencilla por FTP, por lo que cubría nuestras necesidades.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 73
• Eclipse
Figura 46 B.3 Pantalla inicial Eclipse 3.2
Eclipse es un entorno de desarrollo integrado (IDE en inglés) en código abierto,
multiplataforma. En un principio eclipse fue desarrollado para la programación en Java, sin embargo con el tiempo se fueron incorporando nuevos lenguajes de programación gracias a pluging que fue aportando la comunidad eclipse. Entre los principales lenguajes de programación que soporta actualmente eclipse se encuentran:
Java ANSI C C++ JSP PHP
Además de la variedad de lenguajes de programación soportados, eclipse ha sido
traducido a un gran número de idiomas lo que permite una mayor configuración y adaptabilidad al usuario.
Aparte de los lenguajes de programación mencionados anteriormente, existen
otros proyectos que permite ampliar las capacidades del entorno. Entre ellas cabría destacar UML2 una implementación de UML 2.0 metamodel para la plataforma Eclipse diseñada para soportar el desarrollo de herramientas de modelado y el Proyecto Plataforma de Herramientas Web (WTP). Este último proyecto y el PHP Project Tools son los que han sido utilizados en este trabajo como interfaz de programación en php.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 74
Figura 47 B.4 Eclipse - Pantalla principal
El motivo de la elección de este entorno para el desarrollo de los ficheros php fueron diversos destacando los siguientes:
Utilizar una herramienta en código abierto Resaltado de sintaxis de php Auto completado de variables php
Figura 48 B.5 Eclipse Auto completado de variable
La página inicial de esta aplicación es: http://www.eclipse.org/
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 75
• Dia
Figura 49 B.6 Dia – Pantalla de Inicio
Dia es un programa para dibujar diagramas, el cual permite escoger entre una
elevada variedad de diagramas. Este programa es de código abierto y múltiplataforma. Originalmente este proyecto fue desarrollado para utilizarse dentro del proyecto Gnome de Linux.
Figura 50 B.7 Dia – Eligiendo tipo de diagrama
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 76
Como se ha dicho anteriormente, esta aplicación permite crear diagramas, incluidos los diagramas entidad-relación que hemos desarrollado durante este proyecto. Desde un punto estético, el programa deja que desear, sin embargo es capaz de llevar a cabo las tareas que se esperan de él.
Figura 51 B.7 Dia – Espacio de trabajo.
La dirección inicial esta aplicación es: http://dia-installer.de/index_en.html
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 77
C. XAMPP
Figura 52 C.1 - Logotipo de XAMPP
Xampp es un paquete que integra un servidor web, como es Apache, acompañado de
un servidor PHP y otro MySQL, además de otros como el servidor FTP pero que a nosotros no nos interesan en este proyecto, centrándonos únicamente en los tres primeros servidores. Se trata de un servidor libre bajo licencia GNU y se puede descargar gratuitamente desde www.apachefriends.org/en/xampp.html. La instalación es sencilla y es bastante limpia ya que existe la posibilidad de únicamente copiando los ficheros al ordenador ponerlo en marcha. Otra de las ventajas es que es multiplataforma y existen múltiples módulos que se le pueden añadir como son phpMyAdmin u OpenSSL.
En nuestro proyecto lo hemos usado para poder probar las páginas que hemos
generado en local, es decir, en nuestro ordenador doméstico antes de subirlo al servidor suministrado por el director del proyecto.
El paquete también nos ofrece un sencillo panel de control desde donde podemos
controlar los distintos servidores que lo componen. De esta forma podemos comprobar el estado de cada servidor, iniciarlo, pararlo o administrarlo.
Figura 53 C.2 - Panel de Control de XAMPP
El servidor HTTP Apache es un software (libre) servidor HTTP de código abierto
para plataformas Unix (BSD, GNU/Linux, etc.), Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1 y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se debe a que originalmente Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. Era, en
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 78
inglés, a patchy server (un servidor "parcheado"). El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation.
Apache presenta entre otras características mensajes de error altamente
configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración.
Apache tiene amplia aceptación en la red: en el 2005, Apache es el servidor HTTP
más usado, siendo el servidor HTTP del 70% de los sitios web en el mundo y creciendo aún su cuota de mercado (estadísticas históricas y de uso diario proporcionadas por Netcraft).
La mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas puede en
la mayoría de los casos ser abusada solamente por los usuarios locales y no puede ser accionada remotamente.
Figura 54 C.3 - Logotipo del servidor web Apache
PhpMyAdmin es una herramienta escrita en PHP con la intención de manejar la administración de MySQL a través de páginas webs, utilizando Internet. Actualmente puede crear y eliminar Bases de Datos, crear, eliminar y alterar tablas, borrar, editar y añadir campos, ejecutar cualquier sentencia SQL, administrar claves en campos, administrar privilegios, exportar datos en varios formatos y está disponible en 50 idiomas. Se encuentra disponible bajo la licencia GPL.
Este proyecto se encuentra vigente desde el año 1998. Como esta herramienta se
ejecuta en máquinas con Servidores Webs y Soporte de PHP y MySQL, la tecnología utilizada ha ido variando durante su desarrollo.
Esta herramienta nos ha sido de gran ayuda tanto para crear como para introducir
datos de prueba o para comprobar que las operaciones de borrado e inserción desde PHP se hacían correctamente. También ha sido la herramienta ofrecida por el director del proyecto para manejar la base de datos en el servidor donde debíamos colgar la aplicación final.
Figura 55 C.4 - Logotipo de phpMyAdmin
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 79
D. Plantillas de los casos de uso
Caso de Uso Reservar Instalaciones Actores Usuario Registrado (iniciador) Actores secundarios
Ninguno
Propósito Permitir la reserva o anulación de instalaciones del centro. Resumen Se podrán reservar las instalaciones del centro, como pueden ser la
pista de fútbol, el gimnasio, el aula de usos múltiples, etc. En la reserva se hará constar la fecha, la hora de inicio, el número de horas que se quieren reservar, así como el motivo de la reserva.
Precondiciones El Usuario Registrado debe haber iniciado sesión correctamente.
Postcondiciones El sistema deberá guardar la reserva.
Incluye
Extiende
Hereda de 1. El caso de uso comienza cuando el usuario registrado
selecciona “Reservar Instalaciones” 2. El sistema muestra una lista con las instalaciones que se pueden
reservar. 3. El usuario deberá seleccionar una instalación. 4. Para dicha instalación, el usuario deberá seleccionar una fecha
de las disponibles (días en que dicha instalación no esta reservada). También deberá proporcionar el motivo de la reserva.
5. El sistema comprueba si la instalación está disponible para dicha fecha
6. El usuario confirma la reserva. 7. Si está disponible
7.1 El sistema guardará la reserva. Ext. síncronas Ext. asíncronas
Caso de Uso Anular Reservas Actores Usuario Registrado (iniciador) Actores secundarios
Ninguno
Propósito Anular reservas efectuadas por el profesor o por el alumno Resumen Permite la cancelación de las reservas realizadas tanto sobre
instalaciones como de equipamientos de la escuela (esta última posibilidad disponible únicamente para profesores). Únicamente
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 80
podrán eliminar aquellas reservas que hayan efectuado ellos mismos
Precondiciones El profesor o por el alumno deben haber iniciado sesión correctamente.
Postcondiciones El sistema eliminará las reservas anuladas por los usuarios registrados.
Incluye Mostrar Reservas
Extiende
Hereda de Flujo de eventos 1. El caso de uso comienza cuando el usuario registrado
selecciona “Anular Reserva” 2. El sistema mostrará las reservas efectuadas por el usuario
registrado 3. Si es un profesor
3.1 El sistema mostrará las reservas de material realizadas por el profesor
4. El usuario registrado seleccionará una reserva 5. El usuario registrado confirmará la cancelación de la reserva 6. El sistema eliminará la reserva seleccionada.
Ext. síncronas # En 4 el usuario registrado puede cancelar la anulación de reservas
Ext. asíncronas Caso de Uso Mostrar Tablón de Anuncios Actores Usuario Registrado (iniciador) Actores secundarios
Ninguno
Propósito Permite la visualización del tablón de anuncios. Resumen Se mostrarán los anuncios aparecidos en el tablón de anuncios del
colegio.
Precondiciones El usuario registrado debe haber iniciado sesión correctamente. Postcondiciones Ninguna
Incluye
Extiende
Hereda de Flujo de eventos 1. El caso de uso comienza cuando el usuario registrado
selecciona “Mostrar Tablón de Anuncios” 2. El sistema devuelve los anuncios publicados en el tablón de
anuncios.
Ext. sincronas
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 81
Ext. asíncronas
Caso de Uso Dar de alta Alumno Actores Administrador (iniciador) Actores secundarios
Ninguno
Propósito Dar de alta a un nuevo alumno en el colegio. Resumen El administrador será el encargado de dar de alta a nuevo
alumnos en el centro. Para ello se deberá de dar ciertos datos del alumno a ingresar (nombre, apellidos, domicilio, población, código postal, nombre de los padres, teléfono de contacto, código del grupo al que asistirá, curso, contraseña)
Precondiciones El administrador debe haber iniciado sesión correctamente.
Postcondiciones El sistema almacenará la información del nuevo profesor.
Incluye
Extiende
Hereda de Flujo de eventos 1. El caso de uso comienza cuando el administrador selecciona
“Dar de Alta Alumnos” 2. El administrador rellenará los campos del formulario de alta
de alumnos (nombre, apellidos, domicilio, población, código postal, nombre de los padres, teléfono de contacto, código del grupo al que asistirá, curso, contraseña)), aunque no necesariamente todas en este instante.
3. El administrador confirmará la creación de un nuevo usuario profesor
4. El sistema comprobará que todos los datos tengan una estructura correcta
5. El sistema guardará los datos del nuevo usuario profesor.
Ext. síncronas # En 3 el administrador puede cancelar la acción. # En 2 el código de alumno es asignado automáticamente.
Ext. asíncronas Caso de Uso Dar de Baja Alumno Actores Administrador (iniciador) Actores secundarios
Ninguno
Propósito Eliminar a un alumno del sistema Resumen El administrador podrá eliminar usuarios para que ya no puedan
acceder a su correspondiente información personalizada, porque se han dado de baja en el centro en el caso de los alumnos.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 82
Precondiciones El administrador debe haber iniciado sesión correctamente.
Postcondiciones El sistema deberá eliminar al alumno.
Incluye
Extiende
Hereda de Flujo de eventos 1. El caso de uso comienza cuando el administrador selecciona
“Eliminar alumno/padre” 2. El administrador selecciona el alumno a eliminar 3. El sistema devuelve los datos del alumno a eliminar 4. El administrador confirma que desea eliminar a ese alumno 5. El sistema borra los datos del alumno.
Ext. síncronas # En 5 el administrador puede cancelar la acción. # En 2 el administrador puede obtener una lista con todos los alumnos y buscar al que quiere dar de baja o bien puede introducir parte o el nombre completo del alumno y que el sistema le devuelva un listado con los alumnos que coincidan con el término de búsqueda.
Ext. asíncronas Caso de Uso Mostrar Notas Actores Alumno/Progenitor (iniciador) Actores secundarios
Ninguno
Propósito Mostrar las notas del alumno Resumen Se podrán consultar las notas obtenidas por el alumno en las
asignaturas en las que esté matriculado. También aparecerá la nota media del grupo para poder tener una idea de la marcha del grupo en general.
Precondiciones El alumno/Progenitor debe haber iniciado sesión correctamente.
Postcondiciones Ninguna
Incluye
Extiende
Hereda de
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 83
Flujo de eventos 1. El caso de uso comienza cuando el alumno selecciona “Mostrar Notas”
2. El sistema devolverá las notas de las asignaturas que tenga el alumno. También devolverá la nota media de todos los alumnos de cada asignatura.
Ext. síncronas # En 2, solamente se mostrarán las notas del alumno que haya iniciado el caso de uso, sin mostrar las notas del resto de alumnos de su grupo.
Ext. asíncronas
Caso de Uso Listar Alumnos Actores Alumno/Progenitor (iniciador) Actores secundarios
Ninguno
Propósito Mostrar la lista de alumnos del mismo grupo al que acude el alumno
Resumen Se mostrará una lista con los alumnos del mismo grupo al que pertenece. Los datos mostrados serán nombre y apellidos del alumno, su dirección de correo electrónico.
Precondiciones El alumno/Progenitor debe haber iniciado sesión correctamente.
Postcondiciones Ninguna
Incluye
Extiende
Hereda de Flujo de eventos A. El caso de uso comienza cuando el alumno selecciona “Listar
Alumnos” B. El sistema devuelve el nombre, apellidos y dirección de correo
electrónico de todos los alumnos del mismo grupo del alumno que inicia el caso de uso.
Ext. síncronas Ext. asíncronas
Caso de Uso Poner Notas Actores Profesor (iniciador) Actores secundarios
Ninguno
Propósito Calificar a los alumnos del profesor
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 84
Resumen Desde aquí se podrá introducir las notas de cada alumno que podrán ser visualizadas posteriormente por los alumnos desde su intranet. Los alumnos aparecerán ordenados por grupos. En esta sección también se podrán modificar notas que hayan sido previamente introducidas.
Precondiciones El profesor debe haber iniciado sesión correctamente.
Postcondiciones Las notas se almacenan en el sistema.
Incluye
Extiende Listar Alumnos del Profesor
Hereda de Flujo de eventos 1. El caso de uso comienza cuando el profesor selecciona “Poner
Notas” 2. Para cada alumno de un grupo
2.1. Escribe la nota del alumno en un formulario 2.2. Acepta la calificación del alumno
3. El sistema almacena cada nota de los alumnos antes de pasar al siguiente alumno
Ext. síncronas # En 2.1 puede cancelar la calificación de un alumno. # En 2 puede cambiar la nota de un alumno al que ya hubiera calificado.
Ext. asíncronas
Caso de Uso Poner Faltas de Asistencia
Actores Profesor (iniciador) Actores secundarios
Ninguno
Propósito Poner las faltas de asistencia de los alumnos del profesor. Resumen Desde aquí se podrá introducir las faltas de asistencia de cada
alumno. Las faltas de asistencia podrán justificarse a la vez que se introducen si el profesor tenía constancia de que el alumno iba a faltar. En caso contrario dejará el apartado de justificar sin cumplimentar a la espera de que el alumno presente la justificación.
Precondiciones El profesor debe haber iniciado sesión correctamente.
Postcondiciones Las faltas de asistencia se guardan en el sistema.
Incluye
Extiende Listar Alumnos del Profesor
Hereda de
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 85
Flujo de eventos 1. El caso de uso comienza cuando el profesor selecciona “Poner Faltas de Asistencia”
2. Para cada alumno que haya faltado 2.1. El profesor escribe la fecha de la falta, la asignatura y si
está justificada en el formulario 2.2. Confirma la falta de asistencia.
3. El sistema guarda la falta de asistencia
Ext. síncronas # En 2.1 el profesor puede cancelar la inclusión de la falta de asistencia # En 2.1 la fecha que aparecerá por defecto será la actual del sistema, aunque el profesor podrá cambiarla.
Ext. asíncronas Caso de Uso Quitar/Modificar Faltas de Asistencia Actores Profesor (iniciador) Actores secundarios
Ninguno
Propósito Quitar o modificar las faltas de asistencia de los alumnos del profesor.
Resumen Se podrán quitar las faltas de asistencia de alumnos, por ejemplo si se han introducido erróneamente. También se podrán modificar las faltas de asistencia, normalmente si el alumno presenta un justificante, o para cambiar otro valores (fecha, asignatura)
Precondiciones El profesor debe haber iniciado sesión correctamente.
Postcondiciones Las faltas de asistencia modificadas se guardan en el sistema. En caso de quitar la falta de asistencia, ésta se eliminará del sistema.
Incluye
Extiende Listar Alumnos del Profesor
Hereda de
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 86
Flujo de eventos Intenciones de usuario Obligaciones del sistema 1. El caso de uso comienza cuando el profesor selecciona
“Quitar/Modificar Faltas de Asistencia” 2. El sistema devuelve una lista con todos los alumnos de ese
profesor, ordenados por grupos y que tengan alguna falta de asistencia en el último mes (si fuera necesario se podrían pedir de meses anteriores)
3. El profesor selecciona el alumno al que modificar o quitar la falta 3.1. Se mostrarán los detalles de la falta de asistencia que
tiene guardado el sistema (fecha, asignatura, si está justificada)
3.2. Si el profesor quiere quitar esta falta de asistencia 3.2.1. Confirma que desea quitar la falta de asistencia
3.3. Si no 3.3.1. El profesor podrá cambiar los detalles de la falta
de asistencia (fecha, asignatura, si está justificada) 3.3.2. Confirma la falta de asistencia.
4. El sistema se actualiza (borrando la falta si que profesor la eliminó, o actualizando los campos en caso contrario
Ext. síncronas En 3, 3.1, 3.2, 3.3.1 el profesor puede cancelar la actualización/eliminación de la falta de asistencia
Ext. asíncronas
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 87
E. Guía del usuario
Usuario anónimo Este tipo de usuario (podría tratarse de alumnos o profesores todavía no
identificados) solamente podrán acceder a la parte pública del colegio.
a. Inicio Será esta la página a la que se accederá cuando el usuario anónimo acceda a la Web,
si no introduce alguna otra dirección.
Figura 56 Usuario anónimo – inicio
Durante su recorrido por las secciones públicas de la Web el usuario siempre
dispondrá de un menú navegación que le ayudará en su recorrido por la Web. En la parte inferior de la ventana aparecen una serie de noticias que el colegio considera de interés para todos sus miembros.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 88
Figura 57 Usuario anónimo - menú navegacional
b. Historia
En página el usuario podrá conocer aquellos hechos históricos que han sucedido en
la vida de la escuela.
Figura 58 Usuario anónimo – Historia
c. Equipo directivo
Aquí el usuario podrá conocer los datos de las personas que pertenecen al equipo
directivo del centro (al director, jefe de estudios y al secretario)
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 89
Figura 59 Usuario anónimo - Equipo directivo
d. Reglamento
Desde aquí se podrá tener acceso a la normativa que rige en el colegio. Se dispone
de la normativa en dos formatos: tipo Word y tipo pdf.
Figura 60 Usuario anónimo - reglamento
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 90
e. Calendario escolar Esta página muestra calendario con la fecha actual. Los días especiales como
pueden ser eventos importantes para el colegio o festivos, se remarcan de forma distinta al resto para que destaque. Si el usuario hace clic en cualquiera de ellos, en la parte inferior de la ventana indicando el tipo de evento asociado a ese día, si tiene asociado algún evento.
Figura 61 Usuario anónimo – Calendario
f. Localización Esta página proporciona información acerca de la localización del colegio. Además
dispone de un enlace al ayuntamiento de Náquera que proporciona un callejero de su localidad a fin de poder encontrar el colegio.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 91
Figura 62 Usuario anónimo – localización
La ventana desplegada muestra dos imágenes. La de la izquierda representa todo el
pueblo a una escala menor. En esta imagen se dispone de un recuadro que puede moverse por dicha imagen, esto provoca que la imagen de la derecha muestre el plano contenido en el recuadro a una mayor escala que permite poder ver mejor el nombre de las calles y sitios de consideración.
Contactar Esta página dispone de un pequeño formulario que permite a los usuarios enviar
información, quejas, sugerencias al colegio. Sólo hace falta introducir el correo electrónico y el texto con los datos que el usuario considere de interés. Una vez efectuado esto, pulsar el botón de enviar.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 92
Figura 63 Usuario anónimo – contacto
g. Enlaces
Esta página muestra aquellos enlaces que el colegio considera del interes de toda su
comunidad (padres, profesores, alumnos)
Figura 64 Usuario anónimo – enlaces
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 93
Intranet del profesor En primer lugar, para poder acceder a la intranet del profesor es necesario
identificarse. Esto puede hacer introduciendo el nombre de usuario y contraseña en la página de inicio. En las cajas de texto que aparece en la esquina izquierda inferior, como puede verse en la imagen.
Figura 65 Pantalla Inicial
Una vez que el sistema confirme nuestra identidad, automáticamente nos llevará a la
intranet del profesor
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 94
Figura 66 Intranet del profesor Donde podremos ver el nombre completo del profesor conectado. A la izquierda
puede verse un menú de navegación, que nos permitirá movernos por toda la aplicación y que siempre estará disponible.
Figura 67 Menú navegacional
La primera opción “Inicio” nos llevará devuelta a la página inicial de la intranet del
profesor, en la que nos encontramos ahora. a. Alumnos
La siguiente opción, “Alumnos”, nos llevará a una página, donde podremos
consultar los alumnos a los que imparte clase el profesor, organizados por asignatura que da el profesor.
Figura 68 Intranet Profesor - Alumnos
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 95
Hay que escoger una asignatura de las disponibles, como puede verse en la
siguiente imagen.
Figura 69 Escogiendo asignatura
Una vez escogida una asignatura automáticamente se cargarán los datos de los
alumnos y la asignatura y si como de donde se imparte. De los alumnos se muestran los apellidos el nombre y el nombre de usuario.
Figura 70 Intranet Profesor - datos cargados
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 96
b. Profesores El siguiente elemento del menú navegacional es “Profesores”. Aquí podemos ver los
datos públicos de todos los profesores del centro.
Figura 71 Intranet Profesor – profesores
c. Notas
El siguiente elemento del menú es “Notas”. Desde aquí se podrán introducir las
notas de los alumnos que asisten a alguna asignatura que imparte el profesor conectado. Los alumnos se encuentran organizados por asignaturas. Para poder comenzar a asignar notas es necesario haber escogido previamente la asignatura, tal como sucedía en la página de los alumnos. Además hará falta seleccionar el cuatrimestre que se quiere puntuar. Si no está seleccionado el cuatrimestre las notas que se introduzcan no se guardarán en sistema. Cuando se seleccione el cuatrimestre, se mostrarán las notas que ya hubieran sido asignadas.
Figura 72 Intranet Profesor – Notas
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 97
Se podrá optar por dos modos para guardar las notas. El primero consistiría en ir
alumno a alumno introducir la nota y hacer clic en el botón de “Guardar”. El segundo método consiste en puntuar a todos los alumnos de una vez y pulsar el botón “Guardar Todos” que guardaría las notas de todos los alumnos a la vez.
Los valores a introducir deben ser números, si tienen decimales se puede utilizar
indistintamente el punto o la coma (automáticamente esto cambiará a un punto para que el sistema pueda trabajar con el valor) La nota debe estar entre 0 y 10. En caso de introducir un valor no válido el sistema mostrará un mensaje como el siguiente:
Figura 73 Intranet Profesor - notas - mensaje error
d. Faltas asistencia En esta página, el profesor podrá rellenar los datos de las faltas de asistencia de los
alumnos. Únicamente podrá poner faltas de asistencia a aquellos alumnos que tengan clase con el profesor, y esta falta quedaría asociada con la asignatura en la que cometió la falta de asistencia.
Como sucedía en páginas anteriores, es necesario escoger la asignatura que se quiera
consultar. Lo siguiente es escoger la fecha de la falta. Para ello habrá que pulsar el “Selecciona Dia”, que desplegará un calendario donde habrá que hacer clic en el día escogido.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 98
Figura 74 Intranet Profesor - falta – Calendario
Una vez se haya escogido el día y la asignatura se cargarán los alumnos. También
aparecerán si para la fecha escogida los alumnos ya le habían puesto una falta de asistencia.
Figura 75 Intranet profesor – falta
Después de cada alumno aparecen una serie de elementos que permiten el manejo de
las faltas. El primero por la izquierda permite seleccionar varios alumnos a la vez para ponerles la falta. Para conseguir poner la falta a los alumnos seleccionados será necesario pulsar el botón “Poner falta a todos”. El siguiente elemento es la fecha, no hace falta tocarlo, porque el sistema coge la fecha seleccionada inicialmente en el calendario. A continuación viene un checkbox que indica si la falta a sido justificada (si esta marcada) o todavía no (si no está seleccionada, por defecto) A continuación vienen dos botones que permiten poner la falta o quitarla (si tenia) al alumno que esté en la misma fila que el botón pulsado.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 99
e. Instalaciones
Esta página permite ver las reservas de las instalaciones que ha efectuado el
profesor. También le permite anular la reserva, si lo desea.
Figura 76 Intranet Profesor – instalaciones
Desde aquí podremos acceder a reservar nuevas instalaciones, pulsando en
“Reservar instalación”. Deberemos escoger una instalación que queramos reservar del menú desplegable.
Esto producirá que el calendario marque en azul oscuro aquellos días en que esa instalación en concreto ha sido previamente reservada, no pudiendo seleccionarlos.
Figura 77 Intranet Profesor - reserva de instalaciones.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 100
A continuación, para hacer efectiva la reserva deberemos de indicarle el motivo por el que deseamos realizar la reserva. Como mínimo harán falta 5 caracteres. Una vez efectuada la reserva nos redirigirá directamente a la página de instalaciones donde podremos ver que efectivamente se tiene una nueva reserva.
Figura 78 Intranet Profesor - reserva confirmada
f. Equipaciones Esta página permite ver las reservas de las equitaciones que ha efectuado el
profesor. También le permite anular la reserva, si lo desea. Esta funcionalidad es prácticamente idéntica a la de instalaciones.
Figura 79 Intranet Profesor – equipaciones
Desde aquí podremos acceder a reservar nuevas equipaciones, pulsando en
“Reservar equipación”. Deberemos escoger una equipación de las disponibles del menú desplegable. Esto
producirá que el calendario marque en azul oscuro aquellos días en que esa instalación en concreto ha sido previamente reservada, no pudiendo seleccionarlos.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 101
Figura 80 Intranet Profesor - reserva de equipaciones.
A continuación, para hacer efectiva la reserva deberemos de indicarle el motivo por
el que deseamos realizar la reserva. Como mínimo harán falta 5 caracteres. Una vez efectuada la reserva nos redirigirá directamente a la página de equipaciones donde podremos ver que efectivamente se tiene una nueva reserva.
Figura 81 Intranet Profesor - reserva confirmada
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 102
g. Tablón de anuncios Esta página nos permitirá insertar nuevos anuncios, que podrán ser consultados por
todos los miembros del colegio cuando accedan a sus respectivas intranets.
Figura 82 Intranet Profesor - tablón anuncios
En la figura anterior puede verse como quedaría un nuevo anuncio. Para insertar uno
nuevo únicamente hay que rellenar dos campos que se encuentran al final de la página.
Figura 83 Intranet Profesor - Insertar anuncio
Sólo hay que rellenar el campo de título y el de texto (que contendrá el anuncio en
sí). La información restante que podía verse en el anuncio anterior la obtendrá el sistema de forma automática.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 103
Intranet de alumno En primer lugar, para poder acceder a la intranet del profesor es necesario
identificarse. Esto puede hacer introduciendo el nombre de usuario y contraseña en la página de inicio. En las cajas de texto que aparece en la esquina izquierda inferior, como puede verse en la imagen.
Figura 84 Pantalla Inicial
Una vez que el sistema confirme nuestra identidad, automáticamente nos llevará a la
intranet del alumno
Figura 85 Intranet del alumno
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 104
Donde podremos ver el nombre completo del alumno conectado. A la izquierda
puede verse un menú de navegación, que nos permitirá movernos por toda la aplicación y que siempre estará disponible.
Figura 86 Menú navegacional
La primera opción “Inicio” nos llevará devuelta a la página inicial de la intranet del
alumno, en la que nos encontramos ahora.
a. Horario Esta página nos mostrará el horario semanal que tiene el alumno conectado
Figura 87 Intranet alumno – horario
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 105
b. Listado alumnos
Esta página el alumno podrá consultar los datos del grupo en el que está
matriculado: el curso y letra del grupo, el delegado, el tutor y el listado de alumnos matriculados con él en dicho grupo.
Figura 88 Intranet alumno - listado alumno
c. Listado profesores Desde aquí obtendremos la información acerca de los profesores que impartan clase
de alguna asignatura al grupo al que asiste el alumno actualmente conectado.
Figura 89 Intranet alumno - listado profesores
Entre la información que aparece se encuentra la asignatura impartidas, el profesor,
el horario de tutorías, si tiene, y su correo electrónico.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 106
d. Notas
Esta página mostrará las notas que tenga el alumno de las distintas asignaturas
Figura 90 Intranet alumno – notas
Sólo aparecerán aquellas asignaturas que tengan alguna nota puesta.
e. Faltas de asistencia Desde aquí el alumno podrá consultar las faltas de asistencia que haya podido
cometer y si las faltas las tiene justificadas o no, así como la asignatura a la que falto y la fecha.
Figura 91 Intranet alumno - faltas asistencia
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 107
f. Menú semanal
Desde aquí se podrá consultar el menú que servirá el comedor del colegio los
próximos días.
Figura 92 Intranet alumno – menú
h. Instalaciones Esta página permite ver las reservas de las instalaciones que ha efectuado el alumno,
si ha realizado alguna. También le permite anular la reserva, si lo desea.
Figura 93 Intranet Alumno – instalaciones
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 108
Desde aquí podremos acceder a reservar nuevas instalaciones, pulsando en
“Reservar instalación”. Deberemos escoger una instalación que queramos reservar del menú desplegable.
Esto producirá que el calendario marque en azul oscuro aquellos días en que esa instalación en concreto ha sido previamente reservada, no pudiendo seleccionarlos.
Figura 94 Intranet alumno - reserva de instalaciones.
A continuación, para hacer efectiva la reserva deberemos de indicarle el motivo por
el que deseamos realizar la reserva. Como mínimo harán falta 5 caracteres. Una vez efectuada la reserva nos redirigirá directamente a la página de instalaciones donde podremos ver que efectivamente se tiene una nueva reserva.
Figura 95 Intranet alumno - reserva confirmada
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 109
i. Tablón de anuncios
Esta página nos permitirá insertar nuevos anuncios, que podrán ser consultados por
todos los miembros del colegio cuando accedan a sus respectivas intranets.
Figura 96 Intranet Profesor - tablón anuncios
En la figura anterior puede verse como quedaría un nuevo anuncio. Para insertar uno
nuevo únicamente hay que rellenar dos campos que se encuentran al final de la página.
Figura 97 Intranet Profesor - Insertar anuncio
Sólo hay que rellenar el campo de título y el de texto (que contendrá el anuncio en
sí). La información restante que podía verse en el anuncio anterior la obtendrá el sistema de forma automática.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 110
F. Código Setup.php (Base de datos) 1 <?php 2 /* 3 * Created on 06/05/2007 4 * 5 * To change the template for this generated file go to 6 * Window - Preferences - PHPeclipse - PHP - Code Templates 7 */ 8 9 require_once "conexion.php"; 10 require_once "conexion_i.php"; 11 require_once ('interfaz_db.php'); 12 13 14 function pasar_a_webcole($link) 15 { 16 echo "<html><head>"; 17 echo "<title>Cambio de base de datos</title></head>"; 18 echo "<table style='text-align: left; width: 100%;' border='1' 19 cellpadding='2' cellspacing='2'>"; 20 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 21 weight: bold;'><big>Descripcion</big></td>"; 22 echo "<td style='text-align: center; width: 163px;'><big><span 23 style='font-weight: bold;'>Estado</span></big></td>"; 24 echo "<td style='text-align: center; width: 255px;'><big><span 25 style='font-weight: bold;'>Error</span></big></td>"; 26 echo "</tr>"; 27 28 $db =cambiar_a_bd($link); 29 echo "<tr><td style='width: 281px; text-align: left;'>"; 30 echo "<font><b>Cambio a la base de datos de WebCole </b></font><br>\n"; 31 echo "</td>\n"; 32 if(!$db) 33 { 34 echo "<td style='width: 163px; text-align: center;'>"; 35 echo "<font color=red>Error </font>\n"; 36 echo "</td>"; 37 echo "<td style='width: 255px; text-align: center;'>"; 38 echo " " . mysql_error() . "\n"; 39 echo "</td>"; 40 } 41 else 42 { 43 echo "<td style='width: 163px; text-align: center;'>"; 44 echo "<font color=green>Correcto</font>\n"; 45 echo "</td>"; 46 echo "<td style='width: 255px; text-align: center;'> </td></tr> 47 \n"; 48 } 49 50 } 51 52 function pasar_a_webcole_i($link) 53 { 54 echo "<html><head>"; 55 echo "<title>Cambio de base de datos</title></head>"; 56 echo "<table style='text-align: left; width: 100%;' border='1' 57 cellpadding='2' cellspacing='2'>"; 58 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 59 weight: bold;'><big>Descripcion</big></td>"; 60 echo "<td style='text-align: center; width: 163px;'><big><span 61 style='font-weight: bold;'>Estado</span></big></td>"; 62 echo "<td style='text-align: center; width: 255px;'><big><span 63 style='font-weight: bold;'>Error</span></big></td>"; 64 echo "</tr>"; 65 66 $db = cambiar_a_bd_i($link); 67 echo "<tr><td style='width: 281px; text-align: left;'>"; 68 echo "<font><b>Cambio a la base de datos de WebCole </b></font><br>\n"; 69 echo "</td>\n"; 70 if(!$db) 71 {
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 111
72 echo "<td style='width: 163px; text-align: center;'>"; 73 echo "<font color=red>Error </font>\n"; 74 echo "</td>"; 75 echo "<td style='width: 255px; text-align: center;'>"; 76 echo " " . mysql_error() . "\n"; 77 echo "</td>"; 78 } 79 else 80 { 81 echo "<td style='width: 163px; text-align: center;'>"; 82 echo "<font color=green>Correcto</font>\n"; 83 echo "</td>"; 84 echo "<td style='width: 255px; text-align: center;'> </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` ('
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 112
149 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 150 NOT NULL, ' 151 . ' `dni` VARCHAR(8) NOT NULL, ' 152 . ' `email` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_spanish_ci 153 NULL, ' 154 . ' PRIMARY KEY (`login`),' 155 . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`)' 156 . ' )' 157 . ' TYPE = innodb;'; 158 159 $sql_eq = 'CREATE TABLE `equipodirectivo` (' 160 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 161 NOT NULL, ' 162 . ' `dni` VARCHAR(8) NOT NULL, ' 163 . ' `email` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_spanish_ci 164 NULL, ' 165 . ' PRIMARY KEY (`login`),' 166 . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`)' 167 . ' )' 168 . ' TYPE = innodb;'; 169 170 $sql_director = 'CREATE TABLE `director` (' 171 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 172 NOT NULL,' 173 . ' PRIMARY KEY (`login`),' 174 . ' FOREIGN KEY (`login`) REFERENCES `equipodirectivo`(`login`)' 175 . ' )' 176 . ' TYPE = innodb;'; 177 178 $sql_jefe = 'CREATE TABLE `jefeestudio` (' 179 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 180 NOT NULL,' 181 . ' PRIMARY KEY (`login`),' 182 . ' FOREIGN KEY (`login`) REFERENCES `equipodirectivo`(`login`)' 183 . ' )' 184 . ' TYPE = innodb;'; 185 186 $sql_secretario = 'CREATE TABLE `secretario` (' 187 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 188 NOT NULL,' 189 . ' PRIMARY KEY (`login`),' 190 . ' FOREIGN KEY (`login`) REFERENCES `equipodirectivo`(`login`)' 191 . ' )' 192 . ' TYPE = innodb;'; 193 194 $sql_anuncio = 'CREATE TABLE `anuncio` (' 195 . ' `idanuncio` MEDIUMINT UNSIGNED NOT NULL, ' 196 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 197 NOT NULL, ' 198 . ' `fecha` DATETIME NOT NULL, ' 199 . ' `titulo` VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_spanish_ci 200 NOT NULL, ' 201 . ' `texto` TEXT NULL,' 202 . ' PRIMARY KEY (`idanuncio`)' 203 . ' )' 204 . ' TYPE = innodb;'; 205 206 $sql_instalacion = 'CREATE TABLE `instalacion` (' 207 . ' `idinstalacion` TINYINT UNSIGNED NOT NULL, ' 208 . ' `instalacion` VARCHAR(50) CHARACTER SET utf8 COLLATE 209 utf8_spanish_ci NOT NULL, ' 210 . ' `normas` VARCHAR(255) CHARACTER SET utf8 COLLATE 211 utf8_spanish_ci NOT NULL ,' 212 . ' PRIMARY KEY (`idinstalacion`),' 213 . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`)' 214 . ' )' 215 . ' TYPE = innodb;'; 216 217 $sql_equipacion = 'CREATE TABLE `equipacion` (' 218 . ' `idequipacion` TINYINT UNSIGNED NOT NULL, ' 219 . ' `equipacion` VARCHAR(50) CHARACTER SET utf8 COLLATE 220 utf8_spanish_ci NOT NULL, ' 221 . ' `estado` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_spanish_ci 222 NOT NULL, ' 223 . ' `normas` VARCHAR(255) CHARACTER SET utf8 COLLATE 224 utf8_spanish_ci NULL ,' 225 . ' PRIMARY KEY (`idequipacion`)'
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 113
226 . ' )' 227 . ' TYPE = innodb;'; 228 229 $sql_res_ins = 'CREATE TABLE `res_ins` (' 230 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 231 NOT NULL, ' 232 . ' `idinstalacion` TINYINT UNSIGNED NOT NULL, ' 233 . ' `fecha` DATETIME NOT NULL, ' 234 . ' `proposito` TEXT NOT NULL,' 235 . ' PRIMARY KEY (`login`, `idinstalacion`,`fecha`),' 236 . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`),' 237 . ' FOREIGN KEY (`idinstalacion`) REFERENCES `instalacion`( 238 `idinstalacion`)' 239 . ' )' 240 . ' TYPE = innodb;'; 241 242 $sql_res_equi = 'CREATE TABLE `res_equi` (' 243 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 244 NOT NULL, ' 245 . ' `idequipacion` TINYINT UNSIGNED NOT NULL, ' 246 . ' `fecha` DATETIME NOT NULL, ' 247 . ' `proposito` TEXT NOT NULL,' 248 . ' PRIMARY KEY (`login`, `idequipacion`,`fecha`),' 249 . ' FOREIGN KEY (`login`) REFERENCES `profesor`(`login`),' 250 . ' FOREIGN KEY (`idequipacion`) REFERENCES `equipacion`( 251 `idequipacion`)' 252 . ' )' 253 . ' TYPE = innodb;'; 254 255 $sql_responsable = 'CREATE TABLE `responsable` (' 256 . ' `padre` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 257 NOT NULL, ' 258 . ' `alumno` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 259 NOT NULL,' 260 . ' PRIMARY KEY (`padre`, `alumno`),' 261 . ' FOREIGN KEY (`padre`) REFERENCES `usuario`(`login`),' 262 . ' FOREIGN KEY (`alumno`) REFERENCES `usuario`(`login`)' 263 . ' )' 264 . ' TYPE = innodb;'; 265 266 $sql_asignatura = 'CREATE TABLE `asignatura` (' 267 . ' `codigoasignatura` TINYINT UNSIGNED NOT NULL, ' 268 . ' `nombre` VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_spanish_ci 269 NOT NULL, ' 270 . ' `curso` ENUM(\'1\',\'2\',\'3\',\'4\',\'5\',\'6\') NOT NULL, ' 271 . ' `horario` VARCHAR(255) CHARACTER SET utf8 COLLATE 272 utf8_spanish_ci NULL,' 273 . ' PRIMARY KEY (`codigoasignatura`)' 274 . ' )' 275 . ' TYPE = innodb;'; 276 277 $sql_imparte = 'CREATE TABLE `imparte` (' 278 . ' `asignatura` TINYINT UNSIGNED NOT NULL, ' 279 . ' `profesor` VARCHAR(20) CHARACTER SET utf8 COLLATE 280 utf8_spanish_ci NOT NULL,' 281 . ' PRIMARY KEY (`asignatura`, `profesor`),' 282 . ' FOREIGN KEY (`asignatura`) REFERENCES `asignatura`( 283 `codigoasignatura`),' 284 . ' FOREIGN KEY (`profesor`) REFERENCES `profesor`(`login`)' 285 . ' )' 286 . ' TYPE = innodb;'; 287 288 $sql_nota = 'CREATE TABLE `nota` (' 289 . ' `alumno` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 290 NOT NULL, ' 291 . ' `asignatura` TINYINT UNSIGNED NOT NULL, ' 292 . ' `curso` ENUM(\'1\',\'2\',\'3\',\'4\',\'5\',\'6\') NOT NULL, ' 293 . ' `trimestre` enum(\'1\',\'2\',\'3\',\'4\') collate 294 utf8_spanish_ci NOT NULL,' 295 . ' `nota` FLOAT NOT NULL,' 296 . ' PRIMARY KEY (`alumno`, `asignatura`,`trimestre`),' 297 . ' FOREIGN KEY (`alumno`) REFERENCES `alumno`(`login`),' 298 . ' FOREIGN KEY (`asignatura`) REFERENCES `asignatura`( 299 `codigoasignatura`)' 300 . ' )' 301 . ' TYPE = innodb;'; 302
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 114
303 $sql_faltaasistencia = 'CREATE TABLE `faltaasistencia` (' 304 . ' `alumno` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 305 NOT NULL, ' 306 . ' `asignatura` TINYINT UNSIGNED NOT NULL, ' 307 . ' `fecha` DATE NOT NULL, ' 308 . ' `justificada` BOOL NOT NULL DEFAULT \'0\',' 309 . ' PRIMARY KEY (`alumno`,`asignatura`,`fecha`),' 310 . ' FOREIGN KEY (`alumno`) REFERENCES `alumno`(`login`),' 311 . ' FOREIGN KEY (`asignatura`) REFERENCES `asignatura`( 312 `codigoasignatura`)' 313 . ' )' 314 . ' TYPE = innodb DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;'; 315 316 $sql_grupo = 'CREATE TABLE `grupo` (' 317 . ' `curso` ENUM(\'1\',\'2\',\'3\',\'4\',\'5\',\'6\') NOT NULL, ' 318 . ' `letra` ENUM(\'A\',\'B\',\'C\',\'D\',\'E\',\'F\') NOT NULL, ' 319 . ' `aula` VARCHAR(5) NOT NULL, ' 320 . ' `delegado` VARCHAR(20) CHARACTER SET utf8 COLLATE 321 utf8_spanish_ci NULL, ' 322 . ' `tutor` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 323 NULL,' 324 . ' PRIMARY KEY (`curso`, `letra`),' 325 . ' FOREIGN KEY (`delegado`) REFERENCES `alumno`(`login`),' 326 . ' FOREIGN KEY (`tutor`) REFERENCES `profesor`(`login`)' 327 . ' )' 328 . ' TYPE = innodb;'; 329 330 $sql_impartida = 'CREATE TABLE `impartida` (' 331 . ' `curso` ENUM(\'1\',\'2\',\'3\',\'4\',\'5\',\'6\') NOT NULL, ' 332 . ' `letra` ENUM(\'A\',\'B\',\'C\',\'D\',\'E\',\'F\') NOT NULL, ' 333 . ' `asignatura` TINYINT UNSIGNED NOT NULL,' 334 . ' PRIMARY KEY (`curso`, `letra`, `asignatura`),' 335 . ' FOREIGN KEY (`curso`, `letra`) REFERENCES `grupo`(`curso`, 336 `letra`),' 337 . ' FOREIGN KEY (`asignatura`) REFERENCES `asignatura`( 338 `codigoasignatura`)' 339 . ' )' 340 . ' TYPE = innodb;'; 341 342 $sql_evento = 'CREATE TABLE `evento` (' 343 . ' `idevento` SMALLINT UNSIGNED NOT NULL, ' 344 . ' `fecha` DATETIME NOT NULL, ' 345 . ' `titulo` VARCHAR(255) CHARACTER SET utf8 COLLATE 346 utf8_spanish_ci NOT NULL, ' 347 . ' `lugar` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_spanish_ci 348 NOT NULL, ' 349 . ' `descripcion` TEXT NOT NULL,' 350 . ' PRIMARY KEY (`idevento`)' 351 . ' )' 352 . ' TYPE = innodb;'; 353 354 $sql_gen_even = 'CREATE TABLE `gen_even` (' 355 . ' `login` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci 356 NOT NULL, ' 357 . ' `evento` SMALLINT UNSIGNED NOT NULL,' 358 . ' PRIMARY KEY (`login`, `evento`),' 359 . ' FOREIGN KEY (`login`) REFERENCES `usuario`(`login`),' 360 . ' FOREIGN KEY (`evento`) REFERENCES `evento`(`idevento`)' 361 . ' )' 362 . ' TYPE = innodb;'; 363 364 ///// 365 // Ejecucion de las creaciones de tablas 366 //// 367 echo "<html><head>"; 368 echo "<title>Creacion de las tablas de base de datos WebCole</title>< 369 /head>"; 370 echo "<table style='text-align: left; width: 100%;' border='1' 371 cellpadding='2' cellspacing='2'>"; 372 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 373 weight: bold;'><big>Descripcion</big></td>"; 374 echo "<td style='text-align: center; width: 163px;'><big><span 375 style='font-weight: bold;'>Estado</span></big></td>"; 376 echo "<td style='text-align: center; width: 255px;'><big><span 377 style='font-weight: bold;'>Error</span></big></td>"; 378 echo "</tr>"; 379
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 115
380 $result = mysql_query($sql_usuario); 381 echo "<tr><td style='width: 281px; text-align: left;'>"; 382 echo "<font><b>Creacion de la tabla de usuarios </b></font><br>\n"; 383 echo "</td>\n"; 384 if(!$result) 385 { 386 echo "<td style='width: 163px; text-align: center;'>"; 387 echo "<font color=red>Error </font>\n"; 388 echo "</td>"; 389 echo "<td style='width: 255px; text-align: center;'>"; 390 echo "" . mysql_error() . "\n"; 391 echo "</td>"; 392 } 393 else 394 { 395 echo "<td style='width: 163px; text-align: center;'>"; 396 echo "<font color=green>Correcto</font>\n"; 397 echo "</td>"; 398 echo "<td style='width: 255px; text-align: center;'> </td></tr> 399 \n"; 400 } 401 402 $result = mysql_query($sql_profesor); 403 echo "<tr><td style='width: 281px; text-align: left;'>"; 404 echo "<font><b>Creacion de la tabla de profesores </b></font><br>\n"; 405 echo "</td>\n"; 406 if(!$result) 407 { 408 echo "<td style='width: 163px; text-align: center;'>"; 409 echo "<font color=red>Error </font>\n"; 410 echo "</td>"; 411 echo "<td style='width: 255px; text-align: center;'>"; 412 echo "" . mysql_error() . "\n"; 413 echo "</td>"; 414 } 415 else 416 { 417 echo "<td style='width: 163px; text-align: center;'>"; 418 echo "<font color=green>Correcto</font>\n"; 419 echo "</td>"; 420 echo "<td style='width: 255px; text-align: center;'> </td></tr> 421 \n"; 422 } 423 424 $result = mysql_query($sql_alumno); 425 echo "<tr><td style='width: 281px; text-align: left;'>"; 426 echo "<font><b>Creacion de la tabla de alumnos </b></font><br>\n"; 427 echo "</td>\n"; 428 if(!$result) 429 { 430 echo "<td style='width: 163px; text-align: center;'>"; 431 echo "<font color=red>Error </font>\n"; 432 echo "</td>"; 433 echo "<td style='width: 255px; text-align: center;'>"; 434 echo "" . mysql_error() . "\n"; 435 echo "</td>"; 436 } 437 else 438 { 439 echo "<td style='width: 163px; text-align: center;'>"; 440 echo "<font color=green>Correcto</font>\n"; 441 echo "</td>"; 442 echo "<td style='width: 255px; text-align: center;'> </td></tr> 443 \n"; 444 } 445 446 $result = mysql_query($sql_padre); 447 echo "<tr><td style='width: 281px; text-align: left;'>"; 448 echo "<font><b>Creacion de la tabla de padre </b></font><br>\n"; 449 echo "</td>\n"; 450 if(!$result) 451 { 452 echo "<td style='width: 163px; text-align: center;'>"; 453 echo "<font color=red>Error </font>\n"; 454 echo "</td>"; 455 echo "<td style='width: 255px; text-align: center;'>"; 456 echo "" . mysql_error() . "\n";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 116
457 echo "</td>"; 458 } 459 else 460 { 461 echo "<td style='width: 163px; text-align: center;'>"; 462 echo "<font color=green>Correcto</font>\n"; 463 echo "</td>"; 464 echo "<td style='width: 255px; text-align: center;'> </td></tr> 465 \n"; 466 } 467 468 469 $result = mysql_query($sql_admin); 470 echo "<tr><td style='width: 281px; text-align: left;'>"; 471 echo "<font><b>Creacion de la tabla de administrador </b></font><br>\n"; 472 echo "</td>\n"; 473 if(!$result) 474 { 475 echo "<td style='width: 163px; text-align: center;'>"; 476 echo "<font color=red>Error </font>\n"; 477 echo "</td>"; 478 echo "<td style='width: 255px; text-align: center;'>"; 479 echo "" . mysql_error() . "\n"; 480 echo "</td>"; 481 } 482 else 483 { 484 echo "<td style='width: 163px; text-align: center;'>"; 485 echo "<font color=green>Correcto</font>\n"; 486 echo "</td>"; 487 echo "<td style='width: 255px; text-align: center;'> </td></tr> 488 \n"; 489 } 490 491 $result = mysql_query($sql_eq); 492 echo "<tr><td style='width: 281px; text-align: left;'>"; 493 echo "<font><b>Creacion de la tabla de equipo directivo </b></font><br> 494 \n"; 495 echo "</td>\n"; 496 if(!$result) 497 { 498 echo "<td style='width: 163px; text-align: center;'>"; 499 echo "<font color=red>Error </font>\n"; 500 echo "</td>"; 501 echo "<td style='width: 255px; text-align: center;'>"; 502 echo "" . mysql_error() . "\n"; 503 echo "</td>"; 504 } 505 else 506 { 507 echo "<td style='width: 163px; text-align: center;'>"; 508 echo "<font color=green>Correcto</font>\n"; 509 echo "</td>"; 510 echo "<td style='width: 255px; text-align: center;'> </td></tr> 511 \n"; 512 } 513 514 $result = mysql_query($sql_director); 515 echo "<tr><td style='width: 281px; text-align: left;'>"; 516 echo "<font><b>Creacion de la tabla de director </b></font><br>\n"; 517 echo "</td>\n"; 518 if(!$result) 519 { 520 echo "<td style='width: 163px; text-align: center;'>"; 521 echo "<font color=red>Error </font>\n"; 522 echo "</td>"; 523 echo "<td style='width: 255px; text-align: center;'>"; 524 echo "" . mysql_error() . "\n"; 525 echo "</td>"; 526 } 527 else 528 { 529 echo "<td style='width: 163px; text-align: center;'>"; 530 echo "<font color=green>Correcto</font>\n"; 531 echo "</td>"; 532 echo "<td style='width: 255px; text-align: center;'> </td></tr> 533 \n";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 117
534 } 535 536 $result = mysql_query($sql_jefe); 537 echo "<tr><td style='width: 281px; text-align: left;'>"; 538 echo "<font><b>Creacion de la tabla de Jefe de estudios </b></font><br> 539 \n"; 540 echo "</td>\n"; 541 if(!$result) 542 { 543 echo "<td style='width: 163px; text-align: center;'>"; 544 echo "<font color=red>Error </font>\n"; 545 echo "</td>"; 546 echo "<td style='width: 255px; text-align: center;'>"; 547 echo "" . mysql_error() . "\n"; 548 echo "</td>"; 549 } 550 else 551 { 552 echo "<td style='width: 163px; text-align: center;'>"; 553 echo "<font color=green>Correcto</font>\n"; 554 echo "</td>"; 555 echo "<td style='width: 255px; text-align: center;'> </td></tr> 556 \n"; 557 } 558 559 $result = mysql_query($sql_secretario); 560 echo "<tr><td style='width: 281px; text-align: left;'>"; 561 echo "<font><b>Creacion de la tabla de secretario </b></font><br>\n"; 562 echo "</td>\n"; 563 if(!$result) 564 { 565 echo "<td style='width: 163px; text-align: center;'>"; 566 echo "<font color=red>Error </font>\n"; 567 echo "</td>"; 568 echo "<td style='width: 255px; text-align: center;'>"; 569 echo "" . mysql_error() . "\n"; 570 echo "</td>"; 571 } 572 else 573 { 574 echo "<td style='width: 163px; text-align: center;'>"; 575 echo "<font color=green>Correcto</font>\n"; 576 echo "</td>"; 577 echo "<td style='width: 255px; text-align: center;'> </td></tr> 578 \n"; 579 } 580 581 $result = mysql_query($sql_anuncio); 582 echo "<tr><td style='width: 281px; text-align: left;'>"; 583 echo "<font><b>Creacion de la tabla de tabla de anuncios </b></font><br> 584 \n"; 585 echo "</td>\n"; 586 if(!$result) 587 { 588 echo "<td style='width: 163px; text-align: center;'>"; 589 echo "<font color=red>Error </font>\n"; 590 echo "</td>"; 591 echo "<td style='width: 255px; text-align: center;'>"; 592 echo "" . mysql_error() . "\n"; 593 echo "</td>"; 594 } 595 else 596 { 597 echo "<td style='width: 163px; text-align: center;'>"; 598 echo "<font color=green>Correcto</font>\n"; 599 echo "</td>"; 600 echo "<td style='width: 255px; text-align: center;'> </td></tr> 601 \n"; 602 } 603 604 $result = mysql_query($sql_instalacion); 605 echo "<tr><td style='width: 281px; text-align: left;'>"; 606 echo "<font><b>Creacion de la tabla de instalacion </b></font><br>\n"; 607 echo "</td>\n"; 608 if(!$result) 609 { 610 echo "<td style='width: 163px; text-align: center;'>";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 118
611 echo "<font color=red>Error </font>\n"; 612 echo "</td>"; 613 echo "<td style='width: 255px; text-align: center;'>"; 614 echo "" . mysql_error() . "\n"; 615 echo "</td>"; 616 } 617 else 618 { 619 echo "<td style='width: 163px; text-align: center;'>"; 620 echo "<font color=green>Correcto</font>\n"; 621 echo "</td>"; 622 echo "<td style='width: 255px; text-align: center;'> </td></tr> 623 \n"; 624 } 625 626 $result = mysql_query($sql_equipacion); 627 echo "<tr><td style='width: 281px; text-align: left;'>"; 628 echo "<font><b>Creacion de la tabla de equipacion </b></font><br>\n"; 629 echo "</td>\n"; 630 if(!$result) 631 { 632 echo "<td style='width: 163px; text-align: center;'>"; 633 echo "<font color=red>Error </font>\n"; 634 echo "</td>"; 635 echo "<td style='width: 255px; text-align: center;'>"; 636 echo "" . mysql_error() . "\n"; 637 echo "</td>"; 638 } 639 else 640 { 641 echo "<td style='width: 163px; text-align: center;'>"; 642 echo "<font color=green>Correcto</font>\n"; 643 echo "</td>"; 644 echo "<td style='width: 255px; text-align: center;'> </td></tr> 645 \n"; 646 } 647 648 $result = mysql_query($sql_res_ins); 649 echo "<tr><td style='width: 281px; text-align: left;'>"; 650 echo "<font><b>Creacion de la tabla de res_ins </b></font><br>\n"; 651 echo "</td>\n"; 652 if(!$result) 653 { 654 echo "<td style='width: 163px; text-align: center;'>"; 655 echo "<font color=red>Error </font>\n"; 656 echo "</td>"; 657 echo "<td style='width: 255px; text-align: center;'>"; 658 echo "" . mysql_error() . "\n"; 659 echo "</td>"; 660 } 661 else 662 { 663 echo "<td style='width: 163px; text-align: center;'>"; 664 echo "<font color=green>Correcto</font>\n"; 665 echo "</td>"; 666 echo "<td style='width: 255px; text-align: center;'> </td></tr> 667 \n"; 668 } 669 670 $result = mysql_query($sql_res_equi); 671 echo "<tr><td style='width: 281px; text-align: left;'>"; 672 echo "<font><b>Creacion de la tabla de res_equi </b></font><br>\n"; 673 echo "</td>\n"; 674 if(!$result) 675 { 676 echo "<td style='width: 163px; text-align: center;'>"; 677 echo "<font color=red>Error </font>\n"; 678 echo "</td>"; 679 echo "<td style='width: 255px; text-align: center;'>"; 680 echo "" . mysql_error() . "\n"; 681 echo "</td>"; 682 } 683 else 684 { 685 echo "<td style='width: 163px; text-align: center;'>"; 686 echo "<font color=green>Correcto</font>\n"; 687 echo "</td>";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 119
688 echo "<td style='width: 255px; text-align: center;'> </td></tr> 689 \n"; 690 } 691 692 $result = mysql_query($sql_responsable); 693 echo "<tr><td style='width: 281px; text-align: left;'>"; 694 echo "<font><b>Creacion de la tabla de responsable </b></font><br>\n"; 695 echo "</td>\n"; 696 if(!$result) 697 { 698 echo "<td style='width: 163px; text-align: center;'>"; 699 echo "<font color=red>Error </font>\n"; 700 echo "</td>"; 701 echo "<td style='width: 255px; text-align: center;'>"; 702 echo "" . mysql_error() . "\n"; 703 echo "</td>"; 704 } 705 else 706 { 707 echo "<td style='width: 163px; text-align: center;'>"; 708 echo "<font color=green>Correcto</font>\n"; 709 echo "</td>"; 710 echo "<td style='width: 255px; text-align: center;'> </td></tr> 711 \n"; 712 } 713 714 $result = mysql_query($sql_asignatura); 715 echo "<tr><td style='width: 281px; text-align: left;'>"; 716 echo "<font><b>Creacion de la tabla de asignatura </b></font><br>\n"; 717 echo "</td>\n"; 718 if(!$result) 719 { 720 echo "<td style='width: 163px; text-align: center;'>"; 721 echo "<font color=red>Error </font>\n"; 722 echo "</td>"; 723 echo "<td style='width: 255px; text-align: center;'>"; 724 echo "" . mysql_error() . "\n"; 725 echo "</td>"; 726 } 727 else 728 { 729 echo "<td style='width: 163px; text-align: center;'>"; 730 echo "<font color=green>Correcto</font>\n"; 731 echo "</td>"; 732 echo "<td style='width: 255px; text-align: center;'> </td></tr> 733 \n"; 734 } 735 736 $result = mysql_query($sql_imparte); 737 echo "<tr><td style='width: 281px; text-align: left;'>"; 738 echo "<font><b>Creacion de la tabla de imparte </b></font><br>\n"; 739 echo "</td>\n"; 740 if(!$result) 741 { 742 echo "<td style='width: 163px; text-align: center;'>"; 743 echo "<font color=red>Error </font>\n"; 744 echo "</td>"; 745 echo "<td style='width: 255px; text-align: center;'>"; 746 echo "" . mysql_error() . "\n"; 747 echo "</td>"; 748 } 749 else 750 { 751 echo "<td style='width: 163px; text-align: center;'>"; 752 echo "<font color=green>Correcto</font>\n"; 753 echo "</td>"; 754 echo "<td style='width: 255px; text-align: center;'> </td></tr> 755 \n"; 756 } 757 758 $result = mysql_query($sql_nota); 759 echo "<tr><td style='width: 281px; text-align: left;'>"; 760 echo "<font><b>Creacion de la tabla de nota </b></font><br>\n"; 761 echo "</td>\n"; 762 if(!$result) 763 { 764 echo "<td style='width: 163px; text-align: center;'>";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 120
765 echo "<font color=red>Error </font>\n"; 766 echo "</td>"; 767 echo "<td style='width: 255px; text-align: center;'>"; 768 echo "" . mysql_error() . "\n"; 769 echo "</td>"; 770 } 771 else 772 { 773 echo "<td style='width: 163px; text-align: center;'>"; 774 echo "<font color=green>Correcto</font>\n"; 775 echo "</td>"; 776 echo "<td style='width: 255px; text-align: center;'> </td></tr> 777 \n"; 778 } 779 780 $result = mysql_query($sql_faltaasistencia); 781 echo "<tr><td style='width: 281px; text-align: left;'>"; 782 echo "<font><b>Creacion de la tabla de falta asistencia </b></font><br> 783 \n"; 784 echo "</td>\n"; 785 if(!$result) 786 { 787 echo "<td style='width: 163px; text-align: center;'>"; 788 echo "<font color=red>Error </font>\n"; 789 echo "</td>"; 790 echo "<td style='width: 255px; text-align: center;'>"; 791 echo "" . mysql_error() . "\n"; 792 echo "</td>"; 793 } 794 else 795 { 796 echo "<td style='width: 163px; text-align: center;'>"; 797 echo "<font color=green>Correcto</font>\n"; 798 echo "</td>"; 799 echo "<td style='width: 255px; text-align: center;'> </td></tr> 800 \n"; 801 } 802 803 $result = mysql_query($sql_grupo); 804 echo "<tr><td style='width: 281px; text-align: left;'>"; 805 echo "<font><b>Creacion de la tabla de grupo </b></font><br>\n"; 806 echo "</td>\n"; 807 if(!$result) 808 { 809 echo "<td style='width: 163px; text-align: center;'>"; 810 echo "<font color=red>Error </font>\n"; 811 echo "</td>"; 812 echo "<td style='width: 255px; text-align: center;'>"; 813 echo "" . mysql_error() . "\n"; 814 echo "</td>"; 815 } 816 else 817 { 818 echo "<td style='width: 163px; text-align: center;'>"; 819 echo "<font color=green>Correcto</font>\n"; 820 echo "</td>"; 821 echo "<td style='width: 255px; text-align: center;'> </td></tr> 822 \n"; 823 } 824 825 $result = mysql_query($sql_impartida); 826 echo "<tr><td style='width: 281px; text-align: left;'>"; 827 echo "<font><b>Creacion de la tabla de impartida </b></font><br>\n"; 828 echo "</td>\n"; 829 if(!$result) 830 { 831 echo "<td style='width: 163px; text-align: center;'>"; 832 echo "<font color=red>Error </font>\n"; 833 echo "</td>"; 834 echo "<td style='width: 255px; text-align: center;'>"; 835 echo "" . mysql_error() . "\n"; 836 echo "</td>"; 837 } 838 else 839 { 840 echo "<td style='width: 163px; text-align: center;'>"; 841 echo "<font color=green>Correcto</font>\n";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 121
842 echo "</td>"; 843 echo "<td style='width: 255px; text-align: center;'> </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;'> </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;'> </td></tr> 888 \n"; 889 } 890 891 echo " </tbody></table><br><br>"; 892 } 893 894 function borrar_tablas () 895 { 896 echo "<html><head>"; 897 echo "<title>Eliminacion de las tablas de base de datos WebCole</title>< 898 /head>"; 899 echo "<table style='text-align: left; width: 100%;' border='1' 900 cellpadding='2' cellspacing='2'>"; 901 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 902 weight: bold;'><big>Descripcion</big></td>"; 903 echo "<td style='text-align: center; width: 163px;'><big><span 904 style='font-weight: bold;'>Estado</span></big></td>"; 905 echo "<td style='text-align: center; width: 255px;'><big><span 906 style='font-weight: bold;'>Error</span></big></td>"; 907 echo "</tr>"; 908 909 $i = 0; 910 911 $prueba[$i]["sql"] = 'DROP TABLE `gen_even`'; 912 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de gen_even"; 913 914 $prueba[$i]["sql"] = 'DROP TABLE `evento`'; 915 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de evento"; 916 917 $prueba[$i]["sql"] = 'DROP TABLE `impartida`'; 918 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de impartida";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 122
919 920 $prueba[$i]["sql"] = 'DROP TABLE `grupo`'; 921 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de grupo"; 922 923 $prueba[$i]["sql"] = 'DROP TABLE `faltaasistencia`'; 924 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de falta 925 asistencia"; 926 927 $prueba[$i]["sql"] = 'DROP TABLE `nota`'; 928 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de nota"; 929 930 $prueba[$i]["sql"] = 'DROP TABLE `imparte`'; 931 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de imparte"; 932 933 $prueba[$i]["sql"] = 'DROP TABLE `asignatura`'; 934 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de asignatura"; 935 936 $prueba[$i]["sql"] = 'DROP TABLE `responsable`'; 937 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de responsable"; 938 939 $prueba[$i]["sql"] = 'DROP TABLE `res_equi`'; 940 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de res_Equi"; 941 942 $prueba[$i]["sql"] = 'DROP TABLE `res_ins`'; 943 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de res_ins"; 944 945 $prueba[$i]["sql"] = 'DROP TABLE `equipacion`'; 946 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de equipacion "; 947 948 $prueba[$i]["sql"] = 'DROP TABLE `instalacion`'; 949 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de instalacion"; 950 951 $prueba[$i]["sql"] = 'DROP TABLE `anuncio`'; 952 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de anuncio"; 953 954 $prueba[$i]["sql"] = 'DROP TABLE `secretario`'; 955 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de secretario"; 956 957 $prueba[$i]["sql"] = 'DROP TABLE `jefeestudio`'; 958 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de Jefe de 959 estudios "; 960 961 $prueba[$i]["sql"] = 'DROP TABLE `director`'; 962 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de director"; 963 964 $prueba[$i]["sql"] = 'DROP TABLE `equipodirectivo`'; 965 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de equipo 966 directivo"; 967 968 $prueba[$i]["sql"] = 'DROP TABLE `administrador`'; 969 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de 970 administrador"; 971 972 $prueba[$i]["sql"] = 'DROP TABLE `padre`'; 973 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de padre"; 974 975 $prueba[$i]["sql"] = 'DROP TABLE `alumno`'; 976 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de alumno"; 977 978 $prueba[$i]["sql"] = 'DROP TABLE `profesor`'; 979 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de profesor"; 980 981 $prueba[$i]["sql"] = 'DROP TABLE `usuario`'; 982 $prueba[$i++]["descripcion"] = "Eliminacion de la tabla de usuario"; 983 984 ejecutar ($prueba, $link); 985 986 echo " </tbody></table><br><br>"; 987 } 988 989 // crea la base de datos (no crea nada mas) 990 function crear_bd($link) 991 { 992 echo "<html><head>"; 993 echo "<title>Creacion de la base de datos Webcole</title></head>"; 994 echo "<table style='text-align: left; width: 100%;' border='1' 995 cellpadding='2' cellspacing='2'>";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 123
996 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 997 weight: bold;'><big>Descripcion</big></td>"; 998 echo "<td style='text-align: center; width: 163px;'><big><span 999 style='font-weight: bold;'>Estado</span></big></td>"; 1000 echo "<td style='text-align: center; width: 255px;'><big><span 1001 style='font-weight: bold;'>Error</span></big></td>"; 1002 echo "</tr>"; 1003 1004 $i = 0; 1005 $prueba[$i]["sql"] = 'CREATE DATABASE `webcole`;'; 1006 $prueba[$i++]["descripcion"] = "Creacion de la base de datos de 1007 WebCole"; 1008 1009 ejecutar ($prueba, $link); 1010 1011 echo " </tbody></table><br><br>"; 1012 } 1013 1014 //permite borrar la base de datos ( y todas las tablas ) 1015 //no borra las perfiles de los usuarios que pueden acceder a la base de 1016 datos 1017 //no confundir con los datos que hay dentro de las tablas de "usuario", 1018 "alumno", "padre" ... 1019 function borrar_bd($link) 1020 { 1021 echo "<html><head>"; 1022 echo "<title>Elimanacion de la base de datos Webcole</title></head>"; 1023 echo "<table style='text-align: left; width: 100%;' border='1' 1024 cellpadding='2' cellspacing='2'>"; 1025 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 1026 weight: bold;'><big>Descripcion</big></td>"; 1027 echo "<td style='text-align: center; width: 163px;'><big><span 1028 style='font-weight: bold;'>Estado</span></big></td>"; 1029 echo "<td style='text-align: center; width: 255px;'><big><span 1030 style='font-weight: bold;'>Error</span></big></td>"; 1031 echo "</tr>"; 1032 1033 $i = 0; 1034 $prueba[$i]["sql"] = 'DROP DATABASE `webcole`'; 1035 $prueba[$i++]["descripcion"] = "Eliminacion de la base de datos"; 1036 1037 ejecutar ($prueba, $link); 1038 1039 echo " </tbody></table><br><br>"; 1040 } 1041 1042 //las opciones de la tabla 1043 function inicio_html () 1044 { 1045 echo "<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'> 1046 \n"; 1047 echo "<html>\n"; 1048 echo "<head>\n"; 1049 echo "<meta content='text/html; charset=ISO-8859-1'\n"; 1050 echo " http-equiv='content-type'>\n"; 1051 echo "<title>Setup para Webcole</title>\n"; 1052 echo "</head>\n"; 1053 echo "<body>\n"; 1054 echo "<div style='text-align: center;'><big><big><span\n"; 1055 echo " style='font-weight: bold;'>Fichero para la\n"; 1056 echo "inicialización de la base de datos para el PFC WebCole<br> 1057 \n"; 1058 echo "<br>\n"; 1059 echo "</span></big></big>\n"; 1060 echo "<div style='text-align: left;'>\n"; 1061 echo "<table style='text-align: left; width: 952px; height: 171px;'\n"; 1062 echo " border='1' cellpadding='2' cellspacing='2'>\n"; 1063 echo " <tbody>\n"; 1064 echo " <tr>\n"; 1065 echo " <td style='font-weight: bold; width: 633px;'>Crear\n"; 1066 echo "la base de\n"; 1067 echo "datos de 'WebCole'</td>\n"; 1068 echo " <td style='width: 318px;'>\n"; 1069 echo " <form method='get' action='setup.php'\n"; 1070 echo " name='crear_db'><button value='1' name='opcion'>Crear\n"; 1071 echo "base de datos </button></form>\n"; 1072 echo " </td>\n";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 124
1073 echo " </tr>\n"; 1074 echo " <tr>\n"; 1075 echo " <td style='width: 633px;'><span\n"; 1076 echo " style='font-weight: bold;'>Crear las\n"; 1077 echo "tablas de la base de datos </span><span \n"; 1078 echo " style='font-weight: bold;'>(si la base de \n"; 1079 echo "datos no existe, se creará)</span></td> \n"; 1080 echo " <td style='width: 318px;'> \n"; 1081 echo " <form method='get' action='setup.php' \n"; 1082 echo " name='crear_tablas'><button value='2' name='opcion'>Crear \n"; 1083 echo "tablas</button></form> \n"; 1084 echo " </td> \n"; 1085 echo " </tr> \n"; 1086 echo " <tr> \n"; 1087 echo " <td style='font-weight: bold; width: 633px;'>Destruir \n"; 1088 echo "las tablas de la base de datos</td> \n"; 1089 echo " <td style='width: 318px;'> \n"; 1090 echo " <form method='get' action='setup.php' \n"; 1091 echo " name='Destruir_tablas'><button value='3' \n"; 1092 echo " name='opcion'>Destruir tablas</button></form> \n"; 1093 echo " </td> \n"; 1094 echo " </tr> \n"; 1095 echo " <tr> \n"; 1096 echo " <td style='font-weight: bold; width: 633px;'>Destruir \n"; 1097 echo "la base de datos de 'Webcole' (se destruirán \n"; 1098 echo "también las tablas)</td> \n"; 1099 echo " <td style='width: 318px;'> \n"; 1100 echo " <form method='get' action='setup.php' \n"; 1101 echo " name='Destruir_db'><button value='4' name='opcion'>Destruir \n"; 1102 echo "base de datos</button></form> \n"; 1103 echo " </td> \n"; 1104 echo " </tr> \n"; 1105 1106 1107 echo " <tr> \n"; 1108 echo " <td style='font-weight: bold; width: 633px;'> Ejemplos </td> 1109 \n"; 1110 echo " <td style='width: 318px;'> \n"; 1111 echo " <form method='get' action='setup.php' 1112 name='Destruir_db'><button value='5' name='opcion'>"; 1113 echo " Ejemplos</button></form> \n"; 1114 echo " </td> \n"; 1115 echo " </tr> \n"; 1116 1117 1118 echo " <tr> \n"; 1119 echo " <td style='font-weight: bold; width: 633px;'> Crear 1120 Perfiles usuarios </td> \n"; 1121 echo " <td style='width: 318px;'> \n"; 1122 echo " <form method='get' action='setup.php' 1123 name='Destruir_db'><button value='6' name='opcion'>"; 1124 echo " Crear Perfiles Usuarios</button></form> \n"; 1125 echo " </td> \n"; 1126 echo " </tr> \n"; 1127 1128 echo " <tr> \n"; 1129 echo " <td style='font-weight: bold; width: 633px;'> Borrar 1130 Perfiles usuarios </td> \n"; 1131 echo " <td style='width: 318px;'> \n"; 1132 echo " <form method='get' action='setup.php' 1133 name='Destruir_db'><button value='7' name='opcion'>"; 1134 echo " Borrar Perfiles Usuarios</button></form> \n"; 1135 echo " </td> \n"; 1136 echo " </tr> \n"; 1137 1138 1139 1140 echo " <tr> \n"; 1141 echo " <td style='font-weight: bold; width: 633px;'>Pruebas</td> 1142 \n"; 1143 echo " <td style='width: 318px;'> \n"; 1144 echo " <form method='get' action='setup.php' 1145 name='Destruir_db'><button value='99' name='opcion'>"; 1146 echo " Pruebas</button></form> \n"; 1147 echo " </td> \n"; 1148 echo " </tr> \n"; 1149
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 125
1150 1151 echo " </tbody> \n"; 1152 echo "</table> \n"; 1153 echo "<big><big><span style='font-weight: bold;'></span></big></big>< 1154 big><big><span \n"; 1155 echo " style='font-weight: bold;'></span></big></big></div> \n"; 1156 echo "</div> \n"; 1157 echo "</body> \n"; 1158 echo "</html> \n"; 1159 1160 1161 } 1162 1163 //final de la pagina html 1164 function fin_html () 1165 { 1166 echo "<br>"; 1167 echo "<div style='text-align: center;'> "; 1168 echo "Vuelve al inicio pulsando <a href='setup.php'>aquí</a><br> 1169 "; 1170 echo "</div> "; 1171 echo "</body></html>"; 1172 } 1173 1174 1175 1176 // Carga varios usuarios en la base de datos 1177 function ejemplos ($link) 1178 { 1179 echo "<html><head>"; 1180 echo "<title>Ejemplos para la base de datos Webcole</title></head>"; 1181 echo "<table style='text-align: left; width: 100%;' border='1' 1182 cellpadding='2' cellspacing='2'>"; 1183 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 1184 weight: bold;'><big>Descripcion</big></td>"; 1185 echo "<td style='text-align: center; width: 163px;'><big><span 1186 style='font-weight: bold;'>Estado</span></big></td>"; 1187 echo "<td style='text-align: center; width: 255px;'><big><span 1188 style='font-weight: bold;'>Error</span></big></td>"; 1189 echo "</tr>"; 1190 1191 $datos = array("login" => "viblasan",); 1192 $datos["nombre"] = "viblasan"; 1193 $datos["apellido1"] = "Blasco"; 1194 $datos["apellido2"] = "Sánchez"; 1195 $datos["direccion"] = "Maria Pastor"; 1196 $datos["poblacion"] = "alboraya"; 1197 $datos["cp"] = "46120"; 1198 $datos["password"] = "password"; 1199 $datos["telefono"] = "699161799"; 1200 $datos["dni"] = "3312"; 1201 $datos["email"] = "[email protected]"; 1202 $datos["tutorias"] = "null"; 1203 1204 $resultado = insertar_usuario($datos, PROFESOR); 1205 1206 echo "<tr><td style='width: 281px; text-align: left;'>"; 1207 echo "<font><b>Ejemplo Usuario-Profesor(viblasan) </b></font><br>\n"; 1208 echo "</td>\n"; 1209 if(!$resultado["estado"]) 1210 { 1211 echo "<td style='width: 163px; text-align: center;'>"; 1212 echo "<font color=red>Error </font>\n"; 1213 echo "</td>"; 1214 echo "<td style='width: 255px; text-align: center;'>"; 1215 echo "" . $resultado["descripcion"]. "\n"; 1216 echo "</td>"; 1217 } 1218 else 1219 { 1220 echo "<td style='width: 163px; text-align: center;'>"; 1221 echo "<font color=green>Correcto</font>\n"; 1222 echo "</td>"; 1223 echo "<td style='width: 255px; text-align: center;'> </td></tr> 1224 \n"; 1225 } 1226
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 126
1227 $datos = array("login" => "visangui"); 1228 $datos["nombre"] = "Vicente"; 1229 $datos["apellido1"] = "Sancho"; 1230 $datos["apellido2"] = "Guijarro"; 1231 $datos["direccion"] = "Colon"; 1232 $datos["poblacion"] = "Valencia"; 1233 $datos["cp"] = "46456"; 1234 $datos["password"] = "password"; 1235 $datos["telefono"] = "654161799"; 1236 $datos["dni"] = "3312"; 1237 $datos["email"] = "[email protected]"; 1238 $datos["tutorias"] = "null"; 1239 1240 $resultado = insertar_usuario($datos, PROFESOR); 1241 1242 echo "<tr><td style='width: 281px; text-align: left;'>"; 1243 echo "<font><b>Ejemplo Usuario-Profesor(visangui) </b></font><br>\n"; 1244 echo "</td>\n"; 1245 if(!$resultado["estado"]) 1246 { 1247 echo "<td style='width: 163px; text-align: center;'>"; 1248 echo "<font color=red>Error </font>\n"; 1249 echo "</td>"; 1250 echo "<td style='width: 255px; text-align: center;'>"; 1251 echo "" . $resultado["descripcion"]. "\n"; 1252 echo "</td>"; 1253 } 1254 else 1255 { 1256 echo "<td style='width: 163px; text-align: center;'>"; 1257 echo "<font color=green>Correcto</font>\n"; 1258 echo "</td>"; 1259 echo "<td style='width: 255px; text-align: center;'> </td></tr> 1260 \n"; 1261 } 1262 1263 $datos = array("login" => "visebo"); 1264 $datos["nombre"] = "Alumno1"; 1265 $datos["apellido1"] = "Apellido1Alumno1"; 1266 $datos["apellido2"] = "Apellido2Alumno1"; 1267 $datos["direccion"] = "Colon"; 1268 $datos["poblacion"] = "Valencia"; 1269 $datos["cp"] = "46123"; 1270 $datos["password"] = "password"; 1271 $datos["telefono"] = "63456777"; 1272 $datos["dni"] = "3312"; 1273 $datos["email"] = "[email protected]"; 1274 $datos["tutorias"] = "null"; 1275 1276 $resultado = insertar_usuario($datos, ALUMNO); 1277 1278 echo "<tr><td style='width: 281px; text-align: left;'>"; 1279 echo "<font><b>Ejemplo Usuario-Alumno(visebo) </b></font><br>\n"; 1280 echo "</td>\n"; 1281 if(!$resultado["estado"]) 1282 { 1283 echo "<td style='width: 163px; text-align: center;'>"; 1284 echo "<font color=red>Error </font>\n"; 1285 echo "</td>"; 1286 echo "<td style='width: 255px; text-align: center;'>"; 1287 echo "" . $resultado["descripcion"]. "\n"; 1288 echo "</td>"; 1289 } 1290 else 1291 { 1292 echo "<td style='width: 163px; text-align: center;'>"; 1293 echo "<font color=green>Correcto</font>\n"; 1294 echo "</td>"; 1295 echo "<td style='width: 255px; text-align: center;'> </td></tr> 1296 \n"; 1297 } 1298 1299 $datos = array("login" => "pater"); 1300 $datos["nombre"] = "Padre1"; 1301 $datos["apellido1"] = "Apellido1Padre1"; 1302 $datos["apellido2"] = "Apellido2Padre1"; 1303 $datos["direccion"] = "Colon";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 127
1304 $datos["poblacion"] = "Valencia"; 1305 $datos["cp"] = "46123"; 1306 $datos["password"] = "password"; 1307 $datos["telefono"] = "63456777"; 1308 $datos["dni"] = "3312"; 1309 $datos["email"] = "[email protected]"; 1310 $datos["tutorias"] = "null"; 1311 1312 $resultado = insertar_usuario($datos, PADRE); 1313 1314 echo "<tr><td style='width: 281px; text-align: left;'>"; 1315 echo "<font><b>Ejemplo Usuario-Padre(pater) </b></font><br>\n"; 1316 echo "</td>\n"; 1317 if(!$resultado["estado"]) 1318 { 1319 echo "<td style='width: 163px; text-align: center;'>"; 1320 echo "<font color=red>Error </font>\n"; 1321 echo "</td>"; 1322 echo "<td style='width: 255px; text-align: center;'>"; 1323 echo "" . $resultado["descripcion"]. "\n"; 1324 echo "</td>"; 1325 } 1326 else 1327 { 1328 echo "<td style='width: 163px; text-align: center;'>"; 1329 echo "<font color=green>Correcto</font>\n"; 1330 echo "</td>"; 1331 echo "<td style='width: 255px; text-align: center;'> </td></tr> 1332 \n"; 1333 } 1334 1335 $datos = array("login" => "viblasan2", "nombre"=>"viblasan", 1336 "apellido1"=>"Blasco", "apellido2"=>"Sánchez"); 1337 $datos["direccion"] = "Maria Pastor"; 1338 $datos["poblacion"] = "alboraya"; 1339 $datos["cp"] = "46120"; 1340 $datos["password"] = "password"; 1341 $datos["telefono"] = "699161799"; 1342 $datos["dni"] = "3312"; 1343 $datos["email"] = "[email protected]"; 1344 $datos["tutorias"] = "null"; 1345 1346 $resultado = insertar_usuario($datos, ADMINISTRADOR); 1347 1348 echo "<tr><td style='width: 281px; text-align: left;'>"; 1349 echo "<font><b>Ejemplo Usuario-ADMINISTRADOR(viblasan2) </b></font><br> 1350 \n"; 1351 echo "</td>\n"; 1352 if(!$resultado["estado"]) 1353 { 1354 echo "<td style='width: 163px; text-align: center;'>"; 1355 echo "<font color=red>Error </font>\n"; 1356 echo "</td>"; 1357 echo "<td style='width: 255px; text-align: center;'>"; 1358 echo "" . $resultado["descripcion"]. "\n"; 1359 echo "</td>"; 1360 } 1361 else 1362 { 1363 echo "<td style='width: 163px; text-align: center;'>"; 1364 echo "<font color=green>Correcto</font>\n"; 1365 echo "</td>"; 1366 echo "<td style='width: 255px; text-align: center;'> </td></tr> 1367 \n"; 1368 } 1369 1370 $datos = array("login" => "visangui2"); 1371 $datos["nombre"] = "Vicente"; 1372 $datos["apellido1"] = "Sancho"; 1373 $datos["apellido2"] = "Guijarro"; 1374 $datos["direccion"] = "Colon"; 1375 $datos["poblacion"] = "Valencia"; 1376 $datos["cp"] = "46456"; 1377 $datos["password"] = "password"; 1378 $datos["telefono"] = "654161799"; 1379 $datos["dni"] = "3312"; 1380 $datos["email"] = "[email protected]";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 128
1381 $datos["tutorias"] = "null"; 1382 1383 $resultado = insertar_usuario($datos, ADMINISTRADOR); 1384 1385 echo "<tr><td style='width: 281px; text-align: left;'>"; 1386 echo "<font><b>Ejemplo Usuario-ADMINISTRADOR(visangui2) </b></font><br> 1387 \n"; 1388 echo "</td>\n"; 1389 if(!$resultado["estado"]) 1390 { 1391 echo "<td style='width: 163px; text-align: center;'>"; 1392 echo "<font color=red>Error </font>\n"; 1393 echo "</td>"; 1394 echo "<td style='width: 255px; text-align: center;'>"; 1395 echo "" . $resultado["descripcion"]. "\n"; 1396 echo "</td>"; 1397 } 1398 else 1399 { 1400 echo "<td style='width: 163px; text-align: center;'>"; 1401 echo "<font color=green>Correcto</font>\n"; 1402 echo "</td>"; 1403 echo "<td style='width: 255px; text-align: center;'> </td></tr> 1404 \n"; 1405 } 1406 1407 $datos = array("login" => "visebo2"); 1408 $datos["nombre"] = "Alumno2"; 1409 $datos["apellido1"] = "Apellido1Alumno2"; 1410 $datos["apellido2"] = "Apellido2Alumno2"; 1411 $datos["direccion"] = "Colon"; 1412 $datos["poblacion"] = "Valencia"; 1413 $datos["cp"] = "46123"; 1414 $datos["password"] = "password"; 1415 $datos["telefono"] = "63456777"; 1416 $datos["dni"] = "3312"; 1417 $datos["email"] = "[email protected]"; 1418 $datos["tutorias"] = "null"; 1419 1420 $resultado = insertar_usuario($datos, ALUMNO); 1421 1422 echo "<tr><td style='width: 281px; text-align: left;'>"; 1423 echo "<font><b>Ejemplo Usuario-ALUMNO(visebo2) </b></font><br>\n"; 1424 echo "</td>\n"; 1425 if(!$resultado["estado"]) 1426 { 1427 echo "<td style='width: 163px; text-align: center;'>"; 1428 echo "<font color=red>Error </font>\n"; 1429 echo "</td>"; 1430 echo "<td style='width: 255px; text-align: center;'>"; 1431 echo "" . $resultado["descripcion"]. "\n"; 1432 echo "</td>"; 1433 } 1434 else 1435 { 1436 echo "<td style='width: 163px; text-align: center;'>"; 1437 echo "<font color=green>Correcto</font>\n"; 1438 echo "</td>"; 1439 echo "<td style='width: 255px; text-align: center;'> </td></tr> 1440 \n"; 1441 } 1442 1443 $i = 0; 1444 1445 $prueba[$i]["sql"] = "INSERT INTO `equipacion` (`idequipacion`, 1446 `equipacion`, `estado`, `normas`) VALUES (1, 'Radio-CD', 'Disponible', 1447 '/webcole/normas/Radio_cd.pdf'), 1448 (2, 'Televisor', 'Disponible', '/webcole/normas/Televisor.pdf');"; 1449 $prueba[$i++]["descripcion"] = "Creando equipaciones: Radio-CD y 1450 Televisor"; 1451 1452 $prueba[$i]["sql"] = "INSERT INTO `instalacion` (`idinstalacion`, 1453 `instalacion`, `normas`) VALUES (1, 'Gimnasio', 1454 '/webcole/normas/Gimnasio.pdf'), 1455 (2, 'Pabellon Cubierto', '/webcole/normas/Pabellon_cubierto.pdf');"; 1456 $prueba[$i++]["descripcion"] = "Creando instalacion: gimnasio y 1457 pabellon cubierto";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 129
1458 1459 $prueba[$i]["sql"] = "INSERT INTO `evento` (`idevento`, `fecha`, 1460 `titulo`, `lugar`, `descripcion`) VALUES (1, '2000-10-09 17:06:08', 1461 'Festivo', 'Valencia', 'Día de la Comunitat Valenciana'), 1462 (2, '2007-09-10 18:12:19', 'Curso', 'Colegio', 'Inicio del curso 1463 académico 2007/2008'), 1464 (3, '2000-10-12 19:31:05', 'Festivo', 'España', 'Festividad Virgen del 1465 Pilar'), 1466 (4, '2000-03-19 19:33:47', 'Festivo', 'Valencia', 'San José'), 1467 (5, '2000-12-06 19:34:46', 'Festivo', 'España', 'Día de la 1468 Constitución'), 1469 (6, '2000-12-08 19:35:45', 'Festivo', 'España', 'Inmaculada Concepción') 1470 , 1471 (7, '2000-11-01 19:37:00', 'Festivo', 'España', 'Todos los santos'), 1472 (8, '2007-05-06 13:31:54', 'Noticia', 'UPV', 'Presentada la primera 1473 maqueta de la web.'), 1474 (9, '2007-06-11 13:32:53', 'Noticia', 'UPV', 'Implementado el 1475 calendario escolar.'), 1476 (10, '2000-05-01 13:49:41', 'Festivo', 'España', 'Día del trabajador'), 1477 (11, '2007-06-17 19:31:05', 'Noticia', 'Web', 'Reparado el problema de 1478 las tildes en la web.'), 1479 (12, '2007-07-01 13:04:09', 'Noticia', 'web', 'Posibilidad de reservar, 1480 anular reservas de instalaciones y equipamientos(solo para profesores)') 1481 ;"; 1482 $prueba[$i++]["descripcion"] = "Eventos del colegio"; 1483 1484 $prueba[$i]["sql"] = "INSERT INTO `usuario` (`login`, `nombre`, 1485 `apellido1`, `apellido2`, `direccion`, `poblacion`, `cp`, `contrasenya`, 1486 `telefono`) VALUES ('pepe', 'Pepe', 'Pérez', 'García', 'Mayor, 25', 1487 'Valencia', 46001, 'epep', '96300101'), 1488 ('pepito', 'Pepito', 'Martínez', 'Sánchez', 'Menor, 23', 'Valencia', 1489 46002, 'ep', '96123457'), 1490 ('juan', 'Juan', 'Gómez', 'Crespo', 'Calle principal', 'Valencia', 1491 46005, 'nauj', '96158020'), 1492 ('jose', 'José', 'Martínez', 'Sánchez', 'C/ Mestral, 23', 'Serra', 1493 46550, 'esoj', '961652020'), 1494 ('admin', 'Administrador', 'adm', 'adm', 'C/ Polideportivo, s/n', 1495 'Nàquera', 46119, 'nimda', '961680076'), 1496 ('miguelito', 'Miguelito', 'Peris', 'Cazorla', 'C/ Menorca, 12', 1497 'Náquera', 46119, 'mig', '961652335');"; 1498 $prueba[$i++]["descripcion"] = "Varios Usuarios"; 1499 1500 $prueba[$i]["sql"] = " INSERT INTO `administrador` (`login`, `dni`, 1501 `email`) VALUES ('admin', '00000000', '[email protected]'); "; 1502 $prueba[$i++]["descripcion"] = "Administrador "; 1503 1504 $prueba[$i]["sql"] = "INSERT INTO `alumno` (`login`, `curso`, `letra`) 1505 VALUES ('pepito', '1', 'A'), 1506 ('miguelito', '1', 'A');"; 1507 $prueba[$i++]["descripcion"] = " Alumno Miguelito y pepito "; 1508 1509 $prueba[$i]["sql"] = "INSERT INTO `equipodirectivo` (`login`, `dni`, 1510 `email`) VALUES ('pepe', '12345678', '[email protected]'), 1511 ('juan', '46502365', '[email protected]'), 1512 ('jose', '87654321', '[email protected]');"; 1513 $prueba[$i++]["descripcion"] = " equipodirectivo "; 1514 1515 $prueba[$i]["sql"] = " INSERT INTO `director` (`login`) VALUES ('pepe'); 1516 "; 1517 $prueba[$i++]["descripcion"] = " Director "; 1518 1519 $prueba[$i]["sql"] = "INSERT INTO `jefeestudio` (`login`) VALUES ( 1520 'juan'); "; 1521 $prueba[$i++]["descripcion"] = "Jefe Estudios "; 1522 1523 $prueba[$i]["sql"] = "INSERT INTO `profesor` (`login`, `dni`, `email`, 1524 `tutorias`) VALUES ('pepe', '12345678', '[email protected]', 'Martes 1525 10:30-13:00'), 1526 ('juan', '46502365', '[email protected]', 'Viernes 9:00-12:00'), 1527 ('jose', '87654321', '[email protected]', 'Jueves 9:30 - 13:30'); "; 1528 $prueba[$i++]["descripcion"] = " Profesores "; 1529 1530 $prueba[$i]["sql"] = "INSERT INTO `secretario` (`login`) VALUES ('jose') 1531 ; "; 1532 $prueba[$i++]["descripcion"] = "Secretario "; 1533 1534 $prueba[$i]["sql"] = "INSERT INTO `asignatura` (`codigoasignatura`,
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 130
1535 `nombre`, `curso`, `horario`) VALUES (1, 'Matemáticas', '1', 'Lunes 9 1536 Martes 9 Jueves 10'), 1537 (2, 'Castellano', '1', 'Lunes 10 Miércoles 11 Viernes 9'), 1538 (3, 'Inglés', '1', 'Martes 11 Miércoles 15 Jueves 9 Viernes 10'), 1539 (4, 'Ética/Religión', '1', 'Lunes 11 Miércoles 16'), 1540 (5, 'Conocimiento del medio', '1', 'Lunes 15 Miércoles 10 Jueves 15'), 1541 (6, 'Ed. Plástica', '1', 'Lunes 16 Viernes 15'), 1542 (7, 'Ed. Física', '1', 'Martes 10 Viernes 16'), 1543 (8, 'Ed. Ciudadanía', '1', 'Martes 15 Martes 16'), 1544 (9, 'Valencià', '1', 'Miércoles 9 Jueves 11 Viernes 11'), 1545 (10, 'Tutoría', '1', 'Jueves 16');"; 1546 $prueba[$i++]["descripcion"] = "Asignaturas"; 1547 1548 $prueba[$i]["sql"] = "INSERT INTO `grupo` (`curso`, `letra`, `aula`, 1549 `delegado`, `tutor`) VALUES ('1', 'A', 'B1', 'pepito', 'juan');"; 1550 $prueba[$i++]["descripcion"] = "Grupo"; 1551 1552 $prueba[$i]["sql"] = "INSERT INTO `impartida` (`curso`, `letra`, 1553 `asignatura`) VALUES ('1', 'A', 1), 1554 ('1', 'A', 2), 1555 ('1', 'A', 3), 1556 ('1', 'A', 4), 1557 ('1', 'A', 5), 1558 ('1', 'A', 6), 1559 ('1', 'A', 7), 1560 ('1', 'A', 8), 1561 ('1', 'A', 9), 1562 ('1', 'A', 10);"; 1563 $prueba[$i++]["descripcion"] = "Clases impartidas"; 1564 1565 $prueba[$i]["sql"] = "INSERT INTO `webcole`.`imparte` (`asignatura`, 1566 `profesor`) VALUES (\'1\', \'viblasan\'), (\'2\', \'viblasan\');"; 1567 $prueba[$i++]["descripcion"] = "Imparte = Viblasan"; 1568 1569 $prueba[$i]["sql"] = "INSERT INTO `grupo` (`curso`, `letra`, `aula`, 1570 `delegado`, `tutor`) VALUES ('1', 'A', 'B1', 'pepito', 'juan');"; 1571 $prueba[$i++]["descripcion"] = "Grupo"; 1572 1573 ejecutar($prueba, $link); 1574 echo " </tbody></table><br><br>"; 1575 } 1576 1577 1578 //// 1579 // Funcion que permite ejecutar cualquier sentencia sql. 1580 // Los parametros que recibe son: 1581 // $datos: es una matriz con la forma array (array ( sql => 1582 descripcion )) 1583 // sql contiene la sentencia sql 1584 // descripcion muestra el texto explicativo que aparecera en la 1585 tabla 1586 // $link: el link con la base de datos 1587 //// 1588 function ejecutar ($datos, $link) 1589 { 1590 foreach ( $datos as $actual) 1591 { 1592 //echo "sql: " . $actual["sql"] . "<br>"; 1593 $result = mysql_query($actual["sql"]); 1594 echo "<tr><td style='width: 281px; text-align: left;'>"; 1595 echo '<font><b>' . $actual["descripcion"] . '</b></font><br>'; 1596 echo "</td>\n"; 1597 if(!$result) 1598 { 1599 echo "<td style='width: 163px; text-align: center;'>"; 1600 echo "<font color=red>Error </font>\n"; 1601 echo "</td>"; 1602 echo "<td style='width: 255px; text-align: center;'>"; 1603 echo "" . mysql_error() . "\n"; 1604 echo "</td>"; 1605 } 1606 else 1607 { 1608 echo "<td style='width: 163px; text-align: center;'>"; 1609 echo "<font color=green>Correcto</font>\n"; 1610 echo "</td>"; 1611 echo "<td style='width: 255px; text-align: center;'> </td><
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 131
1612 /tr>\n"; 1613 } 1614 } 1615 } 1616 1617 //// 1618 // Funcion que permite ejecutar cualquier sentencia sql que devuelven 1619 resultados. 1620 // Los parametros que recibe son: 1621 // $datos: es una matriz con la forma array (array ( sql => 1622 descripcion )) 1623 // sql contiene la sentencia sql 1624 // descripcion muestra el texto explicativo que aparecera en la 1625 tabla 1626 // $link: el link con la base de datos 1627 //// 1628 function ejecutar_leer_resultados ($datos, $link) 1629 { 1630 foreach ( $datos as $actual) 1631 { 1632 //echo "sql: " . $actual["sql"] . "<br>"; 1633 $result = mysql_query($actual["sql"]); 1634 echo "<tr><td style='width: 281px; text-align: left;'>"; 1635 echo '<font><b>' . $actual["descripcion"] . '</b></font><br>'; 1636 echo "</td>\n"; 1637 if(!$result) 1638 { 1639 echo "<td style='width: 163px; text-align: center;'>"; 1640 echo "<font color=red>Error </font>\n"; 1641 echo "</td>"; 1642 echo "<td style='width: 255px; text-align: center;'>"; 1643 echo "" . mysql_error() . "\n"; 1644 echo "</td>"; 1645 } 1646 else 1647 { 1648 echo "<td style='width: 163px; text-align: center;'>"; 1649 echo "<font color=green>Correcto</font>\n"; 1650 echo "</td>"; 1651 echo "<td style='width: 255px; text-align: center;'>"; 1652 echo "<table><tr><td>Resultados</td></tr>"; 1653 1654 while ($row = mysql_fetch_row($result)) 1655 { 1656 echo "<tr><td>"; 1657 echo $row[0]; 1658 echo "</td></tr>"; 1659 } 1660 echo "</table>"; 1661 echo"</td></tr>\n"; 1662 } 1663 } 1664 } 1665 1666 1667 function crear_perfiles($link) 1668 { 1669 echo "<html><head>"; 1670 echo "<title>Creacion de perfiles para la base de datos Webcole</title> 1671 </head>"; 1672 echo "<table style='text-align: left; width: 100%;' border='1' 1673 cellpadding='2' cellspacing='2'>"; 1674 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 1675 weight: bold;'><big>Descripcion</big></td>"; 1676 echo "<td style='text-align: center; width: 163px;'><big><span 1677 style='font-weight: bold;'>Estado</span></big></td>"; 1678 echo "<td style='text-align: center; width: 255px;'><big><span 1679 style='font-weight: bold;'>Error</span></big></td>"; 1680 echo "</tr>"; 1681 //// 1682 // Creando usuarios genericos 1683 // Los administradores utilizaran root para acceder a la base de datos ( 1684 por el momento al menos) 1685 // Todos los usuarios de cada grupo accederan con el mismo perfil, por 1686 ejemplo todos los profesores 1687 // accederan a la base de datos con el perfil de profesores y con los 1688 privilegios que eso supone
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 132
1689 /// 1690 1691 $i = 0; 1692 1693 $prueba[$i]["sql"] = 'CREATE USER \'profesor\'@\'localhost\' IDENTIFIED 1694 BY \'profesor\';'; 1695 $prueba[$i++]["descripcion"] = "Creando el perfil profesor"; 1696 1697 $prueba[$i]["sql"] = 'CREATE USER \'alumno\'@\'localhost\' IDENTIFIED 1698 BY \'alumno\';'; 1699 $prueba[$i++]["descripcion"] = "Creando el perfil alumno"; 1700 1701 $prueba[$i]["sql"] = 'CREATE USER \'equipodirectivo\'@\'localhost\' 1702 IDENTIFIED BY \'equipodirectivo\';'; 1703 $prueba[$i++]["descripcion"] = "Creando el perfil Equipo Directivo"; 1704 1705 $prueba[$i]["sql"] = 'CREATE USER \'padre\'@\'localhost\' IDENTIFIED BY 1706 \'padre\';'; 1707 $prueba[$i++]["descripcion"] = "Creando el perfil padre"; 1708 1709 //// 1710 // Permisos generales 1711 /// 1712 1713 $prueba[$i]["sql"] = 'GRANT SELECT ON `webcole`.* TO 1714 \'profesor\'@\'localhost\' IDENTIFIED BY \'profesor\'WITH 1715 MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 1716 0 MAX_USER_CONNECTIONS 0;'; 1717 $prueba[$i++]["descripcion"] = "Profesor: Permisos generales"; 1718 1719 $prueba[$i]["sql"] = 'GRANT SELECT ON `webcole`.* TO 1720 \'padre\'@\'localhost\' IDENTIFIED BY \'padre\'WITH 1721 MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 1722 0 MAX_USER_CONNECTIONS 0;'; 1723 $prueba[$i++]["descripcion"] = "Padre: Permisos generales"; 1724 1725 $prueba[$i]["sql"] = 'GRANT SELECT ON `webcole`.* TO 1726 \'alumno\'@\'localhost\' IDENTIFIED BY \'alumno\'WITH 1727 MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 1728 0 MAX_USER_CONNECTIONS 0;'; 1729 $prueba[$i++]["descripcion"] = "Alumno: Permisos generales"; 1730 1731 $prueba[$i]["sql"] = 'GRANT SELECT ON `webcole`.* TO 1732 \'equipodirectivo\'@\'localhost\' IDENTIFIED BY \'equipodirectivo\'WITH 1733 MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 1734 0 MAX_USER_CONNECTIONS 0;'; 1735 $prueba[$i++]["descripcion"] = "Equipo Directivo: Permisos generales"; 1736 1737 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1738 `anuncio` TO \'profesor\'@\'localhost\';'; 1739 $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla anuncio "; 1740 1741 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1742 `anuncio` TO \'padre\'@\'localhost\';'; 1743 $prueba[$i++]["descripcion"] = "Padre: Permisos tabla anuncio "; 1744 1745 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1746 `anuncio` TO \'alumno\'@\'localhost\';'; 1747 $prueba[$i++]["descripcion"] = "Alumno: Permisos tabla anuncio "; 1748 1749 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1750 `anuncio` TO \'equipodirectivo\'@\'localhost\';'; 1751 $prueba[$i++]["descripcion"] = "Equipo Directivo: Permisos tabla 1752 anuncio "; 1753 1754 //// 1755 // Permisos especificos para cada perfil en cada tabla 1756 //// 1757 1758 //// 1759 // Profesor 1760 //// 1761 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1762 `faltaasistencia` TO \'profesor\'@\'localhost\';'; 1763 $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla 1764 faltaasistencia "; 1765
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 133
1766 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1767 `nota` TO \'profesor\'@\'localhost\';'; 1768 $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla nota "; 1769 1770 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1771 `res_equi` TO \'profesor\'@\'localhost\';'; 1772 $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla res_equi "; 1773 1774 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1775 `res_ins` TO \'profesor\'@\'localhost\';'; 1776 $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla res_ins "; 1777 1778 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1779 `anuncio` TO \'profesor\'@\'localhost\';'; 1780 $prueba[$i++]["descripcion"] = "Profesor: Permisos tabla anuncio "; 1781 1782 // Un profesor no puede tocar los grupos creados, excepto el campo 1783 // delegado, que puede variar durante el curso. Ademas se deberia 1784 // de comprobar que el profesor que lo haga sea el tutor del grupo 1785 $prueba[$i]["sql"] = 'GRANT UPDATE (`delegado`) ON `webcole`.`grupo` TO 1786 \'profesor\'@\'localhost\';'; 1787 $prueba[$i++]["descripcion"] = "Profesor: Permisos para cambiar el 1788 delegado del grupo "; 1789 1790 1791 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1792 `res_ins` TO \'alumno\'@\'localhost\';'; 1793 $prueba[$i++]["descripcion"] = "Alumno: Permisos tabla res_ins "; 1794 1795 $prueba[$i]["sql"] = 'GRANT SELECT, INSERT, UPDATE, DELETE ON `webcole`. 1796 `res_ins` TO \'padre\'@\'localhost\';'; 1797 $prueba[$i++]["descripcion"] = "Padre: Permisos tabla res_ins "; 1798 1799 ejecutar ($prueba, $link); 1800 1801 echo " </tbody></table><br><br>"; 1802 } 1803 1804 function borrar_perfiles($link) 1805 { 1806 echo "<html><head>"; 1807 echo "<title>Borrado de perfiles para la base de datos Webcole</title>< 1808 /head>"; 1809 echo "<table style='text-align: left; width: 100%;' border='1' 1810 cellpadding='2' cellspacing='2'>"; 1811 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 1812 weight: bold;'><big>Descripcion</big></td>"; 1813 echo "<td style='text-align: center; width: 163px;'><big><span 1814 style='font-weight: bold;'>Estado</span></big></td>"; 1815 echo "<td style='text-align: center; width: 255px;'><big><span 1816 style='font-weight: bold;'>Error</span></big></td>"; 1817 echo "</tr>"; 1818 1819 $i = 0; 1820 1821 $prueba[$i]["sql"] = 'DROP USER \'alumno\'@\'localhost\';'; 1822 $prueba[$i++]["descripcion"] = "Borrando el perfil alumno"; 1823 1824 $prueba[$i]["sql"] = 'DROP USER \'profesor\'@\'localhost\';'; 1825 $prueba[$i++]["descripcion"] = "Borrando el perfil profesor"; 1826 1827 $prueba[$i]["sql"] = 'DROP USER \'equipodirectivo\'@\'localhost\';'; 1828 $prueba[$i++]["descripcion"] = "Borrando el perfil equipodirectivo"; 1829 1830 $prueba[$i]["sql"] = 'DROP USER \'padre\'@\'localhost\';'; 1831 $prueba[$i++]["descripcion"] = "Borrando el perfil padre"; 1832 1833 ejecutar ($prueba, $link); 1834 1835 echo " </tbody></table><br><br>"; 1836 } 1837 1838 function pruebas ($link) 1839 { 1840 echo "<html><head>"; 1841 echo "<title>PRUEBAS</title></head>"; 1842 echo "<table style='text-align: left; width: 100%;' border='1'
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 134
1843 cellpadding='2' cellspacing='2'>"; 1844 echo "<tbody> <tr> <td style='text-align: center; width: 281px; font- 1845 weight: bold;'><big>Descripcion</big></td>"; 1846 echo "<td style='text-align: center; width: 163px;'><big><span 1847 style='font-weight: bold;'>Estado</span></big></td>"; 1848 echo "<td style='text-align: center; width: 255px;'><big><span 1849 style='font-weight: bold;'>Error</span></big></td>"; 1850 echo "</tr>"; 1851 1852 /* 1853 $sql = 'CREATE PROCEDURE borrar_padre (padre VARCHAR(20), OUT mensaje 1854 VARCHAR(100) ) 1855 BEGIN 1856 DECLARE dep INT; 1857 set mensaje = "inicio"; 1858 select count(*) into dep from responsable where padre = 1859 padre; 1860 IF dep = 0 THEN 1861 delete from padre where login = padre; 1862 set mensaje = "Padre eliminado"; 1863 ELSE 1864 set mensaje = "No se pudo borrar"; 1865 END IF; 1866 END;'; 1867 */ 1868 $sql = "CREATE PROCEDURE borrar_padre (IN padre VARCHAR(20), OUT 1869 mensaje VARCHAR(100) ) 1870 BEGIN 1871 DECLARE dep INT; 1872 DECLARE m VARCHAR(20); 1873 set m := 'alter'; 1874 select count(*) into dep from responsable where padre = 1875 padre; 1876 IF dep = 0 THEN 1877 set mensaje := 'antes'; 1878 1879 delete from padre where login = @padre; 1880 delete from usuario where login = @padre; 1881 1882 1883 1884 set mensaje := concat('Padre borrado: ', @padre); 1885 ELSE 1886 set mensaje := concat('No se puedo borrar al padre', 1887 @padre); 1888 END IF; 1889 END;"; 1890 1891 $sql2 = "CREATE PROCEDURE prueba (inout mensaje INT ) 1892 BEGIN 1893 DECLARE dep INT; 1894 select count(*) into mensaje from usuario; 1895 END;"; 1896 $i = 0; 1897 $prueba[$i]["sql"] = "drop procedure borrar_padre;"; 1898 $prueba[$i++]["descripcion"] = "Borrando procedimiento: borrar_padre"; 1899 1900 $prueba[$i]["sql"] = "drop procedure prueba;"; 1901 $prueba[$i++]["descripcion"] = "Borrando procedimiento: prueba"; 1902 1903 $prueba[$i]["sql"] = $sql; 1904 $prueba[$i++]["descripcion"] = "Creando un procedimiento: borrar_padre"; 1905 1906 $prueba[$i]["sql"] = $sql2; 1907 $prueba[$i++]["descripcion"] = "Creando un procedimiento: prueba"; 1908 1909 $prueba[$i]["sql"] = "set @padre='pater';"; 1910 $prueba[$i++]["descripcion"] = "creando @padre"; 1911 1912 $prueba[$i]["sql"] = "set @mensaje='a';"; 1913 $prueba[$i++]["descripcion"] = "creando @mensaje"; 1914 1915 $prueba[$i]["sql"] = "call borrar_padre(@pater, @mensaje);"; 1916 $prueba[$i++]["descripcion"] = "Llamando al procedimiento: 1917 borrar_padre"; 1918 1919 ejecutar ($prueba, $link);
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 135
1920 1921 1922 1923 $j = 0; 1924 $prueba3[$j]["sql"] = "select @mensaje;"; 1925 $prueba3[$j++]["descripcion"] = "Leyendo resultado: borrar_padre"; 1926 1927 ejecutar_leer_resultados($prueba3, $link); 1928 $i=0; 1929 $prueba4[$i]["sql"] = "set @mensaje=1;"; 1930 $prueba4[$i++]["descripcion"] = "creando @mensaje"; 1931 $prueba4[$i]["sql"] = "call prueba(@mensaje);"; 1932 $prueba4[$i++]["descripcion"] = "Llamando al procedimiento: prueba"; 1933 1934 ejecutar ($prueba4, $link); 1935 $j = 0; 1936 1937 $prueba5[$j]["sql"] = "select @mensaje;"; 1938 $prueba5[$j++]["descripcion"] = "Leyendo resultado: prueba"; 1939 ejecutar_leer_resultados($prueba5, $link); 1940 1941 echo " </tbody></table><br><br>"; 1942 } 1943 1944 function leeropciones () 1945 { 1946 $opcion = $_GET['opcion']; 1947 if (isset($opcion)) 1948 { 1949 $link = conexion (); 1950 switch ($opcion) 1951 { 1952 case '1': 1953 crear_bd($link); 1954 fin_html (); 1955 cerrar_db ($link); 1956 exit; 1957 case '2': 1958 crear_bd($link); 1959 cambiar_a_bd($link); 1960 crear_tablas (); 1961 cerrar_db ($link); 1962 fin_html (); 1963 exit; 1964 case '3': 1965 cambiar_a_bd($link); 1966 borrar_tablas (); 1967 cerrar_db ($link); 1968 fin_html (); 1969 exit; 1970 case '4': 1971 borrar_bd($link); 1972 cerrar_db ($link); 1973 fin_html (); 1974 exit; 1975 case '5': 1976 cambiar_a_bd($link); 1977 ejemplos($link); 1978 cerrar_db ($link); 1979 fin_html (); 1980 exit; 1981 case '6': 1982 crear_perfiles($link); 1983 cerrar_db ($link); 1984 fin_html(); 1985 exit; 1986 1987 case '7': 1988 borrar_perfiles($link); 1989 cerrar_db ($link); 1990 fin_html(); 1991 exit; 1992 1993 case '99': 1994 cambiar_a_bd($link); 1995 pruebas($link); 1996 cerrar_db ($link);
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 136
1997 fin_html(); 1998 exit; 1999 2000 default: 2001 echo "<div style='text-align: center; color: rgb(255, 0, 0); 2002 '> "; 2003 echo "<big><big><big>Opción desconociada.</big></big> 2004 </big><br> "; 2005 echo "</div> "; 2006 echo "<div style='text-align: center;'> "; 2007 echo "<big><big><big>Vuelve al inicio pulsando <a 2008 href='setup.php'>aquí</a></big></big></big><br> "; 2009 echo "</div> "; 2010 echo "</body></html>"; 2011 exit; 2012 } 2013 } 2014 } 2015 2016 leeropciones (); 2017 inicio_html(); 2018 echo "</body></html>"; 2019 2020 ?>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 137
Interfaz_db.php 1 <?php 2 3 define('PROFESOR', 1); 4 define('ALUMNO', 2); 5 define('ADMINISTRADOR', 3); 6 define('PADRE', 4); 7 define('DIRECTOR', 5); 8 define('JEFEESTUDIO', 6); 9 define('SECRETARIO', 7); 10 11 require_once "conexion_i.php"; 12 13 function insertar_usuario($datos, $tipo) 14 { 15 $error = false; 16 //indicara si el usuario a registrar es uno de los tres tipo de equipo 17 directivo 18 //(porque hay que hacer una insercion mas. 19 $eq = false; 20 $descripcion = ""; 21 $faltandatos = ""; 22 23 $link = conexion_i(); 24 cambiar_a_bd_i($link); 25 26 //datos generales del usuario 27 $login = $datos['login']; 28 if (empty($login)){ $error = true; $faltandatos .= "Falta Login <br>";} 29 30 $nombre = $datos['nombre']; 31 if (empty($nombre)){ $error = true; $faltandatos .= "Falta Nombre <br>"; 32 } 33 34 $apellido1 = $datos['apellido1']; 35 if (empty($apellido1)){ $error = true; $faltandatos .= "Falta Apellido1 36 <br>";} 37 38 $apellido2 = $datos['apellido2']; 39 if (empty($apellido2)){ $apellido2 = 'null'; } 40 41 $direccion = $datos['direccion']; 42 if (empty($direccion)){ $error = true; $faltandatos .= "Falta Direccion 43 <br>";} 44 45 $poblacion = $datos['poblacion']; 46 if (empty($poblacion)){ $error = true; $faltandatos .= "Falta Poblacion 47 <br>";} 48 49 $cp = $datos['cp']; 50 if (empty($cp)){ $error = true; $faltandatos .= "Falta Codigo Postal < 51 br>";} 52 53 $password = $datos['password']; 54 if (empty($password)){ $error = true; $faltandatos .= "Falta Password < 55 br>";} 56 57 $telefono = $datos['telefono']; 58 if (empty($telefono)){ $telefono = 'null'; } 59 60 $sql_usuario = "INSERT INTO `webcole`.`usuario` 61 (`login`, `nombre`, `apellido1`, `apellido2`, 62 `direccion`, `poblacion`, `cp`, `contrasenya`, 63 `telefono`) 64 VALUES 65 ('" . $login ."', '" . $nombre . "', '" . $apellido1 . 66 "', 67 '" . $apellido2 . "', '" . $direccion . "', 68 '" . $poblacion . "', '" . $cp . "', 69 '" . $password . "', '" . $telefono . "');"; 70 71 switch ($tipo) 72 { 73 case PROFESOR: //tipo profesor
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 138
74 $dni = $datos['dni']; 75 if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> 76 ";} 77 78 $email = $datos['email']; 79 if (empty($email)){ $email = 'null'; } 80 81 $tutorias = $datos['tutorias']; 82 if (empty($tutorias)){ $tutorias = 'null'; } 83 84 $sql_especifico = "INSERT INTO `webcole`.`profesor` 85 (`login`, `dni`, `email`, `tutorias`) 86 VALUES 87 ('" . $login . "', '" . $dni . "', 88 '" . $email . "', '" . $tutorias ."');"; 89 break; 90 91 case ALUMNO: //alumno 92 $sql_especifico = "INSERT INTO `webcole`.`alumno` 93 (`login`) 94 VALUES 95 ('" . $login . "');"; 96 break; 97 98 case ADMINISTRADOR: 99 $dni = $datos['dni']; 100 if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> 101 ";} 102 103 $email = $datos['email']; 104 if (empty($email)){ $email = 'null'; } 105 106 $sql_especifico = "INSERT INTO `webcole`.`administrador` 107 (`login`, `dni`, `email`) 108 VALUES 109 ('" . $login . "', '" . $dni . "', 110 '" . $email . "');"; 111 break; 112 113 case PADRE: 114 $dni = $datos['dni']; 115 if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> 116 ";} 117 118 $email = $datos['email']; 119 if (empty($email)){ $email = 'null'; } 120 121 $sql_especifico = "INSERT INTO `webcole`.`padre` 122 (`login`, `dni`, `email`) 123 VALUES 124 ('" . $login . "', '" . $dni . "', 125 '" . $email . "');"; 126 break; 127 128 case DIRECTOR: 129 $dni = $datos['dni']; 130 if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> 131 ";} 132 133 $email = $datos['email']; 134 if (empty($email)){ $email = 'null'; } 135 136 $sql_especifico = "INSERT INTO `webcole`.`equipodirectivo` 137 (`login`, `dni`, `email`) 138 VALUES 139 ('" . $login . "', '" . $dni . "', 140 '" . $email . "');"; 141 $sql_ed = "INSERT INTO `webcole`.`director` (`login`) VALUES ( 142 '" . $login . "');"; 143 $eq = true; 144 145 break; 146 147 case JEFEESTUDIO: 148 $dni = $datos['dni']; 149 if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> 150 ";}
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 139
151 152 $email = $datos['email']; 153 if (empty($email)){ $email = 'null'; } 154 155 $sql_especifico = "INSERT INTO `webcole`.`equipodirectivo` 156 (`login`, `dni`, `email`) 157 VALUES 158 ('" . $login . "', '" . $dni . "', 159 '" . $email . "');"; 160 $sql_ed = "INSERT INTO `webcole`.`jefeestudio` (`login`) 161 VALUES ('" . $login . "');"; 162 $eq = true; 163 164 break; 165 166 case SECRETARIO: 167 $dni = $datos['dni']; 168 if (empty($dni)){ $error = true; $faltandatos .= "Falta DNI <br> 169 ";} 170 171 $email = $datos['email']; 172 if (empty($email)){ $email = 'null'; } 173 174 $sql_especifico = "INSERT INTO `webcole`.`equipodirectivo` 175 (`login`, `dni`, `email`) 176 VALUES 177 ('" . $login . "', '" . $dni . "', 178 '" . $email . "');"; 179 $sql_ed = "INSERT INTO `webcole`.`secretario` (`login`) 180 VALUES ('" . $login . "');"; 181 $eq = true; 182 183 break; 184 185 default: 186 break; 187 }//fin switch 188 189 //Si ha ocurrido algun error no continuamos 190 //por el momento solo false si ha ocurrido algun error en 191 //en los datos mismos. 192 if ( $error == true) 193 { 194 $descripcion = "Faltan datos importantes: <br>" . $faltandatos; 195 $resultado = array("estado"=>!$error, "descripcion"=>$descripcion); 196 return $resultado; 197 } 198 199 //empieza la transacci� de las inserciones 200 $result=mysqli_query($link, "SET AUTOCOMMIT=0;"); 201 $result=mysqli_query($link, "BEGIN;"); 202 $result = mysqli_query($link, $sql_usuario); 203 if (!$result) 204 { 205 $descripcion .= mysqli_error($link) . "<br>"; 206 } 207 208 $result = mysqli_query($link, $sql_especifico); 209 if (!$result) 210 { 211 $error = true; 212 $descripcion .= mysqli_error($link) . " <br>"; 213 } 214 215 if ($eq == true) //este usuario pertenece al equipo directivo 216 { 217 $result = mysqli_query($link, $sql_ed); 218 if (!$result) 219 { 220 $error = true; 221 $descripcion .= mysqli_error($link) . " <br>"; 222 } 223 } 224 225 226 //si no ha ocurrido ningun error finalizamos la transaccion 227 if ($error == false)
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 140
228 { 229 mysqli_query($link,"COMMIT;"); 230 mysqli_commit($link); 231 } 232 //si se ha producido algun error hacemos un rollback, con lo que 233 //la base de datos deber� de quedar sin rastros de las operaciones 234 //que hemos intentado hacer. 235 else 236 { 237 $result = mysqli_query($link,"ROLLBACK;"); 238 } 239 $result=mysqli_query($link, "SET AUTOCOMMIT=1;"); 240 mysqli_autocommit($link, TRUE); 241 mysqli_close($link); 242 243 $resultado = array("estado"=>!$error, "descripcion"=>$descripcion); 244 return $resultado; 245 246 } 247 248 249 ?>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 141
Connexion_i.php 1 <?php 2 function conexion_i () 3 { 4 $user = "cole1"; 5 $maquina = "localhost"; 6 $pass = "webcole"; 7 8 9 $link_i = mysqli_connect($maquina, $user, $pass); 10 if(!$link_i) 11 { 12 echo "Error en la conexion con la bd <br>\n"; 13 die; 14 } 15 16 return $link_i; 17 } 18 19 function conexion_i_login ($user, $maquina,$pass) 20 { 21 $link_i = mysqli_connect($maquina, $user, $pass); 22 if(!$link_i) 23 { 24 echo "Error en la conexion con la bd <br>\n"; 25 die; 26 } 27 28 return $link_i; 29 } 30 31 32 function cambiar_a_bd_i($link_i) 33 { 34 $db = mysqli_select_db($link_i, 'webcole'); 35 if(!$db) 36 { 37 echo "No se ha podido cambiar a la base de datos WebCole<br>"; 38 die; 39 } 40 41 return $db; 42 } 43 44 function cerrar_db_i ($link) 45 { 46 mysqli_close($link); 47 } 48 ?>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 142
Conexión.php 1 <?php 2 3 function conexion () 4 { 5 $user = "cole1"; 6 $maquina = "localhost"; 7 $pass = "webcole"; 8 9 10 $link = mysql_connect($maquina, $user, $pass); 11 if(!$link) 12 { 13 echo "Error en la conexion con la bd <br>\n"; 14 die; 15 } 16 17 return $link; 18 } 19 20 21 function conexion_login ($user, $maquina, $pass ) 22 { 23 $link = mysql_connect($maquina, $user, $pass); 24 if(!$link) 25 { 26 echo "Error en la conexion con la bd <br>\n"; 27 die; 28 } 29 30 return $link; 31 } 32 33 function cambiar_a_bd($link){ 34 $db = mysql_select_db('webcole', $link); 35 if(!$db) 36 { 37 echo "No se ha podido cambiar a la base de datos WebCole<br>"; 38 die; 39 } 40 41 return $db; 42 } 43 function cambiar_a_bd_concreta($link, $nombre){ 44 $db = mysql_select_db($nombre, $link); 45 if(!$db) 46 { 47 echo "No se ha podido cambiar a la base de datos " . $nombre . "<br> 48 "; 49 die; 50 } 51 52 return $db; 53 } 54 function cerrar_db ($link) 55 { 56 mysql_close($link); 57 } 58 ?>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 143
G. Código PHP
Index.php
1 <?php 2 require_once ("Anonimo_inc.php"); 3 ?> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 5 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 6 <html xmlns="http://www.w3.org/1999/xhtml"> 7 8 <head> 9 10 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 11 12 <title>CP Emilio Lluch</title> 13 14 <link href="css/general.css" rel="stylesheet" type="text/css" /> 15 16 <script type="text/javascript" src="./js/fecha.js"> </script> 17 18 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 19 20 21 </head> 22 23 <body onload="javascript:displayTime();"> 24 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 25 <tr> 26 <td class="logo"> </td> 27 <td colspan="2" class="titulo"> </td> 28 </tr> 29 <tr> 30 <td class="fecha"> </td> 31 <td colspan="2" class="fecha"><div id="campoHora"> </div></td> 32 </tr> 33 <tr> 34 <td class="menu"> 35 <ul> 36 <li><a href="#">Inicio</a></li> 37 <li><a href="historia.php">Historia</a></li> 38 <li><a href="equipoDirectivo.php">Equipo directivo</a></li> 39 <li><a href="reglamento.php">Reglamento</a></li> 40 <li><a href="calendario.php">Calendario escolar</a></li> 41 <li><a href="localizacion.php">Localización</a></li> 42 <li><a href="contactar.php">Contactar</a></li> 43 <li><a href="enlaces.php">Enlaces</a></li> 44 </ul> </td> 45 <td class="general"><p>Bienvenido al sitio web del Colegio Pú 46 blico Emilio Lluch de Nàquera (Valencia). </p> 47 <p>C. P. EMILIO LLUCH </p> 48 <p>Calle Polideportivo, s/n. </p> 49 <p>46119 - Nàquera (Valencia) </p> 50 <p>Teléfono 96 168 00 76<br /> 51 e-mail: <a href="mailto:[email protected]"> 52 [email protected]</a></p> 53 </td> 54 <td class="foto"> </td> 55 </tr> 56 <tr> 57 <td><p>Autenticarse</p> 58 <form id="form1" method="post" action="analizadorlogin.php"> 59 <p> 60 <label>Login 61 <input type="text" name="log" /> 62 </label> 63 <br/> 64 <label>Password 65 <input type="password" name="pass" /> 66 </label> 67 <label> 68 <input type="submit" value="Identificarse" name="b" />
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 144
69 </label> 70 </p> 71 </form> 72 <p> 73 <?php 74 if($_COOKIE['login'] == "Error") 75 { 76 echo '<span class="fechaNoticia">Autenticación errónea</span>'; 77 } 78 ?> 79 </p></td> 80 <td colspan="2" class="noticias"> 81 <h3>Noticias</h3> 82 <p> 83 <?php 84 noticias(); 85 ?> 86 </p> 87 </tr> 88 </table> 89 </body> 90 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 145
Historia.php 1 <?php 2 require_once ("Anonimo_inc.php"); 3 ?> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 5 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 6 <html xmlns="http://www.w3.org/1999/xhtml"> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 9 <title>CP Emilio Lluch</title> 10 <link href="css/general.css" rel="stylesheet" type="text/css" /> 11 12 <script type="text/javascript" src="./js/fecha.js"> </script> 13 14 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 15 </head> 16 17 <body onload="javascript:displayTime();"> 18 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 19 <tr> 20 <td class="logo"> </td> 21 <td colspan="2" class="titulo"> </td> 22 </tr> 23 <tr> 24 <td class="fecha"> </td> 25 <td colspan="2" class="fecha"><div id="campoHora"> </div></td> 26 </tr> 27 <tr> 28 <td class="menu"> 29 <ul> 30 <li><a href="index.php">Inicio</a></li> 31 <li><a href="#">Historia</a></li> 32 <li><a href="equipoDirectivo.php">Equipo directivo</a></li> 33 <li><a href="reglamento.php">Reglamento</a></li> 34 <li><a href="calendario.php">Calendario escolar</a></li> 35 <li><a href="localizacion.php">Localización</a></li> 36 <li><a href="contactar.php">Contactar</a></li> 37 <li><a href="enlaces.php">Enlaces</a></li> 38 </ul> </td> 39 <td class="general"><h1>Historia del centro</h1> 40 <p>El centro fue inaugurado el año XXXX.</p> 41 <p>El año xxxx se hizo una ampliación del gimnasio para 42 mejorar las instalaciones con servicios de los cuales antes se 43 carecía, como duchas o enfermería. </p></td> 44 <td class="general"> </td> 45 </tr> 46 <tr> 47 <td><p>Autenticarse</p> 48 <form id="form1" method="post" action="analizadorlogin.php"> 49 <p> 50 <label>Login 51 <input type="text" name="log" /> 52 </label> 53 <label>Password 54 <input type="password" name="pass" /> 55 </label> 56 <label> 57 <input type="submit" value="Identificarse" name="b" /> 58 </label> 59 </p> 60 </form> <p> </p></td> 61 <td colspan="2" class="noticias"> 62 <h3>Noticias</h3> 63 <?php 64 noticias(); 65 ?></td> 66 </tr> 67 </table> 68 </body> 69 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 146
Equipodirectivo.php 1 <?php 2 require_once ("Anonimo_inc.php"); 3 ?> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 5 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 6 <html xmlns="http://www.w3.org/1999/xhtml"> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 9 <title>CP Emilio Lluch</title> 10 <link href="css/general.css" rel="stylesheet" type="text/css" /> 11 12 <script type="text/javascript" src="./js/fecha.js"> </script> 13 14 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 15 </head> 16 17 <body onload="javascript:displayTime();"> 18 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 19 <tr> 20 <td class="logo"> </td> 21 <td colspan="2" class="titulo"> </td> 22 </tr> 23 <tr> 24 <td class="fecha"> </td> 25 <td colspan="2" class="fecha"><div id="campoHora"> </div></td> 26 </tr> 27 <tr> 28 <td class="menu"> 29 <ul> 30 <li><a href="index.php">Inicio</a></li> 31 <li><a href="historia.php">Historia</a></li> 32 <li><a href="#">Equipo directivo</a></li> 33 <li><a href="reglamento.php">Reglamento</a></li> 34 <li><a href="calendario.php">Calendario escolar</a></li> 35 <li><a href="localizacion.php">Localización</a></li> 36 <li><a href="contactar.php">Contactar</a></li> 37 <li><a href="enlaces.php">Enlaces</a></li> 38 </ul> </td> 39 <td class="general" style="text-align: left ;"><p style="font-weight: 40 bold; font-size:30px">Equipo directivo</p> 41 42 <?php 43 equipo_directivo(); 44 ?> 45 46 <p> </p></td> 47 <td class="general"> </td> 48 </tr> 49 <tr> 50 <td><p>Autenticarse</p> 51 <form id="form1" method="post" action="analizadorlogin.php"> 52 <p> 53 <label>Login 54 <input type="text" name="log" /> 55 </label> 56 <label>Password 57 <input type="password" name="pass" /> 58 </label> 59 <label> 60 <input type="submit" value="Identificarse" name="b" /> 61 </label> 62 </p> 63 </form> <p> </p></td> 64 <td colspan="2" class="noticias"> 65 <h3>Noticias</h3> 66 <?php 67 noticias(); 68 ?> 69 </td> 70 </tr> 71 </table> 72 </body> 73 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 147
Reglamento.php 1 <?php 2 require_once ("Anonimo_inc.php"); 3 ?> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 5 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 6 <html xmlns="http://www.w3.org/1999/xhtml"> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 9 <title>CP Emilio Lluch</title> 10 <link href="css/general.css" rel="stylesheet" type="text/css" /> 11 12 <script type="text/javascript" src="./js/fecha.js"> </script> 13 14 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 15 </head> 16 17 <body onload="javascript:displayTime();"> 18 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 19 <tr> 20 <td class="logo"> </td> 21 <td colspan="2" class="titulo"> </td> 22 </tr> 23 <tr> 24 <td class="fecha"> </td> 25 <td colspan="2" class="fecha"><div id="campoHora"> </div></td> 26 </tr> 27 <tr> 28 <td class="menu"> 29 <ul> 30 <li><a href="index.php">Inicio</a></li> 31 <li><a href="historia.php">Historia</a></li> 32 <li><a href="equipoDirectivo.php">Equipo directivo</a></li> 33 <li><a href="#">Reglamento</a></li> 34 <li><a href="calendario.php">Calendario escolar</a></li> 35 <li><a href="localizacion.php">Localización</a></li> 36 <li><a href="contactar.php">Contactar</a></li> 37 <li><a href="enlaces.php">Enlaces</a></li> 38 </ul> </td> 39 <td class="general"><p style="font-weight: bold; font-size:30px"> 40 Reglamento de régimen interno</p> 41 <p>Para descargar en formato PDF, pulse <a href="docs/rri.pdf"> 42 aquí. <img src="img/word_logo.jpg" alt="Word" /></a></p> 43 <p>Para descargar en formato DOC, pulse <a href="docs/rri.doc"> 44 aquí. <img src="img/pdf_logo.gif" alt="PDF" /></a></p> 45 46 </td> 47 <td class="imagenReglamento"> </td> 48 </tr> 49 <tr> 50 <td><p>Autenticarse</p> 51 <form id="form1" method="post" action="analizadorlogin.php"> 52 <p> 53 <label>Login 54 <input type="text" name="log" /> 55 </label> 56 <label>Password 57 <input type="password" name="pass" /> 58 </label> 59 <label> 60 <input type="submit" value="Identificarse" name="b" /> 61 </label> 62 </p> 63 </form> <p> </p></td> 64 <td colspan="2" class="noticias"><h3>Noticias</h3> 65 <?php 66 noticias(); 67 ?></td> 68 </tr> 69 </table> 70 </body> 71 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 148
Calendarioescolar.php 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 2 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 3 <html xmlns="http://www.w3.org/1999/xhtml"> 4 <head> 5 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 6 <title>CP Emilio Lluch</title> 7 <link href="css/general.css" rel="stylesheet" type="text/css" /> 8 <link href="css/calendario.css" rel="stylesheet" type="text/css" /> 9 10 <script type="text/javascript" src="./js/fecha.js"> </script> 11 12 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 13 </head> 14 15 <body onload="javascript:displayTime();"> 16 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 17 <tr> 18 <td class="logo"> </td> 19 <td colspan="2" class="titulo"> </td> 20 </tr> 21 <tr> 22 <td class="fecha"> </td> 23 <td colspan="2" class="fecha"><div id="campoHora"> </div></td> 24 </tr> 25 <tr> 26 <td class="menu"> 27 <ul> 28 <li><a href="index.php">Inicio</a></li> 29 <li><a href="historia.php">Historia</a></li> 30 <li><a href="equipoDirectivo.php">Equipo directivo</a></li> 31 <li><a href="reglamento.php">Reglamento</a></li> 32 <li><a href="#">Calendario escolar</a></li> 33 <li><a href="localizacion.php">Localización</a></li> 34 <li><a href="contactar.php">Contactar</a></li> 35 <li><a href="enlaces.php">Enlaces</a></li> 36 </ul> </td> 37 <td class="general"><h1>Calendario escolar </h1> 38 39 <?php 40 require ("calendarioscript.php"); 41 42 if (!$HTTP_POST_VARS && !$HTTP_GET_VARS){ 43 $tiempo_actual = time(); 44 $mes = date("n", $tiempo_actual); 45 $ano = date("Y", $tiempo_actual); 46 $dia=date("d"); 47 $fecha=$ano . "-" . $mes . "-" . $dia; 48 }else { 49 $mes = $_GET["nuevo_mes"]; 50 $ano = $_GET["nuevo_ano"]; 51 $dia = $_GET["dia"]; 52 $fecha=$ano . "-" . $mes . "-" . $dia; 53 } 54 55 //echo"Fecha Seleccionada <input type=text name=fecha value=$fecha>"; 56 mostrar_calendario($dia,$mes,$ano); 57 58 ?> 59 </td> 60 <td class="imagenCalendario"> </td> 61 </tr> 62 <tr> 63 <td><p>Autenticarse</p> 64 <form id="form1" method="post" action="analizadorlogin.php"> 65 <p> 66 <label>Login 67 <input type="text" name="log" /> 68 </label> 69 <label>Password 70 <input type="password" name="pass" /> 71 </label> 72 <label> 73 <input type="submit" value="Identificarse" name="b" />
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 149
74 </label> 75 </p> 76 </form> <p> </p></td> 77 <td colspan="2" class="noticias"> 78 <p><strong>Eventos del dí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ía seleccionado</p>"; 100 Desconectar($conn); 101 ?> 102 </td> 103 </tr> 104 </table> 105 </body> 106 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 150
Localizacion.php 1 <?php 2 require_once ("Anonimo_inc.php"); 3 ?> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 5 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 6 <html xmlns="http://www.w3.org/1999/xhtml"> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 9 <title>CP Emilio Lluch</title> 10 <link href="css/general.css" rel="stylesheet" type="text/css" /> 11 12 <script type="text/javascript" src="./js/fecha.js"> </script> 13 14 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 15 </head> 16 17 <body onload="javascript:displayTime();"> 18 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 19 <tr> 20 <td class="logo"> </td> 21 <td colspan="2" class="titulo"> </td> 22 </tr> 23 <tr> 24 <td class="fecha"> </td> 25 <td colspan="2" class="fecha"><div id="campoHora"> </div></td> 26 </tr> 27 <tr> 28 <td class="menu"> 29 <ul> 30 <li><a href="index.php">Inicio</a></li> 31 <li><a href="historia.php">Historia</a></li> 32 <li><a href="equipoDirectivo.php">Equipo directivo</a></li> 33 <li><a href="reglamento.php">Reglamento</a></li> 34 <li><a href="calendario.php">Calendario escolar</a></li> 35 <li><a href="#">Localización</a></li> 36 <li><a href="contactar.php">Contactar</a></li> 37 <li><a href="enlaces.php">Enlaces</a></li> 38 </ul> </td> 39 <td class="general"><h1>Localización</h1> 40 <p>C. P. EMILIO LLUCH </p> 41 <p>Calle Polideportivo, s/n. </p> 42 <p>46119 - Nàquera (Valencia)</p> 43 <p><a href="javascript:;" onclick="window.open('http://www.naquera. 44 com/servicios/plano_callejero_v.asp','Mapa','width=500,height=325')"> 45 Ver mapa de Nàquera</a> </p></td> 46 <td class="imagenLocalizacion"> </td> 47 </tr> 48 <tr> 49 <td><p>Autenticarse</p> 50 <form id="form1" method="post" action="analizadorlogin.php"> 51 <p> 52 <label>Login 53 <input type="text" name="log" /> 54 </label> 55 <label>Password 56 <input type="password" name="pass" /> 57 </label> 58 <label> 59 <input type="submit" value="Identificarse" name="b" /> 60 </label> 61 </p> 62 </form> <p> </p></td> 63 <td colspan="2" class="noticias"><h3>Noticias</h3> 64 <?php 65 noticias(); 66 ?></td> 67 </tr> 68 </table> 69 </body> 70 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 151
Contactar.php 1 <?php 2 require_once ("Anonimo_inc.php"); 3 ?> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 5 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 6 <html xmlns="http://www.w3.org/1999/xhtml"> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 9 <title>CP Emilio Lluch</title> 10 <link href="css/general.css" rel="stylesheet" type="text/css" /> 11 12 <script type="text/javascript" src="./js/fecha.js"> </script> 13 14 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 15 </head> 16 17 <body onload="javascript:displayTime();"> 18 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 19 <tr> 20 <td class="logo"> </td> 21 <td colspan="2" class="titulo"> </td> 22 </tr> 23 <tr> 24 <td class="fecha"> </td> 25 <td colspan="2" class="fecha"><div id="campoHora"> </div></td> 26 </tr> 27 <tr> 28 <td class="menu"> 29 <ul> 30 <li><a href="index.php">Inicio</a></li> 31 <li><a href="historia.php">Historia</a></li> 32 <li><a href="equipoDirectivo.php">Equipo directivo</a></li> 33 <li><a href="reglamento.php">Reglamento</a></li> 34 <li><a href="calendario.php">Calendario escolar</a></li> 35 <li><a href="localizacion.php">Localización</a></li> 36 <li><a href="#">Contactar</a></li> 37 <li><a href="enlaces.php">Enlaces</a></li> 38 </ul> </td> 39 <td class="general"><h1>Contacto</h1> 40 <p>Para cualquier duda o sugerencia no dude en ponerse en contacto 41 con nosotros. Con el formulario que le ofrecemos a continuació 42 n puede hacernos llegar sus inquietudes. </p> 43 <p>O si lo prefiere puede ponerse en contacto con el centro con el 44 siguiente teléfono: 96 168 00 76</p> 45 <form id="form2" method="post" action="<?php echo $_SERVER['PHP_SELF'] 46 ?>"> 47 48 <p> 49 Introduzca su e-mail 50 <input type="text" name="Mail" value="<?php echo $_POST["Mail"] ?> 51 "/> 52 </p> 53 <p>Introduzca el mensaje que desee enviar: </p> 54 <p> 55 <textarea name="Texto" cols="50" rows="8"><?php echo $_POST[ 56 "Texto"] ?></textarea> 57 </p> 58 <p> 59 <input type="submit" name="Submit" value="Enviar" /> 60 </p> 61 </form> 62 <?php 63 64 65 ?> 66 67 <p> </p></td> 68 <td class="imagenEmail"> </td> 69 </tr> 70 <tr> 71 <td><p>Autenticarse</p> 72 <form id="form1" method="post" action="analizadorlogin.php"> 73 <p>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 152
74 <label>Login 75 <input type="text" name="log" /> 76 </label> 77 <label>Password 78 <input type="password" name="pass" /> 79 </label> 80 <label> 81 <input type="submit" value="Identificarse" name="b" /> 82 </label> 83 </p> 84 </form> <p> </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>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 153
Enlaces.php 1 <?php 2 require_once ("Anonimo_inc.php"); 3 ?> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 5 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 6 <html xmlns="http://www.w3.org/1999/xhtml"> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 9 <title>CP Emilio Lluch</title> 10 <link href="css/general.css" rel="stylesheet" type="text/css" /> 11 12 <script type="text/javascript" src="./js/fecha.js"> </script> 13 14 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 15 </head> 16 17 <body onload="javascript:displayTime();"> 18 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 19 <tr> 20 <td class="logo"> </td> 21 <td colspan="2" class="titulo"> </td> 22 </tr> 23 <tr> 24 <td class="fecha"> </td> 25 <td colspan="2" class="fecha"><div id="campoHora"> </div></td> 26 </tr> 27 <tr> 28 <td class="menu"> 29 <ul> 30 <li><a href="index.php">Inicio</a></li> 31 <li><a href="historia.php">Historia</a></li> 32 <li><a href="equipoDirectivo.php">Equipo directivo</a></li> 33 <li><a href="reglamento.php">Reglamento</a></li> 34 <li><a href="calendario.php">Calendario escolar</a></li> 35 <li><a href="localizacion.php">Localización</a></li> 36 <li><a href="contactar.php">Contactar</a></li> 37 <li><a href="#">Enlaces</a></li> 38 </ul> </td> 39 <td class="general"><h1>Enlaces de interés </h1> 40 <h3>Institucionales</h3> 41 <p><a href="www.mec.es">Ministerio de Educación</a></p> 42 <p><a href="www.cult.gva.es">Conselleria d'Educació</a> </p> 43 <p><a href="www.naquera.com">Ayuntamiento de Nàquera</a> </p> 44 <h3>Recursos educativos </h3> 45 <p><a href="www.rincondelvago.com">El Rincón del vago</a> </p>< 46 /td> 47 <td class="imagenEnlaces"> </td> 48 </tr> 49 <tr> 50 <td><p>Autenticarse</p> 51 <form id="form1" method="post" action="analizadorlogin.php"> 52 <p> 53 <label>Login 54 <input type="text" name="log" /> 55 </label> 56 <label>Password 57 <input type="password" name="pass" /> 58 </label> 59 <label> 60 <input type="submit" value="Identificarse" name="b" /> 61 </label> 62 </p> 63 </form> <p> </p></td> 64 <td colspan="2" class="noticias"><h3>Noticias</h3> 65 <?php 66 noticias(); 67 ?></td> 68 </tr> 69 </table> 70 </body> 71 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 154
Prohibido.php 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. 2 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3 <html xmlns="http://www.w3.org/1999/xhtml"> 4 <head> 5 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 6 <title>Documento sin título</title> 7 </head> 8 9 <body> 10 <p>Acceso prohibido. </p> 11 Volver al <a href="/webcole/index.php">inicio</a> 12 </body> 13 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 155
Anonimo_inc.php 1 <?php 2 require_once "bd.php"; 3 4 function equipo_directivo() 5 { 6 $conn = Conectar(); 7 // DIRECTOR 8 $sql="SELECT * FROM usuario U, director D, equipodirectivo E WHERE U. 9 login = D.login AND D.login = E.login"; 10 $director = consulta($sql,$conn); 11 $dir = siguiente($director); 12 echo "<p style='font-weight: bold; font-size:22px'>Director: </p>"; 13 echo tohtml("<p>".$dir["nombre"]." ".$dir["apellido1"]." ".$dir[ 14 "apellido2"]."</p>"); 15 echo tohtml("<p>E-mail: <a href='mailto:".$dir["email"]."'>".$dir[ 16 "email"]."</a></p>"); 17 echo tohtml("<p>Horario de atención: " . $dir["horario"] . "< 18 /p>"); 19 echo "<hr />"; 20 //JEFE DE ESTUDIOS 21 $sql="SELECT * FROM usuario U, jefeestudio J, equipodirectivo E WHERE 22 U.login = J.login AND J.login = E.login"; 23 $je = consulta($sql,$conn); 24 $je = siguiente($je); 25 echo "<p style='font-weight: bold; font-size:22px'>Jefe de Estudios: 26 </p>"; 27 echo tohtml("<p>".$je["nombre"]." ".$je["apellido1"]." ".$je[ 28 "apellido2"]."</p>"); 29 echo tohtml("<p>E-mail: <a href='mailto:".$je["email"]."'>".$je[ 30 "email"]."</a></p>"); 31 echo tohtml("<p>Horario de atención: " . $je["horario"] . "</p> 32 "); 33 echo "<hr />"; 34 //SECRETARIO 35 $sql="SELECT * FROM usuario U, secretario S, equipodirectivo E WHERE 36 U.login = S.login AND S.login=E.login"; 37 $secretario = consulta($sql,$conn); 38 $sec = siguiente($secretario); 39 echo "<p style='font-weight: bold; font-size:22px'>Secretario: </p>"; 40 echo tohtml("<p>".$sec["nombre"]." ".$sec["apellido1"]." ".$sec[ 41 "apellido2"]."</p>"); 42 echo tohtml("<p>E-mail: <a href='mailto:".$sec["email"]."'>".$sec[ 43 "email"]."</a></p>"); 44 echo tohtml("<p>Horario de atención: " . $sec["horario"] . "< 45 /p>"); 46 47 desconectar($conn); 48 } 49 50 function noticias() 51 { 52 $conn=Conectar(); 53 $sql="SELECT * FROM evento WHERE titulo = 'Noticia' ORDER BY idevento 54 DESC"; 55 $res=consulta($sql,$conn); 56 for($i=0; $i<3 || $i<numeroFilas($res);$i++) 57 { 58 $row = siguiente($res); 59 echo "<p><span class='fechaNoticia'>".sacarFecha($row["fecha"])." < 60 /span>".tohtml($row["descripcion"])." </p>"; 61 } 62 desconectar($conn); 63 } 64 65 function mandar_correo() 66 { 67 $conn=Conectar(); 68 $sql="SELECT * FROM administrador"; 69 $res=consulta($sql,$conn); 70 $res=siguiente($res); 71 $mailAdmin = $res["email"]; 72 if(isset($_POST["Mail"]) && $_POST["Mail"] != "") 73 {
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 156
74 if(@mail($mailAdmin, "Consulta de la Web", $_POST["Texto"], 75 "From: ".$_POST['Mail'])) 76 echo "<p>Gracias por ponerse en contacto con nosotros. Le 77 contestaremos con la mayor brevedad posible.</p>"; 78 else 79 echo "<p>Lo siento, ha ocurrido un error.</p>"; 80 } 81 else if($HTTP_POST_VARS) 82 echo "<p>Debe rellenar todos los campos.</p>"; 83 desconectar($conn); 84 } 85 86 ?>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 157
Analizadorlogin.php 1 <?php 2 $ok = 0; // se han encontrado en la base de datos 3 session_start(); 4 include("bd.php"); 5 $conn = conectar(); 6 $sql = 'SELECT * FROM usuario'; 7 $resultado = consulta($sql, $conn); 8 while($row = siguiente($resultado)) 9 { 10 if($_POST['pass'] == $row['contrasenya'] && $_POST['log'] == $row[ 11 'login']) 12 { 13 $ok = 1; 14 15 //setcookie('log', $row['login']); //Guardamos el cookie con 16 el nombre del usuario conectado 17 $_SESSION["id"] = $row["login"]; 18 //Comprobamos si es profesor 19 $sql2 = 'SELECT * FROM profesor'; 20 $resultado2 = consulta($sql2, $conn); 21 while($row2 = siguiente($resultado2)) 22 { 23 if($_POST['log'] == $row2['login']) 24 { 25 //mysql_close($dp); 26 $_SESSION["tipo"] = "Profesor"; 27 header('Location: intranetProfe.php'); 28 break; 29 } 30 } 31 32 //Comprobamos si es alumno 33 $sql3 = 'SELECT * FROM alumno'; 34 $resultado3 = consulta($sql3, $conn); 35 while($row3 = siguiente($resultado3)) 36 { 37 if($_POST['log'] == $row3['login']) 38 { 39 40 $_SESSION["tipo"] = "Alumno"; 41 header('Location: intranetAlumno.php'); 42 } 43 } 44 } 45 } 46 47 48 if($ok == 0) 49 { 50 setcookie('login', 'Error', time()+1); 51 header("Location: index.php"); 52 echo '<script language="Javascript"> alert("Autenticación errónea"); 53 </script>'; 54 } 55 56 57 desconectar($conn); 58 ?>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 158
Bd.php 1 <?php 2 function Conectar() //realiza la conexion con la base de datos. 3 { 4 if (!($link=mysql_connect("localhost","cole1","webcole"))) 5 { 6 echo "Error conectando a la base de datos."; 7 exit(); 8 } 9 if (!mysql_select_db("webcole",$link)) 10 { 11 echo "Error seleccionando la base de datos."; 12 exit(); 13 } 14 return $link; 15 } 16 17 function consulta($sql, $c) 18 { 19 $res = mysql_query($sql, $c); 20 return $res; 21 } 22 23 function siguiente($res) 24 { 25 return mysql_fetch_assoc($res); 26 } 27 28 29 function Desconectar($link) 30 { 31 mysql_close($link); //cierra la conexion 32 } 33 34 //Esta función convierte la fecha del formato DATETIME de SQL 35 //a formato DD-MM-YYYY HH:mm:ss 36 function convertir_fecha($fecha_datetime) 37 { 38 $fecha = split("-",$fecha_datetime); 39 $hora = split(":",$fecha[2]); 40 $fecha_hora=split(" ",$hora[0]); 41 $fecha_convertida=$fecha_hora[0].'-'.$fecha[1].'-'.$fecha[0].' '. 42 $fecha_hora[1].':'.$hora[1].':'.$hora[2]; 43 return $fecha_convertida; 44 } 45 46 //Devuelve solo la fecha de un datetime 47 function sacarFecha($fecha_datetime) 48 { 49 $fecha = split("-",$fecha_datetime); 50 $hora = split(":",$fecha[2]); 51 $fecha_hora=split(" ",$hora[0]); 52 $fecha_convertida=$fecha_hora[0] . '-' . $fecha[1] . '-' . $fecha[0]; 53 return $fecha_convertida; 54 } 55 56 function sacarDiaMes($fecha_datetime) 57 { 58 $fecha = split("-",$fecha_datetime); 59 $hora = split(":",$fecha[2]); 60 $fecha_hora=split(" ",$hora[0]); 61 $fecha_convertida=$fecha_hora[0] . '-' . $fecha[1]; 62 return $fecha_convertida; 63 } 64 65 function numeroFilas($res) 66 { 67 return mysql_num_rows($res); 68 } 69 70 //Reemplaza en un texto las tildes y caracteres especiales por su 71 equivalente en html 72 function tohtml($texto) { 73 $especial=array('á','é','í','ó','ú','ñ','Á','É','Í','Ó','Ú','Ñ','à','è',
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 159
74 'ò','À','È','Ò'); 75 $traducir=array('á','é','í','ó','ú', 76 'ñ','Á','É','Í','Ó','Ú', 77 'Ñ','à','è','ò','À','È', 78 'Ò'); 79 return str_replace($especial,$traducir,$texto); 80 } 81 82 //cierra la sesion del usuario, borrando los datos que hubiera en ella 83 function cerrarSesion () 84 { 85 // Destruye todas las variables de la sesión 86 session_unset(); 87 // Finalmente, destruye la sesión 88 session_destroy(); 89 } 90 91 ?>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 160
Cerrar_sesion_alumno.php 1 <?php 2 session_start(); 3 include("bd.php"); 4 cerrarSesion(); 5 ?> 6 <head> 7 <meta http-equiv="refresh" content="1;URL=index.php"> 8 </head>
Cerrar_sesion.php 1 <?php 2 require_once "profesor_inc.php"; 3 header("Location: /webcole/index.php"); 4 ?>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 161
calendarioscript.php 1 <?php 2 include_once("bd.php"); 3 4 5 6 function calcula_numero_dia_semana($dia,$mes,$ano){ 7 $numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano)); 8 if ($numerodiasemana == 0) 9 $numerodiasemana = 6; 10 else 11 $numerodiasemana--; 12 return $numerodiasemana; 13 } 14 15 //funcion que devuelve el último día de un mes y año dados 16 function ultimoDia($mes,$ano){ 17 $ultimo_dia=28; 18 while (checkdate($mes,$ultimo_dia + 1,$ano)){ 19 $ultimo_dia++; 20 } 21 return $ultimo_dia; 22 } 23 24 function dame_nombre_mes($mes){ 25 switch ($mes){ 26 case 1: 27 $nombre_mes="Enero"; 28 break; 29 case 2: 30 $nombre_mes="Febrero"; 31 break; 32 case 3: 33 $nombre_mes="Marzo"; 34 break; 35 case 4: 36 $nombre_mes="Abril"; 37 break; 38 case 5: 39 $nombre_mes="Mayo"; 40 break; 41 case 6: 42 $nombre_mes="Junio"; 43 break; 44 case 7: 45 $nombre_mes="Julio"; 46 break; 47 case 8: 48 $nombre_mes="Agosto"; 49 break; 50 case 9: 51 $nombre_mes="Septiembre"; 52 break; 53 case 10: 54 $nombre_mes="Octubre"; 55 break; 56 case 11: 57 $nombre_mes="Noviembre"; 58 break; 59 case 12: 60 $nombre_mes="Diciembre"; 61 break; 62 } 63 return $nombre_mes; 64 } 65 66 function mostrar_calendario($dia,$mes,$ano){ 67 $mes_hoy=date("m"); 68 $ano_hoy=date("Y"); 69 70 if (($mes_hoy <> $mes) || ($ano_hoy <> $ano)) 71 { 72 $hoy=0; 73 } 74 else 75 {
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 162
76 $hoy=date("d"); 77 } 78 //tomo el nombre del mes que hay que imprimir 79 $nombre_mes = dame_nombre_mes($mes); 80 81 //construyo la cabecera de la tabla 82 echo "<table width='200px' cellspacing='3' cellpadding='2' border='0'>< 83 tr><td colspan='7' style='text-align: center ;' class='tit'>"; 84 echo "<table width='100%' cellspacing='2' cellpadding='2' border='0'>< 85 tr><td style='font-size:10pt;font-weight:bold;color:white'>"; 86 //calculo el mes y ano del mes anterior 87 $mes_anterior = $mes - 1; 88 $ano_anterior = $ano; 89 if ($mes_anterior==0){ 90 $ano_anterior--; 91 $mes_anterior=12; 92 } 93 echo "<a style='color:white;text-decoration:none' href='calendario. 94 php?dia=$dia&nuevo_mes=$mes_anterior&nuevo_ano=$ano_anterior'> 95 <<</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&nuevo_mes=$mes_siguiente&nuevo_ano=$ano_siguiente'> 109 >></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&nuevo_mes=$mes& 151 nuevo_ano=$ano'>$dia_actual</a></td>"; 152 }
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 163
153 else if ($dia_actual == $dia) //Dia seleccionado 154 { 155 echo "<td class='da'><a href='calendario. 156 php?dia=$dia_actual&nuevo_mes=$mes& 157 nuevo_ano=$ano'>$dia_actual</a></td>"; 158 } 159 else 160 { 161 echo "<td class='fs'><a href='calendario. 162 php?dia=$dia_actual&nuevo_mes=$mes& 163 nuevo_ano=$ano'>$dia_actual</a></td>"; 164 } 165 } 166 else 167 { 168 if ($dia_actual == $hoy) 169 { 170 echo "<td class='da'><a href='calendario. 171 php?dia=$dia_actual&nuevo_mes=$mes& 172 nuevo_ano=$ano'>$dia_actual</a></td>"; 173 } 174 else if ($dia_actual == $dia) //Dia seleccionado 175 { 176 echo "<td class='da'><a href='calendario. 177 php?dia=$dia_actual&nuevo_mes=$mes& 178 nuevo_ano=$ano'>$dia_actual</a></td>"; 179 } 180 else 181 { 182 $escrito=0; 183 $conn=Conectar(); 184 $sql = "SELECT * FROM evento WHERE titulo = 'Festivo'"; 185 $res = consulta($sql,$conn); 186 while($row = siguiente($res)) 187 { 188 $fecha = split("-",sacarFecha($row["fecha"])); 189 if($dia_actual == $fecha[0] && $mes == $fecha[1] && 190 ($fecha[2] == "2000" || $fecha[2] == $ano)) 191 { 192 echo "<td class='fs'><a href='calendario. 193 php?dia=$dia_actual&nuevo_mes=$mes& 194 nuevo_ano=$ano'>$dia_actual</a></td>"; 195 $escrito=1; 196 break; 197 } 198 } 199 $sql = "SELECT * FROM evento WHERE NOT titulo = 200 'Festivo' AND NOT titulo='Noticia'"; 201 $res = consulta($sql,$conn); 202 while($row = siguiente($res)) 203 { 204 $fecha = split("-",sacarFecha($row["fecha"])); 205 if($dia_actual == $fecha[0] && $mes == $fecha[1] && 206 ($fecha[2] == "2000" || $fecha[2] == $ano)) 207 { 208 echo "<td class='curso'><a href='calendario. 209 php?dia=$dia_actual&nuevo_mes=$mes& 210 nuevo_ano=$ano'>$dia_actual</a></td>"; 211 $escrito=1; 212 break; 213 } 214 } 215 Desconectar($conn); 216 if($escrito==0) 217 { 218 echo "<td style='text-align: center ;' 219 class='laborable'><a href='calendario. 220 php?dia=$dia_actual&nuevo_mes=$mes& 221 nuevo_ano=$ano'>$dia_actual</a></td>"; 222 223 } 224 } 225 } 226 $dia_actual++; 227 } 228 } 229 echo "</tr>";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 164
230 231 //recorro todos los demás días hasta el final del mes 232 $numero_dia = 0; 233 while ($dia_actual <= $ultimo_dia){ 234 //si estamos a principio de la semana escribo el <TR> 235 if ($numero_dia == 0) 236 echo "<tr>"; 237 //si es el uñtimo de la semana, me pongo al principio de la semana 238 y escribo el </tr> 239 240 if (($numero_dia == 5) || ($numero_dia == 6)) 241 { 242 if ($dia_actual == $hoy) 243 { 244 echo "<td class='da'><a href='calendario. 245 php?dia=$dia_actual&nuevo_mes=$mes& 246 nuevo_ano=$ano'>$dia_actual</a></td>"; 247 } 248 else if ($dia_actual == $dia) //Dia seleccionado 249 { 250 echo "<td class='da'><a href='calendario. 251 php?dia=$dia_actual&nuevo_mes=$mes& 252 nuevo_ano=$ano'>$dia_actual</a></td>"; 253 } 254 else 255 { 256 echo "<td class='fs' ><a href='calendario. 257 php?dia=$dia_actual&nuevo_mes=$mes& 258 nuevo_ano=$ano'>$dia_actual</a></td>"; 259 } 260 } 261 else 262 { 263 if ($dia_actual == $hoy) 264 { 265 echo "<td class='da'><a href='calendario. 266 php?dia=$dia_actual&nuevo_mes=$mes& 267 nuevo_ano=$ano'>$dia_actual</a></td>"; 268 } 269 else if ($dia_actual == $dia) //Dia seleccionado 270 { 271 echo "<td class='da'><a href='calendario. 272 php?dia=$dia_actual&nuevo_mes=$mes& 273 nuevo_ano=$ano'>$dia_actual</a></td>"; 274 } 275 else 276 { 277 $escrito=0; 278 $conn=Conectar(); 279 $sql = "SELECT * FROM evento WHERE titulo = 'Festivo'"; 280 $res = consulta($sql,$conn); 281 while($row = siguiente($res)) 282 { 283 $fecha = split("-",sacarFecha($row["fecha"])); 284 if($dia_actual == $fecha[0] && $mes == $fecha[1] && 285 ($fecha[2] == "2000" || $fecha[2] == $ano)) 286 { 287 echo "<td class='fs'><a href='calendario. 288 php?dia=$dia_actual&nuevo_mes=$mes& 289 nuevo_ano=$ano'>$dia_actual</a></td>"; 290 $escrito=1; 291 break; 292 } 293 } 294 $sql = "SELECT * FROM evento WHERE NOT titulo = 295 'Festivo' AND NOT titulo='Noticia'"; 296 $res = consulta($sql,$conn); 297 while($row = siguiente($res)) 298 { 299 $fecha = split("-",sacarFecha($row["fecha"])); 300 if($dia_actual == $fecha[0] && $mes == $fecha[1] && 301 ($fecha[2] == "2000" || $fecha[2] == $ano)) 302 { 303 echo "<td class='curso'><a href='calendario. 304 php?dia=$dia_actual&nuevo_mes=$mes& 305 nuevo_ano=$ano'>$dia_actual</a></td>"; 306 $escrito=1;
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 165
307 break; 308 } 309 } 310 Desconectar($conn); 311 if($escrito==0) 312 { 313 echo "<td style='text-align: center ;' 314 class='laborable'><a href='calendario. 315 php?dia=$dia_actual&nuevo_mes=$mes& 316 nuevo_ano=$ano'>$dia_actual</a></td>"; 317 318 } 319 } 320 } 321 322 $dia_actual++; 323 $numero_dia++; 324 if ($numero_dia == 7) 325 { 326 $numero_dia = 0; 327 echo "</tr>"; 328 } 329 330 } 331 332 //compruebo que celdas me faltan por escribir vacias de la última 333 semana del mes 334 for ($i=$numero_dia;$i<7;$i++){ 335 echo "<td></td>"; 336 } 337 338 echo "</tr>"; 339 echo "</table>"; 340 }
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 166
Alumno_inc.php 1 <?php 2 3 require_once "bd.php"; 4 define (INST, "INSTALACION"); 5 define (EQUIP, "EQUIPACION"); 6 define (ALUM, "Alumno"); 7 8 //Devuelve una tabla con las reservas de instalaciones que 9 //ha efectuado el usuario. 10 //El usuario se obtiene de la sesion iniciada 11 //Acceso: 12 // idinst => id de la instalacion 13 // instalacion => nombre de la instalacion 14 // normas => ruta para llegar a las normas de la instalacion 15 // (no contiene las normas, apunta al fichero 16 // que las tiene) 17 // fecha => fecha de la reserva con formato "mm-dd-aa hh:mm:ss" 18 // proposito => Motivo de la reserva (introducido por el usuario 19 // cuando realiza la reserva. 20 function listado_reservas_instalaciones() 21 { 22 $link = Conectar(); 23 $sql = "SELECT * FROM res_ins WHERE login = '" . $_SESSION["id"] ."'"; 24 25 //ejecutamos la consulta 26 $resultado = consulta ($sql, $link); 27 28 //sacamos los valores que nos interesan de los 29 //resultados (en este caso todos) 30 $i = 0; 31 $tabla = null; 32 while ($fila = siguiente($resultado)) 33 { 34 $tabla[$i]["fecha"] = $fila["fecha"]; 35 //$tabla[$i]["fecha"] = $fila["fecha"]; 36 $tabla[$i]["proposito"] = $fila["proposito"]; 37 38 $sql_ins = "SELECT * FROM instalacion WHERE idinstalacion = '" . 39 $fila["idinstalacion"] . "'"; 40 $res_ins = consulta ($sql_ins, $link); 41 $ins = siguiente($res_ins); 42 if ($ins) 43 { 44 $tabla[$i]["idinst"] = $ins["idinstalacion"]; 45 $tabla[$i]["instalacion"] = $ins["instalacion"]; 46 $tabla[$i++]["normas"] = $ins["normas"]; 47 } 48 else 49 { 50 $tabla[$i]["idinst"] = -1; 51 $tabla[$i]["instalacion"] = "Instalacion desconocida"; 52 $tabla[$i++]["normas"] = "Normas no encontradas"; 53 } 54 } 55 56 Desconectar ($link); 57 return $tabla; 58 } 59 60 61 62 //devuelve una tabla con el id de las instalaciones, 63 //el nombre de la instalacion y las normas 64 //Acceso: 65 // idinstalacion => id de la instalacion 66 // instalacion => nombre de la instalacion 67 // normas => ruta para llegar a las normas de la instalacion 68 // (no contiene las normas, apunta al fichero 69 // que las tiene) 70 function listado_instalacion() 71 { 72 $link = Conectar(); 73 $sql = "SELECT * FROM instalacion"; 74 75 //ejecutamos la consulta
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 167
76 $resultado = consulta ($sql, $link); 77 78 //sacamos los valores que nos interesan de los 79 //resultados (en este caso todos) 80 $i = 0; 81 while ($fila = siguiente($resultado)) 82 { 83 $tabla[$i]["idinstalacion"] = $fila["idinstalacion"]; 84 $tabla[$i]["instalacion"] = $fila["instalacion"]; 85 $tabla[$i++]["normas"] = $fila["normas"]; 86 } 87 88 Desconectar ($link); 89 return $tabla; 90 } 91 92 93 //Obtiene los dias en que esta reservado una instalacion dada 94 //Devuelve una tabla con las fechas 95 //Acceso: 96 // dia 97 // mes 98 // anyo 99 //Parametros recibido 100 // id de una instalacion 101 function fecha_reservas($iditem, $item) 102 { 103 if ( !isset($iditem) || $iditem == -1) 104 { 105 return; 106 } 107 108 $link = Conectar(); 109 if ($item == INST) 110 { 111 $sql = "SELECT fecha FROM `res_ins` 112 WHERE `res_ins`.`idinstalacion`=$iditem" ; 113 } 114 else 115 { 116 $sql = "SELECT fecha FROM `res_equi` 117 WHERE `res_equi`.`idequipacion`=$iditem" ; 118 } 119 120 $result = consulta ($sql, $link); 121 122 //sacamos los valores que nos interesan de los 123 //resultados (en este caso todos) 124 $i = 0; 125 $tabla; 126 while ($fila = siguiente($result)) 127 { 128 $fecha = sacarFecha($fila["fecha"]); 129 $trozo = explode ("-", $fecha); 130 //echo " fecha: " . $fecha . "\n<br>"; 131 $tabla[$i]["dia"] = $trozo[0]; 132 $tabla[$i]["mes"] = $trozo[1]; 133 $tabla[$i++]["anyo"] = $trozo[2]; 134 } 135 136 Desconectar ($link); 137 return $tabla; 138 } 139 140 //Permite hacer una reserva 141 //Recibe como parametros 142 //Login del usuario, fecha(dia, mes, anyo) y hora(hora, min, seg) 143 //el codigo del item a reservar (puede ser una instalacion o un 144 //equipamiento y el motivo 145 //Devuelve: 146 // True si reveserva se pudo hacer 147 // Falso en caso contrario 148 function reservar_instalacion($login,$iditem,$dia,$mes,$anyo,$hora,$min, 149 $seg,$motivo, $item) 150 { 151 $fecha = $anyo . "-" . $mes . "-" . $dia . " " . $hora . ":" . $min . ": 152 " . $seg;
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 168
153 echo "fecha vale: $fecha<br>\n"; 154 155 $link = Conectar(); 156 /*$sql = "INSERT INTO `webcole`.`res_ins` 157 (`login`, 158 `idinstalacion`, 159 `fecha`, 160 `proposito`) VALUES 161 (\'$login\', 162 \'$idins\', 163 \'$fecha\', 164 \'$motivo\');"; 165 */ 166 if ($item == INST) 167 { 168 $sql = "INSERT INTO `webcole`.`res_ins` 169 (`login`, 170 `idinstalacion`, 171 `fecha`, 172 `proposito`) VALUES 173 ('$login', 174 '$iditem', 175 '$fecha', 176 '$motivo');"; 177 } 178 else 179 { 180 $sql = "INSERT INTO `webcole`.`res_equi` 181 (`login`, 182 `idequipacion`, 183 `fecha`, 184 `proposito`) VALUES 185 ('$login', 186 '$iditem', 187 '$fecha', 188 '$motivo');"; 189 } 190 $result = consulta ($sql, $link); 191 192 echo "error: " . mysql_error($link); 193 194 return $result; 195 } 196 197 198 //Esta funcion elimina una reserva del usuario dado una fecha y el 199 //id del item y el tipo (instalacion o equipamiento 200 function anular_reserva($login, $fecha, $iditem, $item) 201 { 202 $link = Conectar(); 203 if ($item == INST) 204 { 205 $sql = "DELETE FROM `res_ins` 206 WHERE CONVERT(`res_ins`.`login` USING utf8)='$login' 207 AND `res_ins`.`idinstalacion`=$iditem 208 AND `res_ins`.`fecha`='$fecha' "; 209 } 210 else 211 { 212 $sql = "DELETE FROM `res_equi` 213 WHERE CONVERT(`res_equi`.`login` USING utf8)='$login' 214 AND `res_equi`.`idequipacion`=$iditem 215 AND `res_equi`.`fecha`='$fecha' "; 216 } 217 218 $result = consulta ($sql, $link); 219 $correcto =false; 220 221 if($result) 222 { 223 $filas = mysql_affected_rows(); 224 if ( $filas == 0 ) 225 { 226 //echo "La reserva ya había sido eliminada"; 227 $correcto =false; 228 } 229 else
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 169
230 { 231 //echo "La reserva ha sido eliminada"; 232 $correcto =true; 233 } 234 } 235 else 236 { 237 //echo"<p>Operacion NO efectuada</p>\n"; 238 //echo"<p>Error: " . mysql_error($link) . "</p>\n"; 239 //echo"SQL: $sql"; 240 $correcto =false; 241 } 242 243 Desconectar ($link); 244 return $correcto; 245 } 246 247 function bienvenido() 248 { 249 $dp = Conectar(); 250 $sql = 'SELECT * FROM usuario WHERE login ="' . $_SESSION[ 251 "id"] .'"'; 252 $resultado = consulta($sql, $dp); 253 while($row = siguiente($resultado)) 254 echo 'Bienvenido ' . $row['nombre']; 255 desconectar($dp); 256 } 257 258 function rellenar_eventos_curso() 259 { 260 $conn = Conectar(); 261 $sql="SELECT * FROM evento WHERE titulo = 'Curso' ORDER BY fecha"; 262 $res=consulta($sql,$conn); 263 264 while($row = siguiente($res)) 265 { 266 $fecha=split("-",sacarFecha($row["fecha"])); 267 $fechaComparar = "".$fecha[2].$fecha[1].$fecha[0]; 268 if($fechaComparar >= date("Ymd")) 269 for($i=0; $i<3 && $i<numeroFilas($res);$i++) 270 echo "<p><span class='fechaNoticia'>".sacarFecha($row[ 271 "fecha"])." </span>".tohtml($row["descripcion"])." </p> 272 "; 273 } 274 desconectar($conn); 275 } 276 277 function rellenar_tabla_faltas() 278 { 279 $conn = Conectar(); 280 $sql = "SELECT * FROM faltaasistencia WHERE alumno = '".$_SESSION[ 281 "id"]."' ORDER BY fecha"; 282 $faltas = consulta($sql,$conn); 283 if(numeroFilas($faltas) == 0) 284 echo "El alumno no tiene ninguna falta de asistencia."; 285 else 286 { 287 echo "<table width='100%' border='1'>"; 288 echo "<tr>"; 289 echo "<th scope='col'>Fecha</th>"; 290 echo "<th scope='col'>Asignatura</th>"; 291 echo "<th scope='col'>Justificada</th>"; 292 echo "</tr>"; 293 while($row = siguiente($faltas)) 294 { 295 $sql = "SELECT nombre FROM asignatura WHERE codigoasignatura = 296 '".$row["asignatura"]."'"; 297 $asignatura = consulta($sql,$conn); 298 $asignatura = siguiente($asignatura); 299 echo "<tr>"; 300 echo "<th scope='row'>".sacarFecha($row["fecha"])."</th>"; 301 echo "<td>".tohtml($asignatura["nombre"])."</td>"; 302 if($row["justificada"] == 0) 303 echo "<td>NO</td>"; 304 else 305 echo "<td>SÍ</td>"; 306 echo "</tr>";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 170
307 } 308 echo "</table>"; 309 } 310 desconectar($conn); 311 } 312 313 function poner_datos_grupo() 314 { 315 $conn = Conectar(); 316 $sql = "SELECT * FROM usuario U, alumno A, grupo G WHERE U.login = 317 '".$_SESSION["id"]."' AND U.login = A.login AND A.curso = G.curso 318 AND A.letra = G.letra"; 319 $res = consulta($sql, $conn); 320 $res = siguiente($res); 321 322 echo "<p>Curso: ".$res["curso"] . "</p>"; 323 echo "<p>Letra: ".$res["letra"] . "</p>"; 324 echo "<p>Aula: ".$res["aula"] . "</p>"; 325 // Delegado 326 $sql = "SELECT * FROM usuario U, grupo G WHERE U.login = G. 327 delegado"; 328 $row = consulta($sql, $conn); 329 $row = siguiente($row); 330 echo "<p>Delegado: ".tohtml($row["apellido1"]." ".$row["apellido2"]. 331 ", ".$row["nombre"])."</p>"; 332 // Tutor 333 $sql = "SELECT * FROM usuario U, grupo G WHERE U.login = G.tutor"; 334 $row = consulta($sql, $conn); 335 $row = siguiente($row); 336 echo "<p>Tutor: ".tohtml($row["apellido1"]." ".$row["apellido2"].", 337 ".$row["nombre"])."</p>"; 338 desconectar($conn); 339 } 340 341 function rellenar_tabla_alumnos() 342 { 343 $conn = Conectar(); 344 $sql1 = "SELECT * FROM alumno where login='" . $_SESSION[ 345 "id"] ."'"; 346 347 $a = consulta($sql1,$conn); 348 $res = siguiente($a); 349 if ($res) 350 { 351 $sql = "SELECT * FROM usuario U, alumno A WHERE U.login 352 = A.login AND A.curso = '".$res["curso"]."' AND A.letra 353 = '".$res["letra"]."' ORDER BY apellido1, apellido2"; 354 355 $alumnos = consulta($sql,$conn); 356 while($row = siguiente($alumnos)) 357 { 358 echo "<tr>"; 359 echo "<td>".tohtml($row["apellido1"]." ".$row[ 360 "apellido2"].", ".$row["nombre"])."</td>"; 361 echo "<td>".tohtml($row["direccion"])."</td>"; 362 echo "<td>".tohtml($row["poblacion"])."</td>"; 363 echo "<td>".$row["telefono"]."</td>"; 364 echo "</tr>"; 365 } 366 } 367 desconectar($conn); 368 } 369 370 function curso_actual() 371 { 372 if(date("m")<9) 373 { 374 $anyo_ant = date("Y") - 1; 375 echo "Curso: ".$anyo_ant." - ".date("Y"); 376 } 377 else 378 { 379 $anyo_pos = date("Y") + 1; 380 echo "Curso: ".date("Y")." - ".$anyo_pos; 381 } 382 } 383
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 171
384 function rellenar_tabla_notas() 385 { 386 $conn = Conectar(); 387 $mes = date("m"); 388 if($mes<9) 389 $sql = "SELECT * FROM nota WHERE alumno = '".$_SESSION["id"] 390 ."' AND curso LIKE '%".date("Y")."' ORDER BY asignatura, 391 trimestre"; 392 else 393 $sql = "SELECT * FROM nota WHERE alumno = '".$_SESSION["id"] 394 ."' AND curso LIKE '".date("Y")."%' ORDER BY asignatura, 395 trimestre"; 396 $notas = consulta($sql,$conn); 397 $ultimo_trimestre = 0; 398 while($row = siguiente($notas)) 399 { 400 if($row["trimestre"] == 1) 401 { 402 if($ultimo_trimestre == 1) 403 { 404 echo "<td> </td>"; 405 echo "<td> </td>"; 406 echo "</tr>"; 407 } 408 if($ultimo_trimestre == 2) 409 { 410 echo "<td> </td>"; 411 echo "</tr>"; 412 } 413 $sql = "SELECT nombre FROM asignatura WHERE 414 codigoasignatura = '".$row["asignatura"]."'"; 415 $asignatura = consulta($sql,$conn); 416 $asignatura = siguiente($asignatura); 417 echo "<tr>"; 418 echo "<th scope='row'>".tohtml($asignatura["nombre"])."< 419 /th>"; 420 echo "<td>".$row["nota"]."</td>"; 421 $ultimo_trimestre = 1; 422 423 424 } 425 if($row["trimestre"] == 2) 426 { 427 $ultimo_trimestre = 2; 428 echo "<td>".$row["nota"]."</td>"; 429 } 430 if($row["trimestre"] == 3) 431 { 432 $ultimo_trimestre = 3; 433 echo "<td>".$row["nota"]."</td>"; 434 echo "</tr>"; 435 } 436 } 437 desconectar($conn); 438 } 439 440 function rellenar_tabla_profesores() 441 { 442 $conn = Conectar(); 443 $sql = "SELECT * FROM alumno A, grupo G WHERE A.login = '" . 444 $_SESSION["id"]."' AND A.curso = G.curso AND A.letra = G. 445 letra "; //Obtenemos el grupo 446 $grupo = consulta($sql,$conn); 447 $grupo = siguiente($grupo); 448 $sql = "SELECT * FROM impartida I, asignatura A, imparte IM, 449 profesor P WHERE I.curso = '".$grupo["curso"]."' AND I. 450 letra = '".$grupo["letra"]."' AND I.asignatura = A. 451 codigoasignatura AND A.codigoasignatura = IM.asignatura AND 452 IM.profesor = P.login ORDER BY nombre"; 453 $res = consulta($sql,$conn); 454 echo "sql vale: $sql<br>\n"; 455 while($row=siguiente($res)) 456 { 457 echo "<tr>"; 458 echo "<td>".tohtml($row["nombre"])."</td>"; 459 $sql = "SELECT * FROM usuario WHERE login = '".$row[ 460 "login"]."'";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 172
461 $profe = consulta($sql,$conn); 462 $profe = siguiente($profe); 463 echo "<td>".tohtml($profe["apellido1"]." ".$profe[ 464 "apellido2"].", ".$profe["nombre"])."</td>"; 465 echo "<td>".tohtml($row["tutorias"])."</td>"; 466 echo "<td><a href='mailto:".tohtml($row["email"])."'>". 467 tohtml($row["email"])."</a></td>"; 468 469 echo "</tr>"; 470 } 471 desconectar($conn); 472 } 473 474 function poner_anuncios_tablon() 475 { 476 $conn = Conectar(); 477 $sql = "SELECT * FROM anuncio ORDER BY idanuncio DESC"; 478 $anuncios = consulta($sql, $conn); 479 $anuncios_mostrados = 0; 480 $anuncios_amostrar = 10; 481 while($row = siguiente($anuncios)) 482 { 483 if($anuncios_mostrados >= $anuncios_amostrar) 484 break; 485 $anuncios_mostrados++; 486 $sql = "SELECT * FROM usuario WHERE login = '".$row["login"]."'"; 487 $usuario = consulta($sql,$conn); 488 $usuario = siguiente($usuario); 489 echo "<tr>"; 490 if($anuncios_mostrados>=3) 491 echo "<td></td>"; 492 echo "<td class='general'><p class='anuncioTitulo'>".tohtml($row["titulo"] 493 )." </p><br/>"; 494 echo "<span class='anuncioNombre'>".tohtml($usuario["nombre"])." ".tohtml( 495 $usuario["apellido1"])."</span> <span class='anuncioFecha'>- ".$row[ 496 "fecha"]."</span> </td>"; 497 echo "<td class='general'> </td>"; 498 echo "</tr>"; 499 500 echo "<tr>"; 501 echo "<td class='general'><p class='anuncio'><span class='anuncioTexto'> 502 ".tohtml($row["texto"])."</span></p></td>"; 503 echo "<td class='general'> </td>"; 504 echo "</tr>"; 505 //echo "<tr>"; 506 //echo "<td colspan='2' class='general'> </td>"; 507 //echo "</tr>"; 508 } 509 desconectar($conn); 510 } 511 512 function nombre_conectado() 513 { 514 515 $dp = Conectar(); 516 $sql = 'SELECT * FROM usuario WHERE login ="' . $_SESSION[ 517 "id"] .'"'; 518 $resultado = consulta($sql, $dp); 519 $row = siguiente($resultado); 520 echo tohtml($row['apellido1'] . " " . $row['apellido2'] . ", 521 " . $row['nombre']); 522 desconectar($dp); 523 } 524 525 ?>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 173
intranetAlumno.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 require_once ("Alumno_inc.php"); 6 ?> 7 8 9 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 10 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 11 <html xmlns="http://www.w3.org/1999/xhtml"> 12 <head> 13 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 14 <title>CP Emilio Lluch</title> 15 <link href="css/general.css" rel="stylesheet" type="text/css" /> 16 17 <script type="text/javascript" src="./js/fecha.js"> </script> 18 19 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 20 </head> 21 22 <body onload="javascript:displayTime();"> 23 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 24 <tr> 25 <td style="width: 150px;" class="logo"> </td> 26 <td colspan="2" class="titulo"> </td> 27 </tr> 28 <tr> 29 <td class="fecha"> </td> 30 <td colspan="2" class="fecha"><div id="campoHora"> </div></td> 31 </tr> 32 <tr> 33 <td class="menu"> 34 <ul> 35 <li><a href="#">Inicio</a></li> 36 <li><a href="Alumno_horario.php">Horario</a></li> 37 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 38 <li><a href="Alumno_profes.php">Listado profesores </a></li> 39 <li><a href="Alumno_notas.php">Notas</a></li> 40 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 41 <li><a href="Alumno_menu.php">Menú semanal </a></li> 42 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 43 <li><a href="Alumno_tablon.php">Tablón de anuncios </a></li> 44 </ul> </td> 45 <td class="general"><h1>Intranet alumno </h1> 46 <p> 47 <?php 48 nombre_conectado(); 49 ?> 50 </p> 51 </td> 52 <td class="general"> </td> 53 </tr> 54 <tr> 55 <td> 56 <p> 57 <?php 58 bienvenido(); 59 ?> 60 </p> 61 </td> 62 <td colspan="2" class="noticias"><h3> </h3> 63 <h3>Eventos del curso </h3> 64 65 <?php 66 rellenar_eventos_curso(); 67 ?> 68 69 <p> </p></td> 70 </tr> 71 </table> 72 </body> 73 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 174
Alumno_horario.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 6 require_once ("Alumno_inc.php"); 7 ?> 8 9 10 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 11 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 12 <html xmlns="http://www.w3.org/1999/xhtml"> 13 <head> 14 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 15 <title>CP Emilio Lluch</title> 16 <link href="css/general.css" rel="stylesheet" type="text/css" /> 17 18 <script type="text/javascript" src="./js/fecha.js"> </script> 19 20 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 21 <link href="css/Alumno_horario.css" rel="stylesheet" type="text/css" /> 22 </head> 23 24 <body onload="javascript:displayTime();"> 25 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 26 <tr> 27 <td class="logo"> </td> 28 <td colspan="2" class="titulo"> </td> 29 </tr> 30 <tr> 31 <td class="fecha"> </td> 32 <td colspan="2" class="fecha"><div id="campoHora"> </div></td> 33 </tr> 34 <tr> 35 <td class="menu"> 36 <ul> 37 <li><a href="intranetAlumno.php">Inicio</a></li> 38 <li><a href="Alumno_horario.php">Horario</a></li> 39 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 40 <li><a href="Alumno_profes.php">Listado profesores </a></li> 41 <li><a href="Alumno_notas.php">Notas</a></li> 42 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 43 <li><a href="Alumno_menu.php">Menú semanal </a></li> 44 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 45 <li><a href="Alumno_tablon.php">Tablón de anuncios </a></li> 46 </ul> </td> 47 <td class="general"><h1>Horario</h1> 48 <?php 49 $conn = Conectar(); 50 $sql = "SELECT * FROM alumno WHERE login = '".$_SESSION["id"]."'"; 51 $alumno = consulta($sql, $conn); 52 $alumno = siguiente($alumno); 53 $sql = "SELECT * FROM impartida I, asignatura A WHERE I.curso = '". 54 $alumno["curso"]."' AND I.letra = '".$alumno["letra"]."' AND A. 55 codigoasignatura = I.asignatura"; 56 57 58 59 ?> 60 61 <table class="tabla" width="100%" border="1"> 62 <tr> 63 <th scope="col"> </th> 64 <th scope="col">Lunes</th> 65 <th scope="col">Martes</th> 66 <th scope="col">Miércoles</th> 67 <th scope="col">Jueves</th> 68 <th scope="col">Viernes</th> 69 </tr> 70 <tr> 71 <th scope="row">9:00-10:00</th> 72 <td> 73 <?php 74 $asignaturas = consulta($sql,$conn); 75 while($row = siguiente($asignaturas))
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 175
76 { 77 $horario = split(" ", $row['horario']); 78 for($i = 0; $i < count($horario); $i+=2) 79 { 80 if($horario[$i] == 'Lunes') 81 if($horario[$i+1] == "9") 82 { 83 echo tohtml($row['nombre']); 84 break; 85 } 86 } 87 88 } 89 ?> </td> 90 <td> 91 <?php 92 $asignaturas = consulta($sql,$conn); 93 while($row = siguiente($asignaturas)) 94 { 95 $horario = split(" ", $row['horario']); 96 for($i = 0; $i < count($horario); $i+=2) 97 { 98 if($horario[$i] == 'Martes') 99 if($horario[$i+1] == "9") 100 { 101 echo tohtml($row['nombre']); 102 break; 103 } 104 } 105 106 } 107 ?> </td> 108 <td> 109 <?php 110 $asignaturas = consulta($sql,$conn); 111 while($row = siguiente($asignaturas)) 112 { 113 $horario = split(" ", $row['horario']); 114 for($i = 0; $i < count($horario); $i+=2) 115 { 116 if($horario[$i] == 'Miércoles') 117 if($horario[$i+1] == "9") 118 { 119 echo tohtml($row['nombre']); 120 break; 121 } 122 } 123 124 } 125 ?> </td> 126 <td> 127 <?php 128 $asignaturas = consulta($sql,$conn); 129 while($row = siguiente($asignaturas)) 130 { 131 $horario = split(" ", $row['horario']); 132 for($i = 0; $i < count($horario); $i+=2) 133 { 134 if($horario[$i] == 'Jueves') 135 if($horario[$i+1] == "9") 136 { 137 echo tohtml($row['nombre']); 138 break; 139 } 140 } 141 142 } 143 ?> </td> 144 <td> 145 <?php 146 $asignaturas = consulta($sql,$conn); 147 while($row = siguiente($asignaturas)) 148 { 149 $horario = split(" ", $row['horario']); 150 for($i = 0; $i < count($horario); $i+=2) 151 { 152 if($horario[$i] == 'Viernes')
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 176
153 if($horario[$i+1] == "9") 154 { 155 echo tohtml($row['nombre']); 156 break; 157 } 158 } 159 160 } 161 ?> 162 </td> 163 </tr> 164 <tr> 165 <th scope="row">10:00-11:00</th> 166 <td> 167 <?php 168 $asignaturas = consulta($sql,$conn); 169 while($row = siguiente($asignaturas)) 170 { 171 $horario = split(" ", $row['horario']); 172 for($i = 0; $i < count($horario); $i+=2) 173 { 174 if($horario[$i] == 'Lunes') 175 if($horario[$i+1] == "10") 176 { 177 echo tohtml($row['nombre']); 178 break; 179 } 180 } 181 182 } 183 ?> </td> 184 <td> 185 <?php 186 $asignaturas = consulta($sql,$conn); 187 while($row = siguiente($asignaturas)) 188 { 189 $horario = split(" ", $row['horario']); 190 for($i = 0; $i < count($horario); $i+=2) 191 { 192 if($horario[$i] == 'Martes') 193 if($horario[$i+1] == "10") 194 { 195 echo tohtml($row['nombre']); 196 break; 197 } 198 } 199 200 } 201 ?> </td> 202 <td> 203 <?php 204 $asignaturas = consulta($sql,$conn); 205 while($row = siguiente($asignaturas)) 206 { 207 $horario = split(" ", $row['horario']); 208 for($i = 0; $i < count($horario); $i+=2) 209 { 210 if($horario[$i] == 'Miércoles') 211 if($horario[$i+1] == "10") 212 { 213 echo tohtml($row['nombre']); 214 break; 215 } 216 } 217 218 } 219 ?> </td> 220 <td> 221 <?php 222 $asignaturas = consulta($sql,$conn); 223 while($row = siguiente($asignaturas)) 224 { 225 $horario = split(" ", $row['horario']); 226 for($i = 0; $i < count($horario); $i+=2) 227 { 228 if($horario[$i] == 'Jueves') 229 if($horario[$i+1] == "10")
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 177
230 { 231 echo tohtml($row['nombre']); 232 break; 233 } 234 } 235 236 } 237 ?> 238 </td> 239 <td> 240 <?php 241 $asignaturas = consulta($sql,$conn); 242 while($row = siguiente($asignaturas)) 243 { 244 $horario = split(" ", $row['horario']); 245 for($i = 0; $i < count($horario); $i+=2) 246 { 247 if($horario[$i] == 'Viernes') 248 if($horario[$i+1] == "10") 249 { 250 echo tohtml($row['nombre']); 251 break; 252 } 253 } 254 255 } 256 ?> 257 </td> 258 </tr> 259 <tr class="recreo"> 260 <th scope="row">11:00-11:30</th> 261 <td>Recreo</td> 262 <td>Recreo</td> 263 <td>Recreo</td> 264 <td>Recreo</td> 265 <td>Recreo</td> 266 </tr> 267 <tr> 268 <th scope="row">11:30-12:30</th> 269 <td> 270 <?php 271 $asignaturas = consulta($sql,$conn); 272 while($row = siguiente($asignaturas)) 273 { 274 $horario = split(" ", $row['horario']); 275 for($i = 0; $i < count($horario); $i+=2) 276 { 277 if($horario[$i] == 'Lunes') 278 if($horario[$i+1] == "11") 279 { 280 echo tohtml($row['nombre']); 281 break; 282 } 283 } 284 285 } 286 ?> </td> 287 <td> 288 <?php 289 $asignaturas = consulta($sql,$conn); 290 while($row = siguiente($asignaturas)) 291 { 292 $horario = split(" ", $row['horario']); 293 for($i = 0; $i < count($horario); $i+=2) 294 { 295 if($horario[$i] == 'Martes') 296 if($horario[$i+1] == "11") 297 { 298 echo tohtml($row['nombre']); 299 break; 300 } 301 } 302 303 } 304 ?> </td> 305 <td> 306 <?php
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 178
307 $asignaturas = consulta($sql,$conn); 308 while($row = siguiente($asignaturas)) 309 { 310 $horario = split(" ", $row['horario']); 311 for($i = 0; $i < count($horario); $i+=2) 312 { 313 if($horario[$i] == 'Miércoles') 314 if($horario[$i+1] == "11") 315 { 316 echo tohtml($row['nombre']); 317 break; 318 } 319 } 320 321 } 322 ?> </td> 323 <td> 324 <?php 325 $asignaturas = consulta($sql,$conn); 326 while($row = siguiente($asignaturas)) 327 { 328 $horario = split(" ", $row['horario']); 329 for($i = 0; $i < count($horario); $i+=2) 330 { 331 if($horario[$i] == 'Jueves') 332 if($horario[$i+1] == "11") 333 { 334 echo tohtml($row['nombre']); 335 break; 336 } 337 } 338 339 } 340 ?> 341 </td> 342 <td> 343 <?php 344 $asignaturas = consulta($sql,$conn); 345 while($row = siguiente($asignaturas)) 346 { 347 $horario = split(" ", $row['horario']); 348 for($i = 0; $i < count($horario); $i+=2) 349 { 350 if($horario[$i] == 'Viernes') 351 if($horario[$i+1] == "11") 352 { 353 echo tohtml($row['nombre']); 354 break; 355 } 356 } 357 358 } 359 ?> 360 </td> 361 </tr> 362 <tr class="comida"> 363 <th scope="row">12:30-15:00</th> 364 <td>Comida</td> 365 <td>Comida</td> 366 <td>Comida</td> 367 <td>Comida</td> 368 <td>Comida</td> 369 </tr> 370 <tr> 371 <th scope="row">15:00-16:00</th> 372 <td> 373 <?php 374 $asignaturas = consulta($sql,$conn); 375 while($row = siguiente($asignaturas)) 376 { 377 $horario = split(" ", $row['horario']); 378 for($i = 0; $i < count($horario); $i+=2) 379 { 380 if($horario[$i] == 'Lunes') 381 if($horario[$i+1] == "15") 382 { 383 echo tohtml($row['nombre']);
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 179
384 break; 385 } 386 } 387 388 } 389 ?> </td> 390 <td> 391 <?php 392 $asignaturas = consulta($sql,$conn); 393 while($row = siguiente($asignaturas)) 394 { 395 $horario = split(" ", $row['horario']); 396 for($i = 0; $i < count($horario); $i+=2) 397 { 398 if($horario[$i] == 'Martes') 399 if($horario[$i+1] == "15") 400 { 401 echo tohtml($row['nombre']); 402 break; 403 } 404 } 405 406 } 407 ?> </td> 408 <td> 409 <?php 410 $asignaturas = consulta($sql,$conn); 411 while($row = siguiente($asignaturas)) 412 { 413 $horario = split(" ", $row['horario']); 414 for($i = 0; $i < count($horario); $i+=2) 415 { 416 if($horario[$i] == 'Miércoles') 417 if($horario[$i+1] == "15") 418 { 419 echo tohtml($row['nombre']); 420 break; 421 } 422 } 423 424 } 425 ?> </td> 426 <td> 427 <?php 428 $asignaturas = consulta($sql,$conn); 429 while($row = siguiente($asignaturas)) 430 { 431 $horario = split(" ", $row['horario']); 432 for($i = 0; $i < count($horario); $i+=2) 433 { 434 if($horario[$i] == 'Jueves') 435 if($horario[$i+1] == "15") 436 { 437 echo tohtml($row['nombre']); 438 break; 439 } 440 } 441 442 } 443 ?> 444 </td> 445 <td> 446 <?php 447 $asignaturas = consulta($sql,$conn); 448 while($row = siguiente($asignaturas)) 449 { 450 $horario = split(" ", $row['horario']); 451 for($i = 0; $i < count($horario); $i+=2) 452 { 453 if($horario[$i] == 'Viernes') 454 if($horario[$i+1] == "15") 455 { 456 echo tohtml($row['nombre']); 457 break; 458 } 459 } 460
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 180
461 } 462 ?> 463 </td> 464 </tr> 465 <tr> 466 <th scope="row">16:00-17:00</th> 467 <td> 468 <?php 469 $asignaturas = consulta($sql,$conn); 470 while($row = siguiente($asignaturas)) 471 { 472 $horario = split(" ", $row['horario']); 473 for($i = 0; $i < count($horario); $i+=2) 474 { 475 if($horario[$i] == 'Lunes') 476 if($horario[$i+1] == "16") 477 { 478 echo tohtml($row['nombre']); 479 break; 480 } 481 } 482 483 } 484 ?> </td> 485 <td> 486 <?php 487 $asignaturas = consulta($sql,$conn); 488 while($row = siguiente($asignaturas)) 489 { 490 $horario = split(" ", $row['horario']); 491 for($i = 0; $i < count($horario); $i+=2) 492 { 493 if($horario[$i] == 'Martes') 494 if($horario[$i+1] == "16") 495 { 496 echo tohtml($row['nombre']); 497 break; 498 } 499 } 500 501 } 502 ?> </td> 503 <td> 504 <?php 505 $asignaturas = consulta($sql,$conn); 506 while($row = siguiente($asignaturas)) 507 { 508 $horario = split(" ", $row['horario']); 509 for($i = 0; $i < count($horario); $i+=2) 510 { 511 if($horario[$i] == 'Miércoles') 512 if($horario[$i+1] == "16") 513 { 514 echo tohtml($row['nombre']); 515 break; 516 } 517 } 518 519 } 520 ?></td> 521 <td> 522 <?php 523 $asignaturas = consulta($sql,$conn); 524 while($row = siguiente($asignaturas)) 525 { 526 $horario = split(" ", $row['horario']); 527 for($i = 0; $i < count($horario); $i+=2) 528 { 529 if($horario[$i] == 'Jueves') 530 if($horario[$i+1] == "16") 531 { 532 echo tohtml($row['nombre']); 533 break; 534 } 535 } 536 537 }
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 181
538 ?> 539 </td> 540 <td> 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> </p></td> 563 <td class="general"> </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ó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>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 182
Alumno_alumnos.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 6 require_once ("Alumno_inc.php"); 7 ?> 8 9 10 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 11 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 12 <html xmlns="http://www.w3.org/1999/xhtml"> 13 <head> 14 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 15 <title>CP Emilio Lluch</title> 16 <link href="css/general.css" rel="stylesheet" type="text/css" /> 17 18 <script type="text/javascript" src="./js/fecha.js"> </script> 19 20 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 21 </head> 22 23 <body onload="javascript:displayTime();"> 24 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 25 <tr> 26 <td width="150" class="logo"> </td> 27 <td colspan="2" class="titulo"> </td> 28 </tr> 29 <tr> 30 <td class="fecha"> </td> 31 <td colspan="2" class="fecha"><div id="campoHora"> </div></td> 32 </tr> 33 <tr> 34 <td class="menu"> 35 <ul> 36 <li><a href="intranetAlumno.php">Inicio</a></li> 37 <li><a href="Alumno_horario.php">Horario</a></li> 38 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 39 <li><a href="Alumno_profes.php">Listado profesores </a></li> 40 <li><a href="Alumno_notas.php">Notas</a></li> 41 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 42 <li><a href="Alumno_menu.php">Menú semanal </a></li> 43 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 44 <li><a href="Alumno_tablon.php">Tablón de anuncios </a></li> 45 </ul> </td> 46 <td class="general"><h1>Listado de alumnos </h1> 47 <?php 48 poner_datos_grupo(); 49 ?> 50 51 52 <table width="100%" border="1"> 53 <tr> 54 <th scope="col">Nombre</th> 55 <th scope="col">Dirección</th> 56 <th scope="col">Población</th> 57 <th scope="col">Teléfono</th> 58 </tr> 59 60 <?php 61 rellenar_tabla_alumnos(); 62 ?> 63 64 </table> <p> </p></td> 65 <td class="general"> </td> 66 </tr> 67 <tr> 68 <td> 69 <p> 70 <?php 71 bienvenido(); 72 ?> 73 <br><a href="cerrar_sesion_Alumno.php">Cerrar sesión</a>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 183
74 </p> 75 </td> 76 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 77 <p> 78 <?php 79 80 rellenar_eventos_curso(); 81 ?> 82 </p></td> 83 </tr> 84 </table> 85 </body> 86 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 184
Alumno_profes.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 require_once ("Alumno_inc.php"); 6 ?> 7 8 9 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 10 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 11 <html xmlns="http://www.w3.org/1999/xhtml"> 12 <head> 13 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 14 <title>CP Emilio Lluch</title> 15 <link href="css/general.css" rel="stylesheet" type="text/css" /> 16 17 <script type="text/javascript" src="./js/fecha.js"> </script> 18 19 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 20 </head> 21 22 <body onload="javascript:displayTime();"> 23 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 24 <tr> 25 <td style="width: 150px;" class="logo"> </td> 26 <td colspan="2" class="titulo"> </td> 27 </tr> 28 <tr> 29 <td class="fecha"> </td> 30 <td colspan="2" class="fecha"><div id="campoHora"> </div></td> 31 </tr> 32 <tr> 33 <td class="menu"> 34 <ul> 35 <li><a href="intranetAlumno.php">Inicio</a></li> 36 <li><a href="Alumno_horario.php">Horario</a></li> 37 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 38 <li><a href="Alumno_profes.php">Listado profesores </a></li> 39 <li><a href="Alumno_notas.php">Notas</a></li> 40 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 41 <li><a href="Alumno_menu.php">Menú semanal </a></li> 42 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 43 <li><a href="Alumno_tablon.php">Tablón de anuncios </a></li> 44 </ul> </td> 45 <td class="general"><h1>Listado de profesores </h1> 46 <p> </p> 47 <?php 48 poner_datos_grupo() 49 ?> 50 51 52 <table width="100%" border="1"> 53 <tr> 54 <th scope="col">Asignatura</th> 55 <th scope="col">Profesor</th> 56 <th scope="col">Tutorias</th> 57 <th scope="col">E-mail</th> 58 </tr> 59 60 <?php 61 rellenar_tabla_profesores(); 62 ?> 63 64 </table></td> 65 <td class="general"> </td> 66 </tr> 67 <tr> 68 <td> 69 <p> 70 <?php 71 bienvenido(); 72 ?> 73 <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesión</a>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 185
74 </p> 75 </td> 76 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 77 78 <?php 79 rellenar_eventos_curso() 80 ?> 81 </td> 82 </tr> 83 </table> 84 </body> 85 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 186
Alumno_notas.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 require_once ("Alumno_inc.php"); 6 ?> 7 8 9 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 10 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 11 <html xmlns="http://www.w3.org/1999/xhtml"> 12 <head> 13 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 14 <title>CP Emilio Lluch</title> 15 <link href="css/general.css" rel="stylesheet" type="text/css" /> 16 17 <script type="text/javascript" src="./js/fecha.js"> </script> 18 19 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 20 </head> 21 22 <body onload="javascript:displayTime();"> 23 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 24 <tr> 25 <td style="width: 150px;" class="logo"> </td> 26 <td colspan="2" class="titulo"> </td> 27 </tr> 28 <tr> 29 <td class="fecha"> </td> 30 <td colspan="2" class="fecha"><div id="campoHora"> </div></td> 31 </tr> 32 <tr> 33 <td class="menu"> 34 <ul> 35 <li><a href="intranetAlumno.php">Inicio</a></li> 36 <li><a href="Alumno_horario.php">Horario</a></li> 37 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 38 <li><a href="Alumno_profes.php">Listado profesores </a></li> 39 <li><a href="Alumno_notas.php">Notas</a></li> 40 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 41 <li><a href="Alumno_menu.php">Menú semanal </a></li> 42 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 43 <li><a href="Alumno_tablon.php">Tablón de anuncios </a></li> 44 </ul> </td> 45 <td class="general"><h1>Notas</h1> 46 <?php 47 curso_actual(); 48 ?> 49 <table width="100%" border="1"> 50 <tr> 51 <th scope="col">Asignatura</th> 52 <th scope="col">1</th> 53 <th scope="col">2</th> 54 <th scope="col">3</th> 55 </tr> 56 <?php 57 rellenar_tabla_notas(); 58 ?> 59 </table> <p> </p></td> 60 <td class="general"> </td> 61 </tr> 62 <tr> 63 <td> 64 <p> 65 <?php 66 bienvenido(); 67 ?> 68 <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesión</a> 69 </p> 70 </td> 71 <td colspan="2" class="noticias"><p style=' font-weight: bold;'>Eventos 72 del curso </p> 73
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 187
74 <?php 75 76 rellenar_eventos_curso() 77 ?> 78 </td> 79 </tr> 80 </table> 81 </body> 82 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 188
Alumno_faltas.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 6 require_once ("Alumno_inc.php"); 7 ?> 8 9 10 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 11 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 12 <html xmlns="http://www.w3.org/1999/xhtml"> 13 <head> 14 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 15 <title>CP Emilio Lluch</title> 16 <link href="css/general.css" rel="stylesheet" type="text/css" /> 17 18 <script type="text/javascript" src="./js/fecha.js"> </script> 19 20 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 21 </head> 22 23 <body onload="javascript:displayTime();"> 24 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 25 <tr> 26 <td style="width: 150px;" class="logo"> </td> 27 <td colspan="2" class="titulo"> </td> 28 </tr> 29 <tr> 30 <td class="fecha"> </td> 31 <td colspan="2" class="fecha"><div id="campoHora"> </div></td> 32 </tr> 33 <tr> 34 <td class="menu"> 35 <ul> 36 <li><a href="intranetAlumno.php">Inicio</a></li> 37 <li><a href="Alumno_horario.php">Horario</a></li> 38 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 39 <li><a href="Alumno_profes.php">Listado profesores </a></li> 40 <li><a href="Alumno_notas.php">Notas</a></li> 41 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 42 <li><a href="Alumno_menu.php">Menú semanal </a></li> 43 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 44 <li><a href="Alumno_tablon.php">Tablón de anuncios </a></li> 45 </ul> </td> 46 <td class="general"><h1>Faltas de asistencia </h1> 47 48 <?php 49 rellenar_tabla_faltas(); 50 ?> 51 52 <p> </p></td> 53 <td class="general"> </td> 54 </tr> 55 <tr> 56 <td> 57 <p> 58 <?php 59 60 bienvenido(); 61 ?> 62 <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesión</a> 63 </p> 64 </td> 65 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 66 67 <?php 68 rellenar_eventos_curso(); 69 ?> 70 </td> 71 </tr> 72 </table> 73 </body>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 189
74 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 190
Alumno_menu.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 require_once ("Alumno_inc.php"); 6 ?> 7 8 9 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 10 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 11 <html xmlns="http://www.w3.org/1999/xhtml"> 12 <head> 13 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 14 <title>CP Emilio Lluch</title> 15 <link href="css/general.css" rel="stylesheet" type="text/css" /> 16 17 <script type="text/javascript" src="./js/fecha.js"> </script> 18 19 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 20 </head> 21 22 <body onload="javascript:displayTime();"> 23 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 24 <tr> 25 <td style="width: 150px;" class="logo"> </td> 26 <td colspan="2" class="titulo"> </td> 27 </tr> 28 <tr> 29 <td class="fecha"> </td> 30 <td colspan="2" class="fecha"><div id="campoHora"> </div></td> 31 </tr> 32 <tr> 33 <td class="menu"> 34 <ul> 35 <li><a href="intranetAlumno.php">Inicio</a></li> 36 <li><a href="Alumno_horario.php">Horario</a></li> 37 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 38 <li><a href="Alumno_profes.php">Listado profesores </a></li> 39 <li><a href="Alumno_notas.php">Notas</a></li> 40 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 41 <li><a href="Alumno_menu.php">Menú semanal </a></li> 42 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 43 <li><a href="Alumno_tablon.php">Tablón de anuncios </a></li> 44 </ul> </td> 45 <td class="general"><h1>Menú semanal </h1> 46 <p><img src="img/menuJunio1.jpg" alt="menu" width="600" height="511" 47 longdesc="Menu del comedor del mes de junio" /></p></td> 48 <td class="general"> </td> 49 </tr> 50 <tr> 51 <td> 52 <p> 53 <?php 54 bienvenido(); 55 ?> 56 <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesión</a> 57 </p> </td> 58 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 59 60 <?php 61 rellenar_eventos_curso(); 62 ?> 63 </td> 64 </tr> 65 </table> 66 </body> 67 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 191
Alumno_instalaciones.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 6 require_once ("Alumno_inc.php"); 7 ?> 8 9 10 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 11 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 12 <html xmlns="http://www.w3.org/1999/xhtml"> 13 <head> 14 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 15 <title>CP Emilio Lluch</title> 16 <link href="css/general.css" rel="stylesheet" type="text/css" /> 17 18 <script type="text/javascript" src="./js/fecha.js"> </script> 19 <script type="text/javascript" src="./js/reservas.js"> </script> 20 21 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 22 </head> 23 24 <body onload="javascript:displayTime();"> 25 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 26 <tr> 27 <td style="width: 150px;" class="logo"> </td> 28 <td colspan="2" class="titulo"> </td> 29 </tr> 30 <tr> 31 <td class="fecha"> </td> 32 <td colspan="2" class="fecha"> 33 <div id="campoHora"> </div> 34 </td> 35 </tr> 36 <tr> 37 <td class="menu"> 38 <ul> 39 <li><a href="intranetAlumno.php">Inicio</a></li> 40 <li><a href="Alumno_horario.php">Horario</a></li> 41 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 42 <li><a href="Alumno_profes.php">Listado profesores </a></li> 43 <li><a href="Alumno_notas.php">Notas</a></li> 44 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 45 <li><a href="Alumno_menu.php">Menú semanal </a></li> 46 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 47 <li><a href="Alumno_tablon">Tablón de anuncios </a></li> 48 </ul> 49 </td> 50 <td class="general"> 51 <p>Reserva de instalaciones</p> 52 <h3>Instalaciones Reservadas</h3> 53 <table border='1'> 54 <tbody> 55 <?php 56 $ins = listado_reservas_instalaciones(); 57 if ($ins == null) 58 { 59 echo "<tr><td><b>No hay instalaciones reservadas</b></td>< 60 /tr>\n"; 61 echo "</tbody>\n"; 62 } 63 else 64 { 65 echo "<tr>\n"; 66 echo " <th style='width: 140px;'>Instalación</th> 67 \n"; 68 echo " <th style='width: 100px;'>Fecha</th>\n"; 69 echo " <th style='width: 425px;'>Proposito</th>\n"; 70 echo " <th style='width: 90px;'>Normas</th>\n"; 71 echo " <th style='width: 80px;'> </th>\n"; 72 echo "</tr>\n"; 73 echo "</tbody>\n";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 192
74 foreach ($ins as $actual) 75 { 76 $temp = convertir_fecha($actual["fecha"]); 77 $fecha = $fecha = split(" ",$temp); 78 echo "<tr>\n"; 79 echo "<td>" . tohtml($actual["instalacion"]) . "</td> 80 \n"; 81 echo "<td>" . $fecha[0] . "</td>\n"; 82 echo "<td>" . tohtml($actual["proposito"]) . "</td>\n"; 83 echo "<td><a href='" . $actual["normas"] . "'>Normativa< 84 /a></td>\n"; 85 echo "<td>\n"; 86 echo " <form method='get' 87 action='/webcole/Alumno_anular_reserva.php' 88 name='anular'> \n"; 89 echo " <div style='text-align: center;'> \n"; 90 echo " <button value='" . $actual["idinst"] . 91 "' name='iditem' onclick='javascript:enviar();'>Anular< 92 /button> \n"; 93 echo " </div> \n"; 94 echo " <input name='fecha' type='hidden' value='" . 95 urlencode($actual["fecha"]) . "'> \n"; 96 echo " <input name='item' type='hidden' value='" . 97 INST . "'> \n"; 98 echo " </form> \n"; 99 echo "</td>\n"; 100 echo "</tr>\n"; 101 } 102 } 103 ?> 104 105 </table> 106 <br/> 107 108 109 <a href="/webcole/Alumno_reservar_instalacion.php">Reservar 110 instalación</a></td> 111 <td class="general"> </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ó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>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 193
Alumno_reserva.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 6 require_once ("Alumno_inc.php"); 7 ?> 8 <?php 9 //obtener datos enviados por el formulario 10 $dia = $_REQUEST["dia"]; 11 $mes = $_REQUEST["mes"]; 12 $anyo = $_REQUEST["anyo"]; 13 $iditem = $_REQUEST["iditem"]; 14 $motivo = substr($_REQUEST["motivo"], 0, MAX_LENGTH_MOTIVO-1); 15 $item = $_REQUEST["item"]; 16 $login = $_SESSION["id"]; 17 18 19 //por si en futuro al reservar se tiene en cuenta la hora(de inicio) 20 $hora = 00; 21 $min = 00; 22 $seg = 00; 23 24 $error = ""; 25 $ano_hoy=date("Y"); 26 27 //¿Estan definadas las variables? 28 if (!isset($dia) || $dia < 0 || $dia > 31) 29 { 30 $error = "Día no válido<br>\n"; 31 } 32 33 if (!isset($mes) || $mes < 1 || $mes > 12 ) 34 { 35 $error .= "Mes no válido<br>\n"; 36 } 37 //solo reservas en este año 38 if ( !isset($anyo) || $anyo != $ano_hoy ) 39 { 40 $error .= "Año no válido<br>\n"; 41 } 42 43 if (!isset($iditem) || $iditem ==-1 ) 44 { 45 $error .= "Instalación no válida<br>\n"; 46 } 47 48 if (!isset($motivo) || strlen($motivo) < 5 ) 49 { 50 $error .= "Motivo insuficiente<br>\n"; 51 } 52 $item1 = INST; 53 54 if (!isset($item) && (strcmp($item,$item1) != 0 )) 55 { 56 $error .= "Tipo desconocido: $item : <br>\n"; 57 } 58 59 if (strlen($error) > 1) 60 { 61 $es_valido = false; 62 } 63 else 64 { 65 $es_valido = true; 66 $res = reservar_instalacion($login,$iditem,$dia,$mes,$anyo,$hora,$min, 67 $seg,$motivo, $item); 68 69 if (!$res) 70 { 71 $es_valido = false; 72 $error = "Se produjo un error inesperado en la reserva de la 73 instalación<br>\n";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 194
74 } 75 } 76 77 78 79 80 ?> 81 82 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 83 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 84 <html xmlns="http://www.w3.org/1999/xhtml"> 85 <head> 86 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 87 <?php 88 //Ruta de retorno que utilizaremos aqui si todo fue bien 89 if ( $es_valido ) 90 { 91 echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; 92 URL=/webcole/Alumno_instalaciones.php\">\n"; 93 } 94 95 ?> 96 97 <title>CP Emilio Lluch</title> 98 <link href="css/general.css" rel="stylesheet" type="text/css" /> 99 100 <script type="text/javascript" src="./js/fecha.js"> </script> 101 102 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 103 </head> 104 105 <body onload="javascript:displayTime(); redirigir();"> 106 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 107 <tr> 108 <td width="150" class="logo"> </td> 109 <td colspan="2" class="titulo"> </td> 110 </tr> 111 <tr> 112 <td class="fecha"> </td> 113 <td colspan="2" class="fecha"> 114 <div id="campoHora"> </div> 115 </td> 116 </tr> 117 <tr> 118 <td class="menu"> 119 <ul> 120 <li><a href="intranetAlumno.php">Inicio</a></li> 121 <li><a href="Alumno_horario.php">Horario</a></li> 122 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 123 <li><a href="Alumno_profes.php">Listado profesores </a></li> 124 <li><a href="Alumno_notas.php">Notas</a></li> 125 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 126 <li><a href="Alumno_menu.php">Menú semanal </a></li> 127 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 128 <li><a href="Alumno_tablon">Tablón de anuncios </a></li> 129 </ul> 130 </td> 131 <td class="general"><?php 132 //Ruta de retorno que utilizaremos aqui si todo fue bien 133 134 echo "Se han producido los siguientes errores: <br> $error<br>\n"; 135 echo "<br>\n"; 136 echo "Pulsa <a href='/webcole/Alumno_reservar_instalacion.php'>aquí< 137 /a> para volver al formulario de reserva<br>\n"; 138 139 ?></td> 140 <td class="general"> </td> 141 </tr> 142 <tr> 143 <td> 144 <p><?php 145 146 //include("bd.php"); 147 $dp = Conectar(); 148 $sql = 'SELECT * FROM usuario WHERE login ="' . $_SESSION["id"] . 149 '"'; 150 $resultado = consulta($sql, $dp);
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 195
151 while($row = siguiente($resultado)) 152 echo 'Bienvenido ' . $row['nombre']; 153 154 desconectar($dp); 155 echo "<br>\n<a href='/webcole/cerrar_sesion.php'>Cerrar sesió 156 n</a>"; 157 ?> 158 <br><a href="cerrar_sesion_Alumno.php">Cerrar sesión</a> 159 </p> 160 </td> 161 <td colspan="2" class="noticias"></td> 162 </tr> 163 </table> 164 </body> 165 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 196
Alumno_reservar_instalacion.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 require_once "Alumno_inc.php"; 6 ?> 7 8 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. 9 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 10 <html xmlns="http://www.w3.org/1999/xhtml"> 11 <head> 12 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 13 14 <title>CP Emilio Lluch</title> 15 <link href="css/general.css" rel="stylesheet" type="text/css" /> 16 <link href="css/calendario.css" rel="stylesheet" type="text/css" /> 17 18 <script type="text/javascript" src="./js/fecha.js"> </script> 19 <script type="text/javascript" src="./js/reservas.js"> </script> 20 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 21 </head> 22 23 <body onload="javascript:displayTime();"> 24 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 25 <tr> 26 <td style="width: 150px;" class="logo"> </td> 27 <td colspan="2" class="titulo"> </td> 28 </tr> 29 <tr> 30 <td class="fecha"> </td> 31 <td colspan="2" class="fecha"> 32 <div id="campoHora"> </div> 33 </td> 34 </tr> 35 <tr> 36 <td class="menu"> 37 <ul> 38 <li><a href="intranetAlumno.php">Inicio</a></li> 39 <li><a href="Alumno_horario.php">Horario</a></li> 40 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 41 <li><a href="Alumno_profes.php">Listado profesores </a></li> 42 <li><a href="Alumno_notas.php">Notas</a></li> 43 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 44 <li><a href="Alumno_menu.php">Menú semanal </a></li> 45 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 46 <li><a href="Alumno_tablon">Tablón de anuncios </a></li> 47 </ul> 48 </td> 49 <td class="general">Intranet Alumno 50 <form method="get" action="/webcole/Alumno_reserva.php" 51 name="reservar"> 52 <?php 53 echo "<input type='hidden' name='item' value='" . INST . "' />\n"; 54 ?> 55 <table style="text-align: left; width: 700px; height: 284px;" 56 border="0" cellpadding="2" cellspacing="2"> 57 <tbody> 58 <tr> 59 <td style="width: 300px; text-align: right;"><span 60 style="font-weight: bold; text-align: right;"> 61 Selecciona una 62 instalación</span></td> 63 <td style="width: 400px; text-align: left;"><select 64 name="iditem" 65 onchange="javascript:redirigir('<?php echo ALUM; ?> 66 ', '<?php echo strtolower(INST); ?>');"> 67 <option value='-1'>Selecciona una instalació 68 n</option> 69 <?php 70 //Comprobamos si llegamos aqui despues de elegir 71 una instalacion 72 $iditem = $_REQUEST["iditem"]; 73
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 197
74 75 if (!isset($iditem)) 76 $iditem = -1; 77 78 $ins = listado_instalacion(); 79 foreach ($ins as $actual) 80 { 81 if ($actual["idinstalacion"] == $iditem) 82 { 83 echo "<option value='" . $actual[ 84 "idinstalacion"]. "' selected='selected'>" . 85 $actual["instalacion"] . "</option>\n"; 86 } 87 else 88 { 89 echo "<option value='" . $actual[ 90 "idinstalacion"]. "'>" . $actual[ 91 "instalacion"] . "</option>\n"; 92 } 93 } 94 ?> 95 </select></td> 96 </tr> 97 <tr> 98 <td style="width: 200px; text-align: right;"><span 99 style="font-weight: bold; ">Selecciona una fecha< 100 /span></td> 101 <td style="width: 400px;"><?php 102 require_once ("calendario_ins.php"); 103 104 //if (!$HTTP_POST_VARS && !$HTTP_GET_VARS){ 105 if ((!isset($_GET["nuevo_mes"])) || (!isset($_GET[ 106 "nuevo_mes"])) || (!isset($_GET["nuevo_mes"]))) 107 { 108 //echo "http no definidos<br>\n"; 109 $tiempo_actual = time(); 110 $mes = date("n", $tiempo_actual); 111 $ano = date("Y", $tiempo_actual); 112 $dia=date("d"); 113 $fecha=$ano . "-" . $mes . "-" . $dia; 114 }else { 115 //echo "http definidos<br>\n"; 116 $mes = $_GET["nuevo_mes"]; 117 $ano = $_GET["nuevo_ano"]; 118 $dia = $_GET["dia"]; 119 $fecha=$ano . "-" . $mes . "-" . $dia; 120 } 121 if (!isset($dia)) 122 { 123 $dia=date("d"); 124 } 125 if (!isset($mes)) 126 { 127 $mes = date("n", $tiempo_actual); 128 } 129 if (!isset($ano)) 130 { 131 $ano = date("Y", $tiempo_actual); 132 } 133 echo "<input type=\"hidden\" name=\"dia\" value=''/>\n"; 134 echo "<input type=\"hidden\" name='dia_c' value='$dia'/> 135 \n"; 136 echo "<input type=\"hidden\" name='mes' value='$mes'/> 137 \n"; 138 echo "<input type=\"hidden\" name='anyo' value='$ano'/> 139 \n"; 140 $tabla = fecha_reservas($iditem, INST); 141 if (!isset($tabla)) 142 { 143 //utilizamos una variable no inicializada 144 //mostrar_calendario tiene en cuenta si esa 145 variable 146 //no esta inicializada 147 mostrar_calendario($dia_c,$mes,$ano, 148 $variable_no_asignada, INST, ALUM); 149 } 150 else
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 198
151 { 152 mostrar_calendario($dia_c,$mes,$ano, $tabla, INST, 153 ALUM); 154 } 155 ?> 156 </td> 157 </tr> 158 159 <tr> 160 <td style="font-weight: bold; text-align: right;">Fecha 161 seleccionada</td> 162 <td><input readonly="readonly" maxlength="15" 163 name="fecha" /></td> 164 </tr> 165 <tr> 166 <td style="width: 200px;text-align: right;font-weight: 167 bold;"><label>Motivo</label> 168 <br /> 169 <i>(máximo 1500 cará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;"> </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"> </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ón</a> 203 </td> 204 <td colspan="2" class="noticias"></td> 205 </tr> 206 </table> 207 </body> 208 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 199
Alumno_tablon.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 require_once ("Alumno_inc.php"); 6 ?> 7 8 9 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 10 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 11 <html xmlns="http://www.w3.org/1999/xhtml"> 12 <head> 13 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 14 <title>CP Emilio Lluch</title> 15 <link href="css/general.css" rel="stylesheet" type="text/css" /> 16 17 <script type="text/javascript" src="./js/fecha.js"> </script> 18 19 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 20 </head> 21 22 <body onload="javascript:displayTime();"> 23 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 24 <tr> 25 <td style="width: 150px;" class="logo"> </td> 26 <td colspan="3" class="titulo"> </td> 27 </tr> 28 <tr> 29 <td class="fecha"> </td> 30 <td colspan="3" class="fecha"><div id="campoHora"> </div></td> 31 </tr> 32 <tr> 33 <td rowspan="5" class="menu"> 34 <ul> 35 <li><a href="intranetAlumno.php">Inicio</a></li> 36 <li><a href="Alumno_horario.php">Horario</a></li> 37 <li><a href="Alumno_alumnos.php">Listado alumnos </a></li> 38 <li><a href="Alumno_profes.php">Listado profesores </a></li> 39 <li><a href="Alumno_notas.php">Notas</a></li> 40 <li><a href="Alumno_faltas.php">Faltas asistencia </a></li> 41 <li><a href="Alumno_menu.php">Menú semanal </a></li> 42 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 43 <li><a href="Alumno_tablon.php">Tablón de anuncios </a></li> 44 </ul> </td> 45 <td colspan="2" class="general"><h1>Tablón de anuncios </h1> 46 <p> </p></td> 47 <td rowspan="5" class="general"> </td> 48 </tr> 49 <?php 50 poner_anuncios_tablon(); 51 ?> 52 53 <tr> 54 <td></td> 55 <td colspan="2" class="general"><h3>Insertar nuevo anuncio</h3> 56 <form id="form1" method="post" action="Alumno_tablon_insertar.php"> 57 <div> 58 <label> 59 Título 60 </label> 61 62 <br /> 63 <input type="text" name="titulo" /> 64 65 <p> 66 Texto 67 <br /> 68 <label> 69 <textarea name="texto" cols="60" rows="3"></textarea> 70 </label> 71 </p> 72 73 <p>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 200
74 <label> 75 <input type="submit" name="Submit" value="Insertar" /> 76 </label> 77 </p> 78 </div> 79 </form> <p> </p></td> 80 <td class="general"></td> 81 </tr> 82 <tr> 83 <td> 84 <p> 85 <?php 86 bienvenido(); 87 ?> 88 <br/><a href="cerrar_sesion_Alumno.php">Cerrar sesión</a> 89 </p> </td> 90 <td colspan="3" class="noticias"><h3>Eventos del curso </h3> 91 92 <?php 93 94 rellenar_eventos_curso(); 95 ?> 96 </td> 97 </tr> 98 </table> 99 </body> 100 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 201
Alumno_tablon_insertar.php 1 <?php 2 3 session_start(); 4 if($_SESSION["tipo"] != "Alumno") 5 header("Location: prohibido.php"); 6 7 $titulo = $_POST["titulo"]; 8 $texto = $_POST["texto"]; 9 $fecha = date("Y-m-d H:i:s"); 10 11 include("bd.php"); 12 $conn = Conectar(); 13 $sql = "SELECT * FROM anuncio ORDER BY idanuncio DESC"; 14 $num = consulta($sql,$conn); 15 if($num = siguiente($num)) 16 $idanun= $num["idanuncio"] + 1; 17 else 18 $idanun = 1; 19 $sql = "INSERT INTO `anuncio` ( `idanuncio` , `login` , `fecha` , `titulo` , 20 `texto` ) VALUES ('".$idanun."', '".$_SESSION["id"]."', '".$fecha."', '". 21 $titulo."', '".$texto."')"; 22 $insert = consulta($sql,$conn); 23 //echo "id".$_SESSION["id"]."error: " . mysql_error($conn); 24 Desconectar($conn); 25 26 ?> 27 <head> 28 <meta http-equiv="refresh" content="3;URL=Alumno_tablon.php"> 29 </head> 30 31 Insertando...
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 202
Alumno_anular_reserva.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Alumno") 4 header("Location: prohibido.php"); 5 require_once "Alumno_inc.php"; 6 // 7 $fecha = urldecode($_REQUEST["fecha"]); 8 $iditem = $_REQUEST["iditem"]; 9 $login = $_SESSION["id"]; 10 $item = $_REQUEST["item"]; 11 $error = ""; 12 $es_valido = true; 13 14 if ( !isset($login)) 15 { 16 header("Location: /webcole/prohibido.php"); 17 $es_valido = false; 18 } 19 //ya estara en el formato de mysql, 20 //si no es correcto sencillamente no se borrara el registro. 21 if ( !isset($fecha)) 22 { 23 $error .="Error en la Fecha. No valida<br>\n"; 24 $es_valido = false; 25 } 26 if ( !isset($iditem) || $iditem < 1 ) 27 { 28 $error .="Error en el codigo de instalacion. No valido<br>\n"; 29 $es_valido = false; 30 } 31 32 if ($es_valido) 33 { 34 $resultado = anular_reserva($login, $fecha, $iditem, $item); 35 if (!$resultado) 36 { 37 $error = "Han ocurrido problemas durante la anulacion de la reserva 38 <br>\n"; 39 $es_valido = false; 40 } 41 } 42 else 43 { 44 $error = "Han ocurrido errores en los parametros de anulacion<br>\n" . 45 $error; 46 //echo $error; 47 $es_valido = false; 48 } 49 ?> 50 51 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 52 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 53 <html xmlns="http://www.w3.org/1999/xhtml"> 54 <head> 55 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 56 <?php 57 if ($es_valido) 58 echo "<meta http-equiv=\"refresh\" content=\"5;URL=Alumno_instalaciones. 59 php\" />\n"; 60 ?> 61 <title>CP Emilio Lluch</title> 62 <link href="css/general.css" rel="stylesheet" type="text/css" /> 63 64 <script type="text/javascript" src="./js/fecha.js"> </script> 65 66 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 67 </head> 68 69 <body onload="javascript:displayTime();"> 70 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 71 <tr> 72 <td width="150" class="logo"> </td> 73 <td colspan="2" class="titulo"> </td>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 203
74 </tr> 75 <tr> 76 <td class="fecha"> </td> 77 <td colspan="2" class="fecha"> 78 <div id="campoHora"> </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ú semanal </a></li> 91 <li><a href="Alumno_instalaciones.php">Instalaciones</a></li> 92 <li><a href="Alumno_tablon">Tabló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ás a la página de 101 instalaciones. Si no pulsa"; 102 echo "<a href=\"/webcole/Alumno_instalaciones.php\"> aquí 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í</a> para regresar a la página de reservas</p> 113 \n"; 114 } 115 ?></p> 116 117 </td> 118 <td class="general"> </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ón</a> 134 </p> 135 </td> 136 <td colspan="2" class="noticias"></td> 137 </tr> 138 </table> 139 </body> 140 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 204
calendario_faltas.php 1 <?php 2 include_once("bd.php"); 3 4 function calcula_numero_dia_semana($dia,$mes,$ano){ 5 $numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano)); 6 if ($numerodiasemana == 0) 7 $numerodiasemana = 6; 8 else 9 $numerodiasemana--; 10 return $numerodiasemana; 11 } 12 13 //funcion que devuelve el último día de un mes y año dados 14 function ultimoDia($mes,$ano){ 15 $ultimo_dia=28; 16 while (checkdate($mes,$ultimo_dia + 1,$ano)){ 17 $ultimo_dia++; 18 } 19 return $ultimo_dia; 20 } 21 22 function dame_nombre_mes($mes){ 23 switch ($mes){ 24 case 1: 25 $nombre_mes="Enero"; 26 break; 27 case 2: 28 $nombre_mes="Febrero"; 29 break; 30 case 3: 31 $nombre_mes="Marzo"; 32 break; 33 case 4: 34 $nombre_mes="Abril"; 35 break; 36 case 5: 37 $nombre_mes="Mayo"; 38 break; 39 case 6: 40 $nombre_mes="Junio"; 41 break; 42 case 7: 43 $nombre_mes="Julio"; 44 break; 45 case 8: 46 $nombre_mes="Agosto"; 47 break; 48 case 9: 49 $nombre_mes="Septiembre"; 50 break; 51 case 10: 52 $nombre_mes="Octubre"; 53 break; 54 case 11: 55 $nombre_mes="Noviembre"; 56 break; 57 case 12: 58 $nombre_mes="Diciembre"; 59 break; 60 } 61 return $nombre_mes; 62 } 63 64 //Muestra el calendario, puede recibir una tablas con fechas 65 //en que una instalacion ha sido reservada, en este caso marcar dichas 66 //fechas en el calencia 67 function mostrar_calendario($dia,$mes,$ano){ 68 $mes_hoy=date("m"); 69 $ano_hoy=date("Y"); 70 71 $parametros_formulario = "formulario=" . $_GET["formulario"] . "&nomcampo=" 72 . $_GET["nomcampo"]; 73
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 205
74 75 //obtenemos 76 77 if (($mes_hoy <> $mes) || ($ano_hoy <> $ano)) 78 { 79 $hoy=0; 80 } 81 else 82 { 83 $hoy=date("d"); 84 } 85 //tomo el nombre del mes que hay que imprimir 86 $nombre_mes = dame_nombre_mes($mes); 87 88 //construyo la cabecera de la tabla 89 echo "<table width='200px' cellspacing='3' cellpadding='2' border='0'>< 90 tr><td colspan='7' align='center' class='tit'>"; 91 echo "<table width='100%' cellspacing='2' cellpadding='2' border='0'>< 92 tr><td style='font-size:10pt;font-weight:bold;color:white'>"; 93 //calculo el mes y ano del mes anterior 94 $mes_anterior = $mes - 1; 95 $ano_anterior = $ano; 96 if ($mes_anterior==0){ 97 $ano_anterior--; 98 $mes_anterior=12; 99 } 100 echo "<a style='color:white;text-decoration:none' 101 href='calendario_faltas.php?$parametros_formulario&dia=$dia& 102 nuevo_mes=$mes_anterior&nuevo_ano=$ano_anterior'><<</a></td>"; 103 echo "<td align=center class=tit>$nombre_mes $ano</td>"; 104 echo "<td align=right style=font-size:10pt;font-weight:bold;color: 105 white>"; 106 //calculo el mes y ano del mes siguiente 107 $mes_siguiente = $mes + 1; 108 $ano_siguiente = $ano; 109 if ($mes_siguiente==13){ 110 $ano_siguiente++; 111 $mes_siguiente=01; 112 } 113 echo "<a style='color:white;text-decoration:none' 114 href='calendario_faltas.php?$parametros_formulario&dia=$dia& 115 nuevo_mes=$mes_siguiente&nuevo_ano=$ano_siguiente'>>></a></td> 116 </tr></table></td></tr>"; 117 echo ' <tr> 118 <td style="width: 14%;text-align: center ;" class="altn">Lu< 119 /td> 120 <td style="width: 14%;text-align: center ;" class="altn">Ma< 121 /td> 122 <td style="width: 14%;text-align: center ;" class="altn">Mi< 123 /td> 124 <td style="width: 14%;text-align: center ;" class="altn">Ju< 125 /td> 126 <td style="width: 14%;text-align: center ;" class="altn">Vi< 127 /td> 128 <td style="width: 14%;text-align: center ;" class="altn">Sa< 129 /td> 130 <td style="width: 14%;text-align: center ;" class="altn">Do< 131 /td> 132 </tr>'; 133 134 //Variable para llevar la cuenta del dia actual 135 $dia_actual = 1; 136 137 //calculo el numero del dia de la semana del primer dia 138 $numero_dia = calcula_numero_dia_semana(1,$mes,$ano); 139 //echo "Numero del dia de demana del primer: $numero_dia <br>"; 140 141 //calculo el último dia del mes 142 $ultimo_dia = ultimoDia($mes,$ano); 143 144 $nodis = array(); 145 146 //comprobamos si la variable con las fechas reservadas esta 147 inicializada 148 if (isset($reservas)) 149 { 150 //eliminamos las reservas que nos son del actual anyo y mes
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 206
151 foreach ( $reservas as $actual) 152 { 153 if ( $actual["anyo"] == $ano && $actual["mes"] == $mes) 154 { 155 $nodis [] = $actual["dia"]; 156 } 157 } 158 } 159 160 //escribo la primera fila de la semana 161 echo "<tr>"; 162 for ($i=0;$i<7;$i++){ 163 if ($i < $numero_dia){ 164 //si el dia de la semana i es menor que el numero del primer 165 dia de la semana no pongo nada en la celda 166 echo "<td></td>"; 167 } else { 168 if (($i == 5) || ($i == 6)) 169 { 170 //comprobamos si esta fecha esta en la tabla de las 171 //fechas reservadas. 172 if (in_array($dia_actual, $nodis )) 173 { 174 echo "<td class='nd'>$dia_actual</td>\n"; 175 } 176 else if ($dia_actual == $hoy) 177 { 178 echo "<td class='da'>$dia_actual</td>\n"; 179 } 180 else if ($dia_actual == $dia) //Dia seleccionado 181 { 182 echo "<td class='da'>$dia_actual</td>\n"; 183 } 184 else 185 { 186 echo "<td class='da'>$dia_actual</td>\n"; 187 } 188 } 189 else 190 { 191 if (in_array($dia_actual, $nodis )) 192 { 193 echo "<td class='nd'>$dia_actual</td>\n"; 194 } 195 else if ($dia_actual == $hoy) 196 { 197 echo "<td class='laborable'><a href='javascript: 198 devuelveFecha($dia_actual,$mes,$ano)'>$dia_actual</a>< 199 /td>\n"; 200 } 201 else if ($dia_actual == $dia) //Dia seleccionado 202 { 203 echo "<td class='laborable'><a href='javascript: 204 devuelveFecha($dia_actual,$mes,$ano)'>$dia_actual</a>< 205 /td>\n"; 206 } 207 208 else 209 { 210 211 echo "<td class='laborable'><a href='javascript: 212 devuelveFecha($dia_actual,$mes,$ano)'>$dia_actual</a>< 213 /td>\n"; 214 215 } 216 217 218 } 219 $dia_actual++; 220 } 221 } 222 echo "</tr>"; 223 224 //recorro todos los demás días hasta el final del mes 225 $numero_dia = 0; 226 while ($dia_actual <= $ultimo_dia){ 227 //si estamos a principio de la semana escribo el <TR>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 207
228 if ($numero_dia == 0) 229 echo "<tr>"; 230 //si es el uñtimo de la semana, me pongo al principio de la semana 231 y escribo el </tr> 232 233 //De momento no se permite reservar una instalacion los 234 //fines de semana 235 if (($numero_dia == 5) || ($numero_dia == 6)) 236 { 237 if (in_array($dia_actual, $nodis )) 238 { 239 echo "<td class='nd'>$dia_actual</td>\n"; 240 } 241 else if ($dia_actual == $hoy) 242 { 243 //echo "<td class=da><a href=calendario. 244 php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> 245 $dia_actual</a></td>"; 246 echo "<td class='da'>$dia_actual</td>\n"; 247 } 248 else if ($dia_actual == $dia) //Dia seleccionado 249 { 250 //echo "<td class=da><a href=calendario. 251 php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> 252 $dia_actual</a></td>"; 253 echo "<td class='da'>$dia_actual</td>\n"; 254 } 255 else 256 { 257 //echo "<td class=fs ><a href=calendario. 258 php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> 259 $dia_actual</a></td>"; 260 echo "<td class='da'>$dia_actual</td>\n"; 261 } 262 } 263 else 264 { 265 if (in_array($dia_actual, $nodis )) 266 { 267 echo "<td class='nd'>$dia_actual</td>\n"; 268 } 269 else if ($dia_actual == $hoy) 270 { 271 echo "<td class='laborable' ><a href='javascript: 272 devuelveFecha($dia_actual,$mes,$ano)'>$dia_actual</a>< 273 /td>\n"; 274 } 275 else if ($dia_actual == $dia) //Dia seleccionado 276 { 277 echo "<td class='laborable' ><a href='javascript: 278 devuelveFecha($dia_actual,$mes,$ano)'>$dia_actual</a>< 279 /td>\n"; 280 } 281 282 else 283 { 284 285 echo "<td class='laborable' ><a href='javascript: 286 devuelveFecha($dia_actual,$mes,$ano)'>$dia_actual</a>< 287 /td>\n"; 288 289 } 290 291 } 292 293 $dia_actual++; 294 $numero_dia++; 295 if ($numero_dia == 7) 296 { 297 $numero_dia = 0; 298 echo "</tr>\n"; 299 } 300 301 } 302 303 //compruebo que celdas me faltan por escribir vacias de la última 304 semana del mes
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 208
305 for ($i=$numero_dia;$i<7;$i++){ 306 echo "<td></td>\n"; 307 } 308 309 echo "</tr>\n"; 310 echo "</table>\n"; 311 312 //echo "<input type='hidden' name='mes2' value='$mes' />\n"; 313 //echo "<input type='hidden' name='anyo2' value='$ano' />\n"; 314 } 315 316 if (!$HTTP_POST_VARS && !$HTTP_GET_VARS){ 317 $tiempo_actual = time(); 318 $mes = date("n", $tiempo_actual); 319 $ano = date("Y", $tiempo_actual); 320 $dia=date("d"); 321 $fecha=$ano . "-" . $mes . "-" . $dia; 322 }else { 323 $mes = $_GET["nuevo_mes"]; 324 $ano = $_GET["nuevo_ano"]; 325 $dia = $_GET["dia"]; 326 327 if ( !isset ($mes) || !isset ($ano) || !isset ($dia) ) 328 { 329 $tiempo_actual = time(); 330 $mes = date("n", $tiempo_actual); 331 $ano = date("Y", $tiempo_actual); 332 $dia=date("d"); 333 } 334 $fecha=$ano . "-" . $mes . "-" . $dia; 335 } 336 337 //echo"Fecha Seleccionada <input type=text name=fecha value=$fecha>"; 338 339 ?> 340 341 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 342 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 343 <html xmlns="http://www.w3.org/1999/xhtml"> 344 <head> 345 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 346 <title>CP Emilio Lluch</title> 347 <link href="css/general.css" rel="stylesheet" type="text/css" /> 348 <link href="css/calendario.css" rel="stylesheet" type="text/css" /> 349 350 <script type="text/javascript"> 351 function devuelveFecha(dia,mes,ano) 352 { 353 //Se encarga de escribir en el formulario adecuado los valores 354 seleccionados 355 //también debe cerrar la ventana del calendario 356 var formulario_destino = '<?echo $_GET["formulario"]?>'; 357 var campo_destino = '<?echo $_GET["nomcampo"]?>'; 358 359 //meto el dia 360 eval ("opener.document." + formulario_destino + "." + campo_destino + ". 361 value='" + dia + "-" + mes + "-" + ano + "'") 362 eval ("opener.document." + formulario_destino + "." + campo_destino + ". 363 focus()"); 364 window.close(); 365 } 366 </script> 367 </head> 368 369 <body> 370 <? mostrar_calendario($dia,$mes,$ano); ?> 371 </body> 372 </html> 373
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 209
calendario_ins.php 1 <?php 2 include_once("bd.php"); 3 4 function calcula_numero_dia_semana($dia,$mes,$ano){ 5 $numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano)); 6 if ($numerodiasemana == 0) 7 $numerodiasemana = 6; 8 else 9 $numerodiasemana--; 10 return $numerodiasemana; 11 } 12 13 //funcion que devuelve el último día de un mes y año dados 14 function ultimoDia($mes,$ano){ 15 $ultimo_dia=28; 16 while (checkdate($mes,$ultimo_dia + 1,$ano)){ 17 $ultimo_dia++; 18 } 19 return $ultimo_dia; 20 } 21 22 function dame_nombre_mes($mes){ 23 switch ($mes){ 24 case 1: 25 $nombre_mes="Enero"; 26 break; 27 case 2: 28 $nombre_mes="Febrero"; 29 break; 30 case 3: 31 $nombre_mes="Marzo"; 32 break; 33 case 4: 34 $nombre_mes="Abril"; 35 break; 36 case 5: 37 $nombre_mes="Mayo"; 38 break; 39 case 6: 40 $nombre_mes="Junio"; 41 break; 42 case 7: 43 $nombre_mes="Julio"; 44 break; 45 case 8: 46 $nombre_mes="Agosto"; 47 break; 48 case 9: 49 $nombre_mes="Septiembre"; 50 break; 51 case 10: 52 $nombre_mes="Octubre"; 53 break; 54 case 11: 55 $nombre_mes="Noviembre"; 56 break; 57 case 12: 58 $nombre_mes="Diciembre"; 59 break; 60 } 61 return $nombre_mes; 62 } 63 64 //Muestra el calendario, puede recibir una tablas con fechas 65 //en que una instalacion ha sido reservada, en este caso marcar dichas 66 //fechas en el calencia 67 function mostrar_calendario($dia,$mes,$ano, $reservas, $tipo, $usuario){ 68 $mes_hoy=date("m"); 69 $ano_hoy=date("Y"); 70 71 if (strcmp($tipo, INST) == 0 ) 72 { 73 $url= $usuario . "_reservar_instalacion.php";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 210
74 } 75 else //aqui solo puede llegar los profesores 76 { 77 $url="Profesor_reservar_equipacion.php"; 78 } 79 80 81 //obtenemos 82 83 if (($mes_hoy <> $mes) || ($ano_hoy <> $ano)) 84 { 85 $hoy=0; 86 } 87 else 88 { 89 $hoy=date("d"); 90 } 91 //tomo el nombre del mes que hay que imprimir 92 $nombre_mes = dame_nombre_mes($mes); 93 94 //construyo la cabecera de la tabla 95 echo "<table width=200 cellspacing=3 cellpadding=2 border=0><tr><td 96 colspan=7 align=center class=tit>"; 97 echo "<table width=100% cellspacing=2 cellpadding=2 border=0><tr><td 98 style=font-size:10pt;font-weight:bold;color:white>"; 99 //calculo el mes y ano del mes anterior 100 $mes_anterior = $mes - 1; 101 $ano_anterior = $ano; 102 if ($mes_anterior==0){ 103 $ano_anterior--; 104 $mes_anterior=12; 105 } 106 echo "<a style=color:white;text-decoration:none 107 href=$url?dia=$dia&nuevo_mes=$mes_anterior&nuevo_ano=$ano_anterior>< 108 <</a></td>"; 109 echo "<td align=center class=tit>$nombre_mes $ano</td>"; 110 echo "<td align=right style=font-size:10pt;font-weight:bold;color: 111 white>"; 112 //calculo el mes y ano del mes siguiente 113 $mes_siguiente = $mes + 1; 114 $ano_siguiente = $ano; 115 if ($mes_siguiente==13){ 116 $ano_siguiente++; 117 $mes_siguiente=01; 118 } 119 echo "<a style=color:white;text-decoration:none 120 href=$url?dia=$dia&nuevo_mes=$mes_siguiente&nuevo_ano=$ano_siguiente> 121 >></a></td></tr></table></td></tr>"; 122 echo ' <tr> 123 <td width=14% align=center class=altn>Lu</td> 124 <td width=14% align=center class=altn>Ma</td> 125 <td width=14% align=center class=altn>Mi</td> 126 <td width=14% align=center class=altn>Ju</td> 127 <td width=14% align=center class=altn>Vi</td> 128 <td width=14% align=center class=altn>Sa</td> 129 <td width=14% align=center class=altn>Do</td> 130 </tr>'; 131 132 //Variable para llevar la cuenta del dia actual 133 $dia_actual = 1; 134 135 //calculo el numero del dia de la semana del primer dia 136 $numero_dia = calcula_numero_dia_semana(1,$mes,$ano); 137 //echo "Numero del dia de demana del primer: $numero_dia <br>"; 138 139 //calculo el último dia del mes 140 $ultimo_dia = ultimoDia($mes,$ano); 141 142 $nodis = array(); 143 144 //comprobamos si la variable con las fechas reservadas esta 145 inicializada 146 if (isset($reservas)) 147 { 148 //eliminamos las reservas que nos son del actual anyo y mes 149 foreach ( $reservas as $actual) 150 {
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 211
151 if ( $actual["anyo"] == $ano && $actual["mes"] == $mes) 152 { 153 $nodis [] = $actual["dia"]; 154 } 155 } 156 } 157 158 //escribo la primera fila de la semana 159 echo "<tr>"; 160 for ($i=0;$i<7;$i++){ 161 if ($i < $numero_dia){ 162 //si el dia de la semana i es menor que el numero del primer 163 dia de la semana no pongo nada en la celda 164 echo "<td></td>"; 165 } else { 166 if (($i == 5) || ($i == 6)) 167 { 168 //comprobamos si esta fecha esta en la tabla de las 169 //fechas reservadas. 170 if (in_array($dia_actual, $nodis )) 171 { 172 echo "<td class=nd>$dia_actual</td>\n"; 173 } 174 else if ($dia_actual == $hoy) 175 { 176 echo "<td class=da>$dia_actual</td>\n"; 177 } 178 else if ($dia_actual == $dia) //Dia seleccionado 179 { 180 echo "<td class=da>$dia_actual</td>\n"; 181 } 182 else 183 { 184 echo "<td class=da>$dia_actual</td>\n"; 185 } 186 } 187 else 188 { 189 if (in_array($dia_actual, $nodis )) 190 { 191 echo "<td class=nd>$dia_actual</td>\n"; 192 } 193 else if ($dia_actual == $hoy) 194 { 195 echo "<td class=laborable><a href='javascript:cambiar( 196 $dia_actual);'>$dia_actual</a></td>\n"; 197 } 198 else if ($dia_actual == $dia) //Dia seleccionado 199 { 200 echo "<td class=laborable><a href='javascript:cambiar( 201 $dia_actual);'>$dia_actual</a></td>\n"; 202 } 203 204 else 205 { 206 207 echo "<td class=laborable><a href='javascript:cambiar( 208 $dia_actual);'>$dia_actual</a></td>\n"; 209 210 } 211 212 213 } 214 $dia_actual++; 215 } 216 } 217 echo "</tr>"; 218 219 //recorro todos los demás días hasta el final del mes 220 $numero_dia = 0; 221 while ($dia_actual <= $ultimo_dia){ 222 //si estamos a principio de la semana escribo el <TR> 223 if ($numero_dia == 0) 224 echo "<tr>"; 225 //si es el uñtimo de la semana, me pongo al principio de la semana 226 y escribo el </tr> 227
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 212
228 //De momento no se permite reservar una instalacion los 229 //fines de semana 230 if (($numero_dia == 5) || ($numero_dia == 6)) 231 { 232 if (in_array($dia_actual, $nodis )) 233 { 234 echo "<td class=nd>$dia_actual</td>\n"; 235 } 236 else if ($dia_actual == $hoy) 237 { 238 //echo "<td class=da><a href=calendario. 239 php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> 240 $dia_actual</a></td>"; 241 echo "<td class=da>$dia_actual</td>\n"; 242 } 243 else if ($dia_actual == $dia) //Dia seleccionado 244 { 245 //echo "<td class=da><a href=calendario. 246 php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> 247 $dia_actual</a></td>"; 248 echo "<td class=da>$dia_actual</td>\n"; 249 } 250 else 251 { 252 //echo "<td class=fs ><a href=calendario. 253 php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano> 254 $dia_actual</a></td>"; 255 echo "<td class=da>$dia_actual</td>\n"; 256 } 257 } 258 else 259 { 260 if (in_array($dia_actual, $nodis )) 261 { 262 echo "<td class=nd>$dia_actual</td>\n"; 263 } 264 else if ($dia_actual == $hoy) 265 { 266 echo "<td class=laborable ><a href='javascript:cambiar( 267 $dia_actual);'>$dia_actual</a></td>\n"; 268 } 269 else if ($dia_actual == $dia) //Dia seleccionado 270 { 271 echo "<td class=laborable ><a href='javascript:cambiar( 272 $dia_actual);'>$dia_actual</a></td>\n"; 273 } 274 275 else 276 { 277 278 echo "<td class=laborable ><a href='javascript:cambiar( 279 $dia_actual);'>$dia_actual</a></td>\n"; 280 281 } 282 283 } 284 285 $dia_actual++; 286 $numero_dia++; 287 if ($numero_dia == 7) 288 { 289 $numero_dia = 0; 290 echo "</tr>\n"; 291 } 292 293 } 294 295 //compruebo que celdas me faltan por escribir vacias de la última 296 semana del mes 297 for ($i=$numero_dia;$i<7;$i++){ 298 echo "<td></td>\n"; 299 } 300 301 echo "</tr>\n"; 302 echo "</table>\n"; 303 304 //echo "<input type='hidden' name='mes2' value='$mes' />\n";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 213
305 //echo "<input type='hidden' name='anyo2' value='$ano' />\n"; 306 }
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 214
profesor_inc.php 1 <?php 2 3 define (INST, "INSTALACION"); 4 define (EQUIP, "EQUIPACION"); 5 define (PROFE, "Profesor"); 6 define (TRIMESTRE, 4); 7 define (CLAVE_REPETIDA, 1062); 8 9 require_once "bd.php"; 10 11 12 session_start(); 13 if($_SESSION["tipo"] != "Profesor") 14 header("Location: prohibido.php"); 15 16 //el maximo de la longitud del motivo para reservar una instalacion 17 //o equipamiento. Solo habra que cambiarlo de aqui 18 //el maximo que podria soportar la tabla en mysql es de 65535 caracteres 19 define( MAX_LENGTH_MOTIVO, 1500); 20 21 //devuelve una tabla con el id de las instalaciones, 22 //el nombre de la instalacion y las normas 23 //Acceso: 24 // idinstalacion => id de la instalacion 25 // instalacion => nombre de la instalacion 26 // normas => ruta para llegar a las normas de la instalacion 27 // (no contiene las normas, apunta al fichero 28 // que las tiene) 29 function listado_instalacion() 30 { 31 $link = Conectar(); 32 $sql = "SELECT * FROM instalacion"; 33 34 //ejecutamos la consulta 35 $resultado = consulta ($sql, $link); 36 37 //sacamos los valores que nos interesan de los 38 //resultados (en este caso todos) 39 $i = 0; 40 while ($fila = siguiente($resultado)) 41 { 42 $tabla[$i]["idinstalacion"] = $fila["idinstalacion"]; 43 $tabla[$i]["instalacion"] = $fila["instalacion"]; 44 $tabla[$i++]["normas"] = $fila["normas"]; 45 } 46 47 Desconectar ($link); 48 return $tabla; 49 } 50 51 //devuelve una tabla con el id de las equipaciones, 52 //el nombre de la equipacion y las normas 53 //Acceso: 54 // idequipacion => id de la equipacion 55 // equipacion => nombre de la equipacion 56 // normas => ruta para llegar a las normas de la equipacion 57 // (no contiene las normas, apunta al fichero 58 // que las tiene) 59 function listado_equipacion() 60 { 61 $link = Conectar(); 62 $sql = "SELECT * FROM equipacion"; 63 64 //ejecutamos la consulta 65 $resultado = consulta ($sql, $link); 66 67 //sacamos los valores que nos interesan de los 68 //resultados (en este caso todos) 69 $i = 0; 70 while ($fila = siguiente($resultado)) 71 { 72 $tabla[$i]["idequipacion"] = $fila["idequipacion"]; 73 $tabla[$i]["equipacion"] = $fila["equipacion"];
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 215
74 $tabla[$i++]["normas"] = $fila["normas"]; 75 } 76 77 Desconectar ($link); 78 return $tabla; 79 } 80 81 //Devuelve una tabla con las reservas de instalaciones que 82 //ha efectuado el usuario. 83 //El usuario se obtiene de la sesion iniciada 84 //Acceso: 85 // idinst => id de la instalacion 86 // instalacion => nombre de la instalacion 87 // normas => ruta para llegar a las normas de la instalacion 88 // (no contiene las normas, apunta al fichero 89 // que las tiene) 90 // fecha => fecha de la reserva con formato "mm-dd-aa hh:mm:ss" 91 // proposito => Motivo de la reserva (introducido por el usuario 92 // cuando realiza la reserva. 93 function listado_reservas_instalaciones() 94 { 95 $link = Conectar(); 96 $sql = "SELECT * FROM res_ins WHERE login = '" . $_SESSION["id"] ."'"; 97 98 //ejecutamos la consulta 99 $resultado = consulta ($sql, $link); 100 101 //sacamos los valores que nos interesan de los 102 //resultados (en este caso todos) 103 $i = 0; 104 $tabla = null; 105 while ($fila = siguiente($resultado)) 106 { 107 $tabla[$i]["fecha"] = $fila["fecha"]; 108 //$tabla[$i]["fecha"] = $fila["fecha"]; 109 $tabla[$i]["proposito"] = $fila["proposito"]; 110 111 $sql_ins = "SELECT * FROM instalacion WHERE idinstalacion = '" . 112 $fila["idinstalacion"] . "'"; 113 $res_ins = consulta ($sql_ins, $link); 114 $ins = siguiente($res_ins); 115 if ($ins) 116 { 117 $tabla[$i]["idinst"] = $ins["idinstalacion"]; 118 $tabla[$i]["instalacion"] = $ins["instalacion"]; 119 $tabla[$i++]["normas"] = $ins["normas"]; 120 } 121 else 122 { 123 $tabla[$i]["idinst"] = -1; 124 $tabla[$i]["instalacion"] = "Instalacion desconocida"; 125 $tabla[$i++]["normas"] = "Normas no encontradas"; 126 } 127 } 128 129 Desconectar ($link); 130 return $tabla; 131 } 132 133 //Devuelve una tabla con las reservas de equipamientos que 134 //ha efectuado el usuario. 135 //El usuario se obtiene de la sesion iniciada 136 //Acceso: 137 // idequi => id de la equipacion 138 // equipacion => nombre de la equipacion 139 // normas => ruta para llegar a las normas de la equipacion 140 // (no contiene las normas, apunta al fichero 141 // que las tiene) 142 // fecha => fecha de la reserva con formato "mm-dd-aa hh:mm:ss" 143 // proposito => Motivo de la reserva (introducido por el usuario 144 // cuando realiza la reserva. 145 function listado_reservas_equipaciones() 146 { 147 $link = Conectar(); 148 $sql = "SELECT * FROM res_equi WHERE login = '" . $_SESSION["id"] ."'"; 149 150 //ejecutamos la consulta
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 216
151 $resultado = consulta ($sql, $link); 152 153 //sacamos los valores que nos interesan de los 154 //resultados (en este caso todos) 155 $i = 0; 156 $tabla = null; 157 while ($fila = siguiente($resultado)) 158 { 159 $tabla[$i]["fecha"] = $fila["fecha"]; 160 //$tabla[$i]["fecha"] = $fila["fecha"]; 161 $tabla[$i]["proposito"] = $fila["proposito"]; 162 163 $sql_ins = "SELECT * FROM equipacion WHERE idequipacion = '" . 164 $fila["idequipacion"] . "'"; 165 $res_ins = consulta ($sql_ins, $link); 166 $ins = siguiente($res_ins); 167 if ($ins) 168 { 169 $tabla[$i]["idequipacion"] = $ins["idequipacion"]; 170 $tabla[$i]["equipacion"] = $ins["equipacion"]; 171 $tabla[$i++]["normas"] = $ins["normas"]; 172 } 173 else 174 { 175 $tabla[$i]["idequipacion"] = -1; 176 $tabla[$i]["equipacion"] = "Equipacion desconocida"; 177 $tabla[$i++]["normas"] = "Normas no encontradas"; 178 } 179 } 180 181 Desconectar ($link); 182 return $tabla; 183 } 184 185 186 //Esta funcion elimina una reserva del usuario dado una fecha y el 187 //id del item y el tipo (instalacion o equipamiento 188 function anular_reserva($login, $fecha, $iditem, $item) 189 { 190 $link = Conectar(); 191 if ($item == INST) 192 { 193 $sql = "DELETE FROM `res_ins` 194 WHERE CONVERT(`res_ins`.`login` USING utf8)='$login' 195 AND `res_ins`.`idinstalacion`=$iditem 196 AND `res_ins`.`fecha`='$fecha' "; 197 } 198 else 199 { 200 $sql = "DELETE FROM `res_equi` 201 WHERE CONVERT(`res_equi`.`login` USING utf8)='$login' 202 AND `res_equi`.`idequipacion`=$iditem 203 AND `res_equi`.`fecha`='$fecha' "; 204 } 205 206 $result = consulta ($sql, $link); 207 $correcto =false; 208 209 if($result) 210 { 211 $filas = mysql_affected_rows(); 212 if ( $filas == 0 ) 213 { 214 //echo "La reserva ya había sido eliminada"; 215 $correcto =false; 216 } 217 else 218 { 219 //echo "La reserva ha sido eliminada"; 220 $correcto =true; 221 } 222 } 223 else 224 { 225 //echo"<p>Operacion NO efectuada</p>\n"; 226 //echo"<p>Error: " . mysql_error($link) . "</p>\n"; 227 //echo"SQL: $sql";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 217
228 $correcto =false; 229 } 230 231 Desconectar ($link); 232 return $correcto; 233 } 234 235 236 //Obtiene los dias en que esta reservado una instalacion dada 237 //Devuelve una tabla con las fechas 238 //Acceso: 239 // dia 240 // mes 241 // anyo 242 //Parametros recibido 243 // id de una instalacion 244 function fecha_reservas($iditem, $item) 245 { 246 if ( !isset($iditem) || $iditem == -1) 247 { 248 //echo "id instalacion no definido<br>\n"; 249 return; 250 } 251 252 $link = Conectar(); 253 if ($item == INST) 254 { 255 $sql = "SELECT fecha FROM `res_ins` 256 WHERE `res_ins`.`idinstalacion`=$iditem" ; 257 } 258 else 259 { 260 $sql = "SELECT fecha FROM `res_equi` 261 WHERE `res_equi`.`idequipacion`=$iditem" ; 262 } 263 264 $result = consulta ($sql, $link); 265 266 //sacamos los valores que nos interesan de los 267 //resultados (en este caso todos) 268 $i = 0; 269 $tabla; 270 while ($fila = siguiente($result)) 271 { 272 $fecha = sacarFecha($fila["fecha"]); 273 $trozo = explode ("-", $fecha); 274 //echo " fecha: " . $fecha . "\n<br>"; 275 $tabla[$i]["dia"] = $trozo[0]; 276 $tabla[$i]["mes"] = $trozo[1]; 277 $tabla[$i++]["anyo"] = $trozo[2]; 278 } 279 280 Desconectar ($link); 281 return $tabla; 282 } 283 284 //Permite hacer una reserva 285 //Recibe como parametros 286 //Login del usuario, fecha(dia, mes, anyo) y hora(hora, min, seg) 287 //el codigo del item a reservar (puede ser una instalacion o un 288 //equipamiento y el motivo 289 //Devuelve: 290 // True si reveserva se pudo hacer 291 // Falso en caso contrario 292 function reservar_instalacion($login,$iditem,$dia,$mes,$anyo,$hora,$min, 293 $seg,$motivo, $item) 294 { 295 $fecha = $anyo . "-" . $mes . "-" . $dia . " " . $hora . ":" . $min . ": 296 " . $seg; 297 298 $link = Conectar(); 299 /*$sql = "INSERT INTO `webcole`.`res_ins` 300 (`login`, 301 `idinstalacion`, 302 `fecha`, 303 `proposito`) VALUES 304 (\'$login\',
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 218
305 \'$idins\', 306 \'$fecha\', 307 \'$motivo\');"; 308 */ 309 if ($item == INST) 310 { 311 $sql = "INSERT INTO `webcole`.`res_ins` 312 (`login`, 313 `idinstalacion`, 314 `fecha`, 315 `proposito`) VALUES 316 ('$login', 317 '$iditem', 318 '$fecha', 319 '$motivo');"; 320 } 321 else 322 { 323 $sql = "INSERT INTO `webcole`.`res_equi` 324 (`login`, 325 `idequipacion`, 326 `fecha`, 327 `proposito`) VALUES 328 ('$login', 329 '$iditem', 330 '$fecha', 331 '$motivo');"; 332 } 333 $result = consulta ($sql, $link); 334 335 echo "error: " . mysql_error($link); 336 Desconectar ($link); 337 return $result; 338 } 339 340 //Obtiene el listado de todos los profesores del centro 341 //Devuelve una tabla con la informacion de los profesores 342 // Nombre : Nombre 343 // apellido1 : Primer apellido del profesor 344 // apellido2 : Segundo apellido del profesor 345 // email : Direccion de correo del profesor 346 // tutorias : Las tutorias del profesor 347 function listado_profesores() 348 { 349 $link = Conectar(); 350 $sql = "SELECT u.nombre, u.apellido1, u.apellido2, p.email, p.tutorias 351 FROM profesor p, usuario u 352 WHERE p.login=u.login 353 ORDER BY u.apellido1"; 354 355 //ejecutamos la consulta 356 $resultado = consulta ($sql, $link); 357 //echo "error: " . mysql_error($link); 358 //sacamos los valores que nos interesan de los 359 //resultados (en este caso todos) 360 $i = 0; 361 $tabla = null; 362 while ($fila = siguiente($resultado)) 363 { 364 $tabla[$i]["nombre"] = $fila["nombre"]; 365 $tabla[$i]["apellido1"] = $fila["apellido1"]; 366 $tabla[$i]["apellido2"] = $fila["apellido2"]; 367 $tabla[$i]["email"] = $fila["email"]; 368 369 if ($fila["tutorias"] == "null") 370 { 371 $tabla[$i]["tutorias"] = "Sin tutorias"; 372 } 373 else 374 { 375 $tabla[$i]["tutorias"] = $fila["tutorias"]; 376 } 377 $i++; 378 379 } 380 381 Desconectar ($link);
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 219
382 return $tabla; 383 384 } 385 386 //Obtiene las asignaturas del profesor 387 function asignaturas_profesor () 388 { 389 $login = $_SESSION["id"]; 390 391 $link = Conectar(); 392 $sql = "SELECT asignatura FROM imparte WHERE profesor='$login'"; 393 //ejecutamos la consulta 394 $resultado = consulta ($sql, $link); 395 $i = 0; 396 $tabla = null; 397 //recorremos los resultados 398 399 while ($fila = siguiente($resultado)) 400 { 401 $tabla[$i]["codasig"] = $fila["asignatura"]; 402 403 //por cada asignatura sacamos sus datos 404 $sql_asig = "SELECT nombre, curso, horario 405 FROM asignatura 406 WHERE codigoasignatura=" . $tabla[$i]["codasig"]; 407 $res_asig = consulta ($sql_asig, $link); 408 while ($fila_asig = siguiente($res_asig)) 409 { 410 $tabla[$i]["nombre"] = $fila_asig["nombre"]; 411 $tabla[$i]["curso"] = $fila_asig["curso"]; 412 $tabla[$i]["horario"] = $fila_asig["horario"]; 413 } 414 415 $i++; 416 417 } 418 419 desconectar($link); 420 return $tabla; 421 } 422 423 //Obtiene los datos de la asignatura que se le pasa como parametro 424 function obtener_datos_asignatura($codasig) 425 { 426 $login = $_SESSION["id"]; 427 $link = Conectar(); 428 $sql = "SELECT nombre, curso, horario 429 FROM asignatura 430 WHERE codigoasignatura='$codasig'"; 431 //ejecutamos la consulta 432 $resultado = consulta ($sql, $link); 433 $fila = siguiente($resultado); 434 if ($fila) 435 { 436 $tabla["codasig"] = $codasig; 437 $tabla["nombre"] = $fila["nombre"]; 438 $tabla["curso"] = $fila["curso"]; 439 $tabla["horario"] = $fila["horario"]; 440 } 441 else 442 { 443 //posible error en el codigo de la asignatura ¿mejor volver ya= 444 return ; 445 } 446 $sql = "SELECT letra 447 FROM impartida 448 WHERE asignatura='$codasig'"; 449 //ejecutamos la consulta 450 $resultado = consulta ($sql, $link); 451 $fila = siguiente($resultado); 452 if ($fila) 453 { 454 $tabla["letra"] = $fila["letra"]; 455 } 456 else 457 { 458 echo "fallo la letra. Error: " . mysql_error();
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 220
459 460 } 461 462 $sql = "SELECT aula 463 FROM grupo 464 WHERE curso='" . $tabla["curso"] . "' and letra='" . $tabla[ 465 "letra"] . "'"; 466 //ejecutamos la consulta 467 $resultado = consulta ($sql, $link); 468 $fila = siguiente($resultado); 469 if ($fila) 470 { 471 $tabla["aula"] = $fila["aula"]; 472 } 473 else 474 { 475 echo "fallo el aula. Error: " . mysql_error(); 476 477 } 478 479 480 desconectar($link); 481 return $tabla; 482 } 483 484 function obtener_alumnos_asignatura($codasig) 485 { 486 $link = Conectar(); 487 $sql = "SELECT curso, letra 488 FROM impartida 489 WHERE asignatura='$codasig'"; 490 //ejecutamos la consulta 491 $resultado = consulta ($sql, $link); 492 $fila = siguiente($resultado); 493 if ($fila) 494 { 495 $letra = $fila["letra"]; 496 $curso = $fila["curso"]; 497 } 498 else 499 { 500 echo "fallo la letra. Error: " . mysql_error(); 501 return; 502 } 503 504 //obtener los datos de los alumnos que estan en ese curso y letra 505 $sql_alumnos = "SELECT usu.apellido1, usu.apellido2, usu.nombre, usu. 506 login 507 FROM usuario usu, alumno alu 508 WHERE alu.curso=$curso and alu.letra='$letra' and alu. 509 login=usu.login 510 ORDER BY usu.apellido1"; 511 $res_alumno = consulta ($sql_alumnos, $link); 512 513 514 while ($fila_alu = siguiente($res_alumno)) 515 { 516 517 $tabla[$i]["nombre"] = $fila_alu["nombre"]; 518 $tabla[$i]["apellido1"] = $fila_alu["apellido1"]; 519 $tabla[$i]["apellido2"] = $fila_alu["apellido2"]; 520 $tabla[$i]["login"] = $fila_alu["login"]; 521 $i++; 522 } 523 524 desconectar($link); 525 return $tabla; 526 } 527 528 function poner_nota($alumno,$codasig, $trimestre, $nota) 529 { 530 $datos = obtener_datos_asignatura($codasig); 531 $link = Conectar(); 532 $sql = "INSERT INTO `webcole`.`nota` 533 (`alumno`, `asignatura`, `curso`, `trimestre`, `nota`) 534 VALUES ('$alumno', '$codasig', '" . $datos["curso"] . "', 535 '$trimestre', '$nota');";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 221
536 537 $result = consulta ($sql, $link); 538 if (!$result) 539 echo "error: " . mysql_error($link) . " codigo: " . mysql_errno(); 540 //si el error devuelto es CLAVE_REPETIDA, entonces el alumno ya habia 541 sido 542 //puntuado, por tanto deberemos actualizar la nota. 543 if ( mysql_errno() == CLAVE_REPETIDA) 544 { 545 $sql_actualizar = "UPDATE `webcole`.`nota` 546 SET `nota` = '$nota' 547 WHERE CONVERT(`nota`.`alumno` USING utf8) = 548 '$alumno' 549 AND `nota`.`asignatura` = $codasig 550 AND CONVERT(`nota`.`trimestre` USING utf8) = 551 '$trimestre' 552 LIMIT 1;"; 553 $res_actualizar = consulta ($sql_actualizar, $link); 554 if ( !$res_actualizar ) 555 { 556 echo "Se produjo un error cuando se estaba actualizando la nota 557 del alumno $alumno<br>\n"; 558 echo "error: " . mysql_error($link) . " codigo: " . 559 mysql_errno(); 560 } 561 } 562 563 Desconectar ($link); 564 return $result; 565 } 566 567 function obtener_alumnos_asignatura_trimestre($codasig, $trimestre) 568 { 569 $link = Conectar(); 570 $sql = "SELECT curso, letra 571 FROM impartida 572 WHERE asignatura='$codasig'"; 573 //ejecutamos la consulta 574 $resultado = consulta ($sql, $link); 575 $fila = siguiente($resultado); 576 if ($fila) 577 { 578 $letra = $fila["letra"]; 579 $curso = $fila["curso"]; 580 } 581 else 582 { 583 echo "fallo la letra. Error: " . mysql_error(); 584 return; 585 } 586 587 //obtener los datos de los alumnos que estan en ese curso y letra 588 $sql_alumnos = "SELECT usu.apellido1, usu.apellido2, usu.nombre, usu. 589 login 590 FROM usuario usu, alumno alu 591 WHERE alu.curso=$curso and alu.letra='$letra' and alu. 592 login=usu.login 593 ORDER BY usu.apellido1"; 594 $res_alumno = consulta ($sql_alumnos, $link); 595 596 if ($res_alumno) 597 { 598 while ($fila_alu = siguiente($res_alumno)) 599 { 600 //por cada alumno sacamos su nota para esa asignatura y 601 trimestre (si esta puesta) 602 $sql_nota = "SELECT n.nota 603 FROM nota n 604 WHERE n.alumno='" . $fila_alu["login"] . "' 605 and n.trimestre='$trimestre' and n. 606 asignatura='$codasig'"; 607 $res_nota = consulta ($sql_nota, $link); 608 $fila = siguiente($res_nota); 609 if ($fila) 610 { 611 $tabla[$i]["nota"] = $fila["nota"]; 612 }
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 222
613 else 614 { 615 $tabla[$i]["nota"] = $fila[""]; 616 } 617 $tabla[$i]["nombre"] = $fila_alu["nombre"]; 618 $tabla[$i]["apellido1"] = $fila_alu["apellido1"]; 619 $tabla[$i]["apellido2"] = $fila_alu["apellido2"]; 620 $tabla[$i]["login"] = $fila_alu["login"]; 621 $i++; 622 //echo "fallo la nota. Error: " . mysql_error(); 623 //echo "login vale : " . $fila_alu["login"] . "<br>\n"; 624 //echo " sql vale: $sql_nota <br>\n"; 625 } 626 } 627 else 628 { 629 echo "Se produjo un error al acceder a las notas del alumno<br>\n"; 630 } 631 632 desconectar($link); 633 return $tabla; 634 } 635 636 function obtener_faltas_alumnos ($codasig, $fecha) 637 { 638 639 $alumnos = obtener_alumnos_asignatura($codasig); 640 if (isset($fecha)) 641 { 642 $fecha_mysql = cambiar_a_date($fecha); 643 } 644 else 645 { 646 $fecha_mysql = "0000-00-00"; 647 } 648 649 $link = Conectar(); 650 651 $lon = count($alumnos); 652 653 foreach ($alumnos as $actual) 654 { 655 $sql = "SELECT justificada 656 FROM faltaasistencia 657 WHERE asignatura='$codasig' and fecha='$fecha_mysql' and 658 alumno='" . $actual["login"]."'"; 659 //ejecutamos la consulta 660 $tabla[$i] = $actual; 661 $resultado = consulta ($sql, $link); 662 $fila = siguiente($resultado); 663 if ($fila) 664 { 665 $tabla[$i]["justificada"] = $fila["justificada"]; 666 $tabla[$i]["fecha"] = $fecha; 667 } 668 else 669 { 670 $tabla[$i]["justificada"] = ""; 671 $tabla[$i]["fecha"] = ""; 672 } 673 $i++; 674 } 675 desconectar($link); 676 return $tabla; 677 } 678 679 //Se recibe una fecha en formato dd-mm-aaaa 680 //Se devuelve una fecha en formato aaaa-mm-dd 681 682 function cambiar_a_date($fecha) 683 { 684 //$nuevafecha = ""; 685 $separada = explode("-", $fecha); 686 $nuevafecha = $separada[2] . "-" . $separada[1] . "-"; 687 if ($separada[0] < 10) 688 { 689 $separada[0] = "0" . $separada[0];
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 223
690 } 691 $nuevafecha .= $separada[0]; 692 693 // echo "nueva fecha vale: $nuevafecha<br>\n"; 694 695 return $nuevafecha; 696 } 697 698 function poner_falta($login, $codasig, $fecha, $just) 699 { 700 $link = Conectar(); 701 $fecmysql = cambiar_a_date($fecha); 702 703 $sql = "INSERT INTO `webcole`.`faltaasistencia` 704 (`alumno`, `asignatura`, `fecha`, `justificada`) 705 VALUES ('$login', '$codasig', '$fecmysql', '$just');"; 706 707 echo "login vale: $login<br>\n"; 708 $result = consulta ($sql, $link); 709 if (!$result) 710 { 711 echo "error: " . mysql_error($link) . " codigo: " . mysql_errno(); 712 //si el error devuelto es CLAVE_REPETIDA, entonces el alumno ya 713 habia sido 714 //puntuado, por tanto deberemos actualizar la nota. 715 if ( mysql_errno() == CLAVE_REPETIDA) 716 { 717 echo "actualizando la falta del login: $login<br>\n"; 718 $sql_actualizar = "UPDATE `webcole`.`faltaasistencia` 719 SET `justificada` = '$just' 720 WHERE CONVERT(`faltaasistencia`.`alumno` 721 USING utf8) = '$login' 722 AND `faltaasistencia`.`asignatura` = 723 $codasig 724 AND `faltaasistencia`.`fecha` = '$fecmysql' 725 LIMIT 1;"; 726 727 $res_actualizar = consulta ($sql_actualizar, $link); 728 if ( !$res_actualizar ) 729 { 730 echo "Se produjo un error cuando se estaba actualizando la 731 nota del alumno $login<br>\n"; 732 echo "error: " . mysql_error($link) . " codigo: " . 733 mysql_errno(); 734 } 735 } 736 } 737 else 738 { 739 echo "ocurrio algo raro: " . mysql_error($link) . "<br>\n"; 740 } 741 Desconectar ($link); 742 return $result; 743 } 744 745 function quitar_falta($login, $codasig, $fecha) 746 { 747 echo " se esta quitando una falta...<br>\n"; 748 $fecha_mysql = cambiar_a_date($fecha); 749 $link = Conectar(); 750 $sql= "DELETE FROM `faltaasistencia` 751 WHERE CONVERT(`faltaasistencia`.`alumno` USING utf8)= '$login' 752 AND `faltaasistencia`.`asignatura` = $codasig 753 AND `faltaasistencia`.`fecha` = '$fecha_mysql'"; 754 755 $resultado = consulta ($sql, $link); 756 if ( !$resultado ) 757 { 758 echo "Se produjo un error cuando se estaba eliminado la falta de 759 asistencia del alumno $login<br>\n"; 760 echo "error: " . mysql_error($link) . " codigo: " . mysql_errno(); 761 } 762 Desconectar ($link); 763 } 764 765 //Funcion que devuelve los grupos que son tutorizados por un profesor. 766 //el login del profesor lo obtenemos directamente de la sesion.
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 224
767 //Se devuelve una tabla con todos los datos del grupo tutorizado 768 function obtener_grupos_tutorizados() 769 { 770 $login = $_SESSION["id"]; 771 /* 772 $link = Conectar(); 773 $sql = "SELECT curso, letra, aula, delegado 774 FROM grupo 775 WHERE tutor='$login'"; 776 //ejecutamos la consulta 777 $resultado = consulta ($sql, $link); 778 if ($resultado) 779 { 780 while ($fila = siguiente($resultado)) 781 { 782 $tabla[$i]["curso"] = $fila["curso"]; 783 $tabla[$i]["letra"] = $fila["letra"]; 784 $tabla[$i]["aula"] = $fila["aula"]; 785 $tabla[$i]["delegado"] = $fila["delegado"]; 786 $i++; 787 } 788 } 789 else 790 { 791 echo "Se produjo un error al acceder a las notas del alumno<br>\n"; 792 return; 793 } 794 */ 795 $link = Conectar(); 796 $sql = "SELECT curso, letra 797 FROM grupo 798 WHERE tutor='$login'"; 799 //ejecutamos la consulta 800 $resultado = consulta ($sql, $link); 801 if ($resultado) 802 { 803 while ($fila = siguiente($resultado)) 804 { 805 $tabla[$i]["codgrupo"] = $fila["curso"] . "-" . $fila["letra"]; 806 $tabla[$i]["curso"] = $fila["curso"]; 807 $tabla[$i]["letra"] = $fila["letra"]; 808 //$tabla[$i]["aula"] = $fila["aula"]; 809 //$tabla[$i]["delegado"] = $fila["delegado"]; 810 echo "grupo vale:" . $tabla[$i]["codgrupo"] . "<br>\n"; 811 $i++; 812 } 813 } 814 else 815 { 816 echo "Se produjo un error al acceder a las notas del alumno<br>\n"; 817 return; 818 } 819 desconectar($link); 820 return $tabla; 821 } 822 823 // 824 //El formato del codgrupo es "curso-letra" 825 function obtener_datos_grupo ($codgrupo) 826 { 827 828 $curso = substr($codgrupo,0, 1); 829 $letra = substr($codgrupo,2, 1); 830 $login = $_SESSION["id"]; 831 //echo "curso vale: $curso<br>\n"; 832 //echo "letra vale: $letra<br>\n"; 833 $link = Conectar(); 834 $sql = "SELECT curso, letra, aula, delegado 835 FROM grupo 836 WHERE tutor='$login' and curso='$curso' and letra='$letra'"; 837 //ejecutamos la consulta 838 $resultado = consulta ($sql, $link); 839 if ($resultado) 840 { 841 if ($fila = siguiente($resultado)) 842 { 843 $tabla["codgrupo"] = $curso . "-" . $letra;
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 225
844 $tabla["curso"] = $curso; 845 $tabla["letra"] = $letra; 846 $tabla["aula"] = $fila["aula"]; 847 $tabla["delegado"] = $fila["delegado"]; 848 849 if (isset($fila["delegado"])) 850 { 851 $sql_alumnos = "SELECT usu.apellido1, usu.apellido2, usu. 852 nombre, usu.login 853 FROM usuario usu 854 WHERE usu.login='" . $fila["delegado"] . 855 "'"; 856 $res_alumno = consulta ($sql_alumnos, $link); 857 858 if ($fila_alu = siguiente($res_alumno)) 859 { 860 $tabla["del_nombre"] = $fila_alu["nombre"]; 861 $tabla["del_ape1"] = $fila_alu["apellido1"]; 862 $tabla["del_ape2"] = $fila_alu["apellido2"]; 863 } 864 } 865 else 866 { 867 $tabla["del_nombre"] = ""; 868 $tabla["del_ape1"] = ""; 869 $tabla["del_ape2"] = ""; 870 } 871 872 //echo "aula vale " . $fila["aula"] . "<br>\n"; 873 // echo "grupo vale:" . $tabla[$i]["codgrupo"] . "<br>\n"; 874 } 875 else 876 { 877 echo "fila nula<br>\n"; 878 } 879 } 880 else 881 { 882 echo "Se produjo un error al acceder a las notas del alumno<br>\n"; 883 return; 884 } 885 desconectar($link); 886 return $tabla; 887 } 888 889 function obtener_alumnos_grupo($codgrupo) 890 { 891 $curso = substr($codgrupo,0, 1); 892 $letra = substr($codgrupo,2, 1); 893 $login = $_SESSION["id"]; 894 echo "curso vale: $curso<br>\n"; 895 echo "letra vale: $letra<br>\n"; 896 $link = Conectar(); 897 898 //obtener los datos de los alumnos que estan en ese curso y letra 899 $sql_alumnos = "SELECT usu.apellido1, usu.apellido2, usu.nombre, usu. 900 login 901 FROM usuario usu, alumno alu 902 WHERE alu.curso='$curso' and alu.letra='$letra' and alu. 903 login=usu.login 904 ORDER BY usu.apellido1"; 905 $res_alumno = consulta ($sql_alumnos, $link); 906 echo "sql vale: $sql_alumnos<br>\n"; 907 $i = 0; 908 909 if ($res_alumno) 910 { 911 echo "dentro if<br>\n"; 912 while ($fila_alu = siguiente($res_alumno)) 913 { 914 echo "login vale: " .$fila_alu["usu.login"]."<br>\n"; 915 $tabla[$i]["nombre"] = $fila_alu["nombre"]; 916 $tabla[$i]["apellido1"] = $fila_alu["apellido1"]; 917 $tabla[$i]["apellido2"] = $fila_alu["apellido2"]; 918 $tabla[$i]["login"] = $fila_alu["login"]; 919 echo "login vale: " .$fila_alu["login"]."<br>\n"; 920 $i++;
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 226
921 } 922 } 923 else 924 { 925 echo "se produjo un error en obtener_alumnos_grupo "; 926 echo mysql.errno(); 927 } 928 929 desconectar($link); 930 return $tabla; 931 932 } 933 934 935 function hacer_delegado($codgrupo, $alumno) 936 { 937 $curso = substr($codgrupo,0, 1); 938 $letra = substr($codgrupo,2, 1); 939 if (strcmp ($alumno, "NULL") == 0) 940 { 941 $sql = "UPDATE `webcole`.`grupo` 942 SET `delegado` = NULL 943 WHERE CONVERT(`grupo`.`curso` USING utf8) = '$curso' 944 AND CONVERT(`grupo`.`letra` USING utf8) = '$letra' 945 LIMIT 1;" ; 946 947 } 948 else 949 { 950 $sql = "UPDATE `webcole`.`grupo` 951 SET `delegado` = '$alumno' 952 WHERE CONVERT(`grupo`.`curso` USING utf8) = '$curso' 953 AND CONVERT(`grupo`.`letra` USING utf8) = '$letra' 954 LIMIT 1;" ; 955 956 } 957 $link = Conectar(); 958 959 $result = consulta ($sql, $link); 960 if (!$result) 961 echo "error: " . mysql_error($link) . " codigo: " . mysql_errno(); 962 963 Desconectar ($link); 964 return $result; //devolver ok o ko 965 } 966 967 function rellenar_eventos_curso() 968 { 969 $conn = Conectar(); 970 $sql="SELECT * FROM evento WHERE titulo = 'Curso' ORDER BY fecha"; 971 $res=consulta($sql,$conn); 972 973 while($row = siguiente($res)) 974 { 975 $fecha=split("-",sacarFecha($row["fecha"])); 976 $fechaComparar = "".$fecha[2].$fecha[1].$fecha[0]; 977 if($fechaComparar >= date("Ymd")) 978 for($i=0; $i<3 && $i<numeroFilas($res);$i++) 979 echo "<p><span class='fechaNoticia'>".sacarFecha($row[ 980 "fecha"])." </span>".tohtml($row["descripcion"])." </p> 981 "; 982 } 983 desconectar($conn); 984 } 985 986 987 function bienvenida() 988 { 989 //include("bd.php"); 990 $dp = Conectar(); 991 $sql = 'SELECT * FROM usuario WHERE login ="' . $_SESSION["id"] . 992 '"'; 993 $resultado = consulta($sql, $dp); 994 while($row = siguiente($resultado)) 995 echo 'Bienvenido ' . $row['nombre']; 996 desconectar($dp); 997 echo "<br/>\n<a href='/webcole/cerrar_sesion.php'>Cerrar
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 227
998 sesión</a>"; 999 } 1000 1001 1002 ?>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 228
intranetProfe.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 6 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 7 <html xmlns="http://www.w3.org/1999/xhtml"> 8 <head> 9 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 10 <title>CP Emilio Lluch</title> 11 <link href="css/general.css" rel="stylesheet" type="text/css" /> 12 13 <script type="text/javascript" src="./js/fecha.js"> </script> 14 15 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 16 </head> 17 18 <body onload="javascript:displayTime();"> 19 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 20 <tr> 21 <td style="width: 150px;" class="logo"> </td> 22 <td colspan="2" class="titulo"> </td> 23 </tr> 24 <tr> 25 <td class="fecha"> </td> 26 <td colspan="2" class="fecha"><div id="campoHora"> </div></td> 27 </tr> 28 <tr> 29 <td class="menu"> 30 <ul> 31 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 32 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 33 <li><a href="/webcole/Profesor_profesores.php">Profesores</a></li> 34 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 35 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia </a>< 36 /li> 37 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones </a> 38 </li> 39 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos</a>< 40 /li> 41 <li><a href="/webcole/Profesor_tablon.php">Tablón de 42 anuncios </a></li> 43 </ul> </td> 44 <td class="general"> 45 <p style='text-align: center ; font-weight: bold; font-size:18px'> 46 Intranet Profesor 47 </p> 48 <p> 49 <?php 50 51 //include("bd.php"); 52 $conn = Conectar(); 53 $sql = "SELECT * FROM usuario WHERE login = '" . $_SESSION[ 54 "id"] ."'"; 55 $resultado = consulta($sql, $conn); 56 $row = siguiente($resultado); 57 echo tohtml($row['apellido1']) . " " . tohtml($row[ 58 'apellido2']) . ", " . tohtml($row['nombre']); 59 desconectar($conn); 60 ?> 61 </p> 62 </td> 63 <td class="general"> </td> 64 </tr> 65 <tr> 66 <td><?php 67 bienvenida(); 68 ?></td> 69 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 70 <?php 71 rellenar_eventos_curso(); 72 ?> 73 </td>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 229
74 </tr> 75 </table> 76 </body> 77 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 230
Profesor_alumnos.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 <?php 5 //leemos los datos recibidos (si se reciben) 6 $codasig = $_REQUEST["codasig"]; 7 $asignaturas = asignaturas_profesor(); 8 9 if (!isset($codasig)) 10 { 11 $codasig = -1; 12 } 13 else 14 { 15 $encontrado = false; 16 foreach ($asignaturas as $actual ) 17 { 18 if ( strcmp($actual["codasig"],$codasig ) == 0) 19 { 20 $encontrado = true; 21 } 22 } 23 if (!$encontrado) 24 { 25 $codasig = -1; 26 } 27 } 28 ?> 29 30 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 31 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 32 <html xmlns="http://www.w3.org/1999/xhtml"> 33 <head> 34 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 35 <title>CP Emilio Lluch</title> 36 <link href="css/general.css" rel="stylesheet" type="text/css" /> 37 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 38 <link href="css/profesor.css" rel="stylesheet" type="text/css" /> 39 <script type="text/javascript" src="./js/fecha.js"> </script> 40 <script type="text/javascript" > 41 <!-- 42 function buscarasignatura() 43 { 44 //var id = document.asignatura.idasig.value; 45 var id = document.getElementById("asignatura").idasig.value; 46 document.location.href='/webcole/Profesor_alumnos.php?codasig=' + 47 id ; 48 } 49 --> 50 </script> 51 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 52 </head> 53 54 <body onload="javascript:displayTime();"> 55 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 56 <tr> 57 <td style="width: 150px;" class="logo"> </td> 58 <td colspan="2" class="titulo"> </td> 59 </tr> 60 <tr> 61 <td class="fecha"> </td> 62 <td colspan="2" class="fecha"> 63 <div id="campoHora"> </div> 64 </td> 65 </tr> 66 <tr> 67 <td class="menu"> 68 <ul> 69 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 70 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 71 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 72 /li> 73 <li><a href="/webcole/Profesor_notas.php">Notas</a></li>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 231
74 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 75 /a></li> 76 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 77 </a></li> 78 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 79 /a></li> 80 <li><a href="/webcole/Profesor_tablon.php">Tablón de 81 anuncios </a></li> 82 </ul> 83 </td> 84 <td class="general" style="text-align: center;"> 85 <p style='text-align: center ; font-weight: bold; font-size:18px'> 86 Alumnos del profesor 87 </p> 88 <div style="text-align: center;"> 89 <form method='get' action='#' id="asignatura"> 90 <p style="font-weight: bold;">Asignaturas disponibles 91 <select name="idasig" onchange="javascript:buscarasignatura();"> 92 <option value='-1'>Selecciona una asignatura</option> 93 <?php 94 95 foreach ($asignaturas as $asig) 96 { 97 if ( $codasig == $asig["codasig"]) 98 echo "<option value='" . $asig["codasig"]. "' 99 selected='selected'>" . tohtml($asig["nombre"]) 100 . "</option>\n"; 101 else 102 echo "<option value='" . $asig["codasig"]. "'>" 103 . tohtml($asig["nombre"]) . "</option>\n"; 104 } 105 106 //Obtenemos los datos necesarios para rellenar la tabla 107 if ( $codasig <= 0 ) 108 { 109 $nombre = "----"; 110 $codigo = "----"; 111 $curso = "----"; 112 $letra = "-"; 113 $horario = "----"; 114 $clase = "----"; 115 116 } 117 else 118 { 119 //recuperamos los datos 120 $datos = obtener_datos_asignatura($codasig); 121 $nombre = $datos["nombre"]; 122 $codigo = $codasig; 123 $curso = $datos["curso"]; 124 $letra = $datos["letra"]; 125 $horario = $datos["horario"]; 126 $clase = $datos["aula"]; 127 128 $alumnos = obtener_alumnos_asignatura($codasig); 129 } 130 ?> 131 </select> 132 </p> 133 </form> 134 135 <br/> 136 <table style="text-align: center; width: 100%;height: 100%" 137 border="1" class="general"> 138 <tr> 139 <td style="height: 39px; width: 25%;" class='cabecera'><div 140 style="text-align: right" ><strong>Nombre Asignatura </strong>< 141 /div></td> 142 <td style="width: 25%;"><div style="text-align: center;"><?php 143 echo $nombre ?> </div></td> 144 <td style="width: 25%;" class='cabecera'><div style="text- 145 align: right;" ><strong>Código Asignatura </strong></div> 146 </td> 147 <td style="width: 25%;"><div style="text-align: center;" >< 148 ?php echo $codigo ?> </div></td> 149 </tr> 150 <tr>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 232
151 <td style="height: 34px;"><div style="text-align: right;" 152 class='cabecera'><strong>Curso</strong></div></td> 153 <td><div style="text-align: center;" ><?php echo $curso ?> 154 </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 ?> 158 </div></td> 159 </tr> 160 <tr> 161 <td style="height: 34px;" class='cabecera'><div style="text- 162 align: right;"><strong>Horario</strong></div></td> 163 <td><div style="text-align: center;"><?php echo $horario ?> 164 </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 ?> 168 </div></td> 169 </tr> 170 <tr> 171 <td style="height: 34px;" colspan="4"><div style="text-align: 172 center;"><strong>Alumnos</strong></div></td> 173 </tr> 174 <tr> 175 <td style="height: 34px;" class='cabecera'><div style="text- 176 align: center;"><strong>Primer Apellido </strong></div></td> 177 <td class='cabecera'><div style="text-align: center;"><strong> 178 Segundo Apellido </strong></div></td> 179 <td class='cabecera'><div style="text-align: center;"><strong> 180 Nombre</strong></div></td> 181 <td class='cabecera'><div style="text-align: center;"><strong> 182 Login</strong></div></td> 183 </tr> 184 <?php 185 if (isset($alumnos)) 186 { 187 $i = 0; 188 foreach ($alumnos as $actual) 189 { 190 191 $resto = $i % 2; 192 echo"<tr class='fila" . $resto . "'>\n"; 193 echo" <td style=\"height: 34px;\"><div style=\"text-align: 194 center;\" >" . tohtml($actual["apellido1"]) . " </div></td> 195 \n"; 196 echo" <td><div style=\"text-align: center;\"> " . tohtml( 197 $actual["apellido2"]) . " </div></td>\n"; 198 echo" <td><div style=\"text-align: center;\"> " . tohtml( 199 $actual["nombre"]). " </div></td>\n"; 200 echo" <td><div style=\"text-align: center;\"> " . tohtml( 201 $actual["login"]) . "</div></td>\n"; 202 echo"</tr>\n"; 203 $i++; 204 } 205 } 206 ?> 207 </table> 208 </div> 209 </td> 210 <td class="general"> </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>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 233
Profesor_profesores.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 6 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 7 <html xmlns="http://www.w3.org/1999/xhtml"> 8 <head> 9 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 10 <title>CP Emilio Lluch</title> 11 <link href="css/general.css" rel="stylesheet" type="text/css" /> 12 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 13 <link href="css/profesor.css" rel="stylesheet" type="text/css" /> 14 <script type="text/javascript" src="./js/fecha.js"> </script> 15 16 17 18 </head> 19 20 <body onload="javascript:displayTime();"> 21 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 22 <tr> 23 <td style="width: 150px;" class="logo"> </td> 24 <td colspan="2" class="titulo"> </td> 25 </tr> 26 <tr> 27 <td class="fecha"> </td> 28 <td colspan="2" class="fecha"> 29 <div id="campoHora"> </div> 30 </td> 31 </tr> 32 <tr> 33 <td class="menu"> 34 <ul> 35 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 36 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 37 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 38 /li> 39 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 40 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 41 /a></li> 42 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 43 </a></li> 44 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 45 /a></li> 46 <li><a href="/webcole/Profesor_tablon.php">Tablón de 47 anuncios </a></li> 48 </ul> 49 </td> 50 <td class="general"><p style="font-weight: bold;">Profesores del 51 Colegio Público Emilio Lluch </p> 52 <table border="1" style='width: 100%;'> 53 54 <?php 55 $profesores = listado_profesores(); 56 57 echo "<tr >\n"; 58 echo " <td style='width: 20%;' class='cabecera'>Primer 59 apellido</td>\n"; 60 echo " <td style='width: 20%;' class='cabecera'>Segundo 61 apellido</td>\n"; 62 echo " <td style='width: 20%;' class='cabecera'>Nombre</td> 63 \n"; 64 echo " <td style='width: 20%;' class='cabecera'>E-mail</td> 65 \n"; 66 echo " <td style='width: 20%;' class='cabecera'>Tutorias< 67 /td>\n"; 68 echo "</tr>\n"; 69 70 71 $i = 0; 72 73 foreach ($profesores as $actual)
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 234
74 { 75 $resto = $i % 2; 76 echo "<tr class='fila" . $resto . "'>\n"; 77 echo "<td>" . tohtml($actual["apellido1"]) . "</td>"; 78 echo "<td>" . tohtml($actual["apellido2"]) . "</td>"; 79 echo "<td>" . tohtml($actual["nombre"]) . "</td>"; 80 echo "<td><a href='mailto:" . $actual["email"] . "'>" . 81 $actual["email"] . "</a></td>"; 82 echo "<td>" . $actual["tutorias"] . "</td>"; 83 echo "</tr>\n"; 84 85 $i++; 86 } 87 ?> 88 89 </table> 90 </td> 91 <td class="general"> </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>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 235
guardar_notas.php 1 <?php 2 require_once "profesor_inc.php"; 3 4 $codasig = $_REQUEST["asignatura"]; 5 $trimestre = $_REQUEST["trimestre"]; 6 $datos = $_REQUEST["datos"]; 7 8 if (isset($codasig) && isset($trimestre) && isset($datos) ) 9 { 10 11 //echo "datos vale: $datos<br>\n"; 12 //separamos los alumnos (con sus notas) unos de otros 13 $alu_notas = explode( "|" , $datos); 14 15 foreach ($alu_notas as $actual) 16 { 17 if(strlen($actual) > 1) 18 { 19 20 $lognota = explode(";", $actual); 21 $aux = explode(":", $lognota[0]); $login = $aux[1]; 22 $aux = explode(":", $lognota[1]); $nota = $aux[1]; 23 //echo "Login vale: $login, Nota vale: $nota<br>\n"; 24 25 poner_nota($login, $codasig, $trimestre, $nota); 26 } 27 } 28 } 29 else 30 { 31 $codasig = $_REQUEST["asignatura"]; 32 $trimestre = $_REQUEST["trim"]; 33 $login = $_REQUEST["login"]; 34 $nota = $_REQUEST["nota"]; 35 36 if (isset($codasig) && isset($trimestre) && isset($login) && isset( 37 $nota)) 38 { 39 poner_nota($login, $codasig, $trimestre, $nota); 40 } 41 else 42 { 43 header("Location: Profesor_notas.php"); 44 } 45 } 46 47 //header("Location: Profesor_notas.php"); 48 49 ?> 50 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 51 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 52 <html xmlns="http://www.w3.org/1999/xhtml"> 53 <head> 54 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 55 <META HTTP-EQUIV="Refresh" CONTENT="0;URL=Profesor_notas.php?trimestre=<? 56 echo $trimestre;?>&codasig=<? echo $codasig;?>"> 57 58 59 <title>CP Emilio Lluch</title> 60 <link href="css/general.css" rel="stylesheet" type="text/css" /> 61 62 <script type="text/javascript" src="./js/fecha.js"> </script> 63 64 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 65 </head> 66 <body></body></html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 236
Profesor_notas.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 <?php 5 //leemos los datos recibidos (si se reciben) 6 $codasig = $_REQUEST["codasig"]; 7 $trimestre = $_REQUEST["trimestre"]; 8 9 if (!isset($codasig)) 10 { 11 $codasig = -1; 12 } 13 if (!isset($trimestre)) 14 { 15 $trimestre = -1; 16 } 17 18 //Si las dos variables estan definidas deberemos buscar los datos que 19 necesitaran. 20 ?> 21 22 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. 23 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 24 <html xmlns="http://www.w3.org/1999/xhtml"> 25 <head> 26 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 27 <title>CP Emilio Lluch</title> 28 <link href="css/general.css" rel="stylesheet" type="text/css" /> 29 <link href="css/profesor.css" rel="stylesheet" type="text/css" /> 30 31 <script type="text/javascript" src="./js/fecha.js"> </script> 32 <script type="text/javascript" src="./js/profesor.js"> </script> 33 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 34 </head> 35 36 <body onload="javascript:displayTime();"> 37 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 38 <tr> 39 <td style="width: 150px;" class="logo"> </td> 40 <td colspan="2" class="titulo"> </td> 41 </tr> 42 <tr> 43 <td class="fecha"> </td> 44 <td colspan="2" class="fecha"> 45 <div id="campoHora"> </div> 46 </td> 47 </tr> 48 <tr> 49 <td class="menu"> 50 <ul> 51 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 52 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 53 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 54 /li> 55 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 56 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 57 /a></li> 58 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 59 </a></li> 60 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 61 /a></li> 62 <li><a href="/webcole/Profesor_tablon.php">Tablón de 63 anuncios </a></li> 64 </ul> 65 </td> 66 <td class="general"> 67 <p style='text-align: center ; font-weight: bold; font-size:18px'> 68 Notas 69 </p> 70 <div align="center"> 71 <form name='asignatura' method='get' action='#'> 72 <br /> 73 <strong>Asignaturas disponibles</strong>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 237
74 <select name="idasig" onchange="javascript:buscarasignatura();"> 75 <option value='-1'>Selecciona una asignatura</option> 76 <?php 77 $asignaturas = asignaturas_profesor(); 78 foreach ($asignaturas as $asig) 79 { 80 if ( $codasig == $asig["codasig"]) 81 echo "<option value='" . $asig["codasig"]. "' 82 selected='selected'>" . tohtml($asig["nombre"]) . "</option> 83 \n"; 84 else 85 echo "<option value='" . $asig["codasig"]. "'>" . tohtml( 86 $asig["nombre"]) . "</option>\n"; 87 } 88 ?> 89 </select> 90 <? 91 //Obtenemos los datos necesarios para rellenar la tabla 92 if ( $codasig <= 0 ) 93 { 94 $nombre = "----"; 95 $codigo = "----"; 96 $curso = "----"; 97 $letra = "-"; 98 $horario = "----"; 99 $clase = "----"; 100 101 } 102 else 103 { 104 //recuperamos los datos 105 $datos = obtener_datos_asignatura($codasig); 106 $nombre = $datos["nombre"]; 107 $codigo = $codasig; 108 $curso = $datos["curso"]; 109 $letra = $datos["letra"]; 110 $horario = $datos["horario"]; 111 $clase = $datos["aula"]; 112 113 $alumnos = obtener_alumnos_asignatura_trimestre($codasig, 114 $trimestre); 115 } 116 117 ?> 118 119 <br /> 120 <br /> 121 <strong>Trimestre por defecto</strong> 122 <select name="trimestre" onchange="javascript:cambio_trimestre();"> 123 <? 124 echo"<option value=\"-1\">Trimestre</option>\n"; 125 for ($i = 1; $i <= TRIMESTRE; $i++) 126 { 127 if ( $trimestre == $i) 128 { 129 echo"<option value=\"$i\" selected=\"selected\">$i< 130 /option>\n"; 131 } 132 else 133 { 134 echo"<option value=\"$i\" >$i</option>\n"; 135 } 136 } 137 ?> 138 </select> 139 </form> 140 </div> 141 <br /> 142 143 <table style='width: 100%; height:100%; text-align:center;' 144 border="1" class="general"> 145 <tr> 146 <td style='width: 25%; text-align: right ; font-weight: 147 bold;' class="cabecera"> 148 Nombre Asignatura 149 </td> 150 <td style='width: 25%; text-align: center ; '>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 238
151 <?php echo tohtml($nombre) ?> 152 </td> 153 <td style='width: 25%; text-align: right ; font-weight: 154 bold;' class="cabecera"> 155 Código Asignatura 156 </td> 157 <td colspan="3" style='width: 25%; text-align: center ; '> 158 <?php echo $codigo ?> 159 </td> 160 </tr> 161 <tr> 162 <td style='width: 25%; text-align: right ; font-weight: 163 bold;' class="cabecera"> 164 Curso 165 </td> 166 <td style='width: 25%; text-align: center ; '> 167 <?php echo $curso ?> 168 </td> 169 <td style='width: 25%; text-align: right ; font-weight: 170 bold;' class="cabecera"> 171 Letra 172 </td> 173 <td colspan="3" style='width: 25%; text-align: center ; '> 174 <?php echo $letra ?> 175 </td> 176 </tr> 177 <tr> 178 <td style='width: 25%; text-align: right ; font-weight: 179 bold;' class="cabecera"> 180 Horario 181 </td> 182 <td style='width: 25%; text-align: center ; '> 183 <?php echo $horario ?> 184 </td> 185 <td style='width: 25%; text-align: right ; font-weight: 186 bold;' class="cabecera"> 187 Clase 188 </td> 189 <td colspan="3" style='width: 25%; text-align: center ; '> 190 <?php echo $clase ?> 191 </td> 192 </tr> 193 <tr> 194 <td height="39" colspan="6"> 195 <div align="center"><strong>Alumnos</strong></div> 196 </td> 197 </tr> 198 <tr> 199 <td style='width: 25%; text-align: center ; font-weight: 200 bold;' class="cabecera"> 201 Primer Apellido 202 </td> 203 <td style='width: 25%; text-align: center ; font-weight: 204 bold;' class="cabecera"> 205 Segundo Apellido 206 </td> 207 <td style='width: 25%; text-align: center ; font-weight: 208 bold;' class="cabecera"> 209 Nombre 210 </td> 211 212 <td style='width: 25%; text-align: center ; font-weight: 213 bold;' class="cabecera" colspan="2"> 214 Nota Guardar 215 </td> 216 <!--<td style='width:13%; text-align: center ; font-weight: 217 bold;' class="cabecera"> 218 Guardar 219 </td> --> 220 </tr> 221 222 <?php 223 if (isset($alumnos)) 224 { 225 $i = 0; 226 foreach ($alumnos as $actual) 227 {
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 239
228 229 $resto = $i % 2; 230 echo "<tr class='fila" . $resto . "'>\n"; 231 echo" <td style=' text-align: center ;'>" . tohtml( 232 $actual["apellido1"]) . " </td>\n"; 233 echo" <td style=' text-align: center ;'>" . tohtml( 234 $actual["apellido2"]) . " </td>\n"; 235 //echo" <td><div align=\"center\"> " . tohtml($actual[ 236 "nombre"]). " </div></td>\n"; 237 echo" <td style=' text-align: center ;'> " . tohtml( 238 $actual["nombre"]). " </td>\n"; 239 echo" <td style=' text-align: center ;' colspan='2'> 240 "; 241 echo" <form method='get' name='alumno_" . $actual[ 242 "login"] . "' action='guardar_notas.php'>\n 243 <input type='text' name='nota' size='5' 244 onchange='javascript:nueva_nota(\"" . $actual[ 245 "login"] ."\");' value='".$actual["nota"]." '/> 246 \n 247 <input type='button' name='Submit' 248 value='Guardar' onclick='javascript: 249 enviar_alumno(\"" . $actual["login"] . "\");'/> 250 \n 251 <input type='hidden' name='trim' value=''/> 252 <input type='hidden' name='cambiado' 253 value='false'/> 254 <input type='hidden' name='login' value='" . 255 tohtml($actual["login"]). "'/> 256 <input type='hidden' name='asignatura' 257 value=''/>\n 258 </form>\n 259 </td>\n"; 260 echo"</tr>\n"; 261 262 $i++; 263 264 } 265 266 267 } 268 ?> 269 270 </table> 271 <form method='get' name='general' action='/webcole/guardar_notas. 272 php'> 273 <input type='hidden' name='datos' value=''/> 274 <input type='hidden' name='asignatura' value='' /> 275 <input type='hidden' name='trimestre' value=''/> 276 <div align="center"><input type="button" name='Submit' 277 value='Guardar Todos' onclick='javascript:enviar_todos();'/>< 278 /div> 279 280 </form> 281 </td> 282 <td class="general"> </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>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 240
Profesor_faltas.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 <?php 5 //leemos los datos recibidos (si se reciben) 6 $codasig = $_REQUEST["codasig"]; 7 $fecha = $_REQUEST["fecha"]; 8 9 $asignaturas = asignaturas_profesor(); 10 if (!isset($codasig)) 11 { 12 $codasig = -1; 13 } 14 else 15 { 16 if (!array_key_exists($codasig, $asignaturas)) 17 { 18 $codasig = -1; 19 } 20 } 21 22 if (!isset($fecha)) 23 { 24 $fecha = ""; 25 } 26 27 28 //Si las dos variables estan definidas deberemos buscar los datos que 29 necesitaran. 30 ?> 31 32 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. 33 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 34 <html xmlns="http://www.w3.org/1999/xhtml"> 35 <head> 36 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 37 <title>CP Emilio Lluch</title> 38 <link href="css/general.css" rel="stylesheet" type="text/css" /> 39 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 40 <link href="css/profesor.css" rel="stylesheet" type="text/css" /> 41 <script type="text/javascript" src="./js/fecha.js"> </script> 42 <script type="text/javascript" src="./js/profesor.js"> </script> 43 <script type="text/javascript"> 44 45 </script> 46 47 48 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 49 </head> 50 51 <body onload="javascript:displayTime();"> 52 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 53 <tr> 54 <td style="width: 150px;" class="logo"> </td> 55 <td colspan="2" class="titulo"> </td> 56 </tr> 57 <tr> 58 <td class="fecha"> </td> 59 <td colspan="2" class="fecha"> 60 <div id="campoHora"> </div> 61 </td> 62 </tr> 63 <tr> 64 <td class="menu"> 65 <ul> 66 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 67 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 68 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 69 /li> 70 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 71 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 72 /a></li> 73 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 241
74 </a></li> 75 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 76 /a></li> 77 <li><a href="/webcole/Profesor_tablon.php">Tablón de 78 anuncios </a></li> 79 </ul> 80 </td> 81 <td class="general"> 82 <p style='text-align: center ; font-weight: bold; font-size:18px'> 83 Faltas de Asistencia 84 </p> 85 <div align="center"> 86 87 88 <form name='asignatura' method='get' action='#'> 89 <br /> 90 <strong>Asignaturas disponibles</strong> 91 <select name="idasig" onchange="javascript:buscarasignaturafaltas(); 92 "> 93 <option value='-1'>Selecciona una asignatura</option> 94 <?php 95 96 foreach ($asignaturas as $asig) 97 { 98 if ( $codasig == $asig["codasig"]) 99 echo "<option value='" . $asig["codasig"]. "' 100 selected='selected'>" . tohtml($asig["nombre"]) . "</option> 101 \n"; 102 else 103 echo "<option value='" . $asig["codasig"]. "'>" . tohtml( 104 $asig["nombre"]) . "</option>\n"; 105 } 106 ?> 107 </select> 108 <? 109 //Obtenemos los datos necesarios para rellenar la tabla 110 if ( $codasig <= 0 ) 111 { 112 $nombre = "----"; 113 $codigo = "----"; 114 $curso = "----"; 115 $letra = "-"; 116 $horario = "----"; 117 $clase = "----"; 118 119 } 120 else 121 { 122 //recuperamos los datos 123 $datos = obtener_datos_asignatura($codasig); 124 $nombre = $datos["nombre"]; 125 $codigo = $codasig; 126 $curso = $datos["curso"]; 127 $letra = $datos["letra"]; 128 $horario = $datos["horario"]; 129 $clase = $datos["aula"]; 130 131 if ( strlen($fecha) > 0 ) 132 $alumnos = obtener_faltas_alumnos ($codasig, $fecha) ; 133 } 134 135 ?> 136 <br /> 137 <br /> 138 <strong>Fecha de la falta </strong> 139 <input type='text' value='<? echo $fecha; ?>' readonly="readonly" 140 size='10' name='fecha' onfocus="javascript:buscarasignaturafaltas(); 141 " /> 142 <input type='button' value='Selecciona Dia' 143 onclick="muestraCalendario('','asignatura','fecha')" /> 144 145 146 </form> 147 </div> 148 <br/> 149 150 <table style='width: 100%; height:100%; text-align:center;'
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 242
151 border="1"> 152 <tr> 153 <td style='width:20%; text-align: right ; font-weight: bold;' 154 class='cabecera'>Nombre Asignatura </td> 155 <td style='width:20%; text-align: center ; ' ><?php echo tohtml( 156 $nombre) ?></td> 157 <td style='width:20%; text-align: center ; ' > </td> 158 <td style='width:20%; text-align: right ; font-weight: bold;' 159 colspan="3" class='cabecera'>Código Asignatura</td> 160 <td style='width:20%; text-align: center ; ' colspan="3"><?php 161 echo $codigo ?></td> 162 </tr> 163 <tr> 164 <td style='width:20%; text-align: right ; font-weight: bold;' 165 class='cabecera'>Curso</td> 166 <td style='width:20%; text-align: center ; '><?php echo $curso 167 ?></td> 168 <td style='width:20%; text-align: center ; ' > </td> 169 <td style='width:20%; text-align: right ; font-weight: bold; 170 'colspan="3" class='cabecera'>Letra</td> 171 <td style='width:20%; text-align: center ; 'colspan="3"><?php 172 echo $letra ?> </td> 173 </tr> 174 <tr> 175 <td style='width:20%; text-align: right ; font-weight: bold;' 176 class='cabecera'>Horario</td> 177 <td style='width:20%; text-align: center ; '><?php echo 178 $horario ?></td> 179 <td style='width:20%; text-align: center ; ' > </td> 180 <td style='width:20%; text-align: right ; font-weight: bold; 181 'colspan="3" class='cabecera'>Clase</td> 182 <td style='width:20%; text-align: center ; 'colspan="3"><?php 183 echo $clase ?> </td> 184 </tr> 185 <tr> 186 <td style=' text-align: center ; font-weight: bold;'colspan="8"> 187 Alumno</td> 188 </tr> 189 <tr> 190 <!--<td style='width:3%; text-align: center ; font-weight: bold; 191 '>Sel</td> --> 192 <td style='width:20%; text-align: center ; font-weight: bold;' 193 class='cabecera'>Primer Apellido</td> 194 <td style='width:20%; text-align: center ; font-weight: bold;' 195 class='cabecera'>Segundo Apellido </td> 196 <td style='width:20%; text-align: center ; font-weight: bold;' 197 class='cabecera'>Nombre</td> 198 <td colspan="5" style='width:40%; ' class='cabecera'> 199 <span style='width:5%; text-align: left ;'>Sel</span> 200 <span style='width:20%; text-align: center ;'>Fecha</span> 201 <span style='width:5%; text-align: center ;'>Just</span> 202 <span style='width:25%; text-align: center ;'>Poner Falta< 203 /span> 204 <span style='width:25%; text-align: center ;'>Quitar Falta< 205 /span> 206 207 </td> 208 <!-- <td style='width:5%; text-align: center ; font-weight: 209 bold;'>Jus.</td> 210 <td style='width:10%; text-align: center ; font-weight: bold;'> 211 Poner Falta </td> 212 <td style='width:10%; text-align: center ; font-weight: bold;'> 213 Quitar Falta </td> 214 --> 215 </tr> 216 217 218 <?php 219 if (isset($alumnos)) 220 { 221 $i = 0; 222 foreach ($alumnos as $actual) 223 { 224 if (strlen($actual["login"]) > 0) 225 { 226 $resto = $i % 2; 227 echo"<tr class='fila" . $resto . "'>\n";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 243
228 229 //echo" <td style='width:3%; text-align: center ;'>< 230 form method='get' name='alumno_" . $actual["login"] 231 . "_1' action='poner_faltas.php'>\n 232 // </form></td> "; 233 echo" <td style='width:20%; text-align: center ;'> 234 " . tohtml($actual["apellido1"]) . " </td>\n"; 235 echo" <td style='width:20%; text-align: center ;'> 236 " . tohtml($actual["apellido2"]) . " </td>\n"; 237 //echo" <td><div align=\"center\"> " . tohtml( 238 $actual["nombre"]). " </div></td>\n"; 239 echo" <td style='width:20%; text-align: center ;'> 240 " . tohtml($actual["nombre"]). " </td>\n"; 241 /*echo" <td style='width:10%; text-align: center ;'> 242 <form method='get' name='alumno_" . $actual["login"] 243 . "_2' action='poner_faltas.php'>\n 244 </form></td>\n"; 245 echo" <td style='width:5%; text-align: center ;'>< 246 form method='get' name='alumno_" . $actual["login"] 247 . "_3' action='poner_faltas.php'>\n"; 248 echo" <td style='width:10%; text-align: center ;'> 249 <form method='get' name='alumno_" . $actual["login"] 250 . "' action='poner_faltas.php'>\n 251 <input type=\"checkbox\" 252 name=\"seleccionado\" />\n 253 <input type=\"checkbox\" name=\"checkbox\" 254 "; 255 if ($actual["justificada"] != 0 ) 256 { 257 echo "checked=\"checked\" 258 onchange=\"javascript:cambio('" .tohtml( 259 $actual["login"]). "');\"/> </td>\n"; 260 } 261 else 262 { 263 echo " onchange=\"javascript:cambio('" . 264 tohtml($actual["login"]). "');\"/> < 265 /form></td>\n"; 266 } 267 echo" <input type='button' name='Submit' 268 value='Poner Falta' onclick='javascript: 269 enviar_alumno_faltas(\"" . $actual["login"] . "\"); 270 '/>\n 271 <input type='hidden' name='cambiado' 272 value='false'/> 273 <input type='hidden' name='borrar' 274 value='false'/> 275 <input type='hidden' name='login' value='" . 276 tohtml($actual["login"]). "'/> 277 <input type='hidden' name='asignatura' 278 value=''/> 279 \n 280 </td>\n"; 281 echo" <td style='width:10%; text-align: center ;'>< 282 input type='button' name='Submit' value='Quitar 283 Falta' onclick='javascript:quitar_falta(\"" . 284 $actual["login"] . "\");'/>\n</td>\n"; 285 286 echo"</form>\n"; 287 */ 288 echo" <td colspan=\"5\" style='width:40%; '> 289 <form method='get' name='alumno_" . 290 $actual["login"] . "' 291 action='poner_faltas.php'> 292 <span style='width:20%; text-align: 293 left ;'><input type=\"checkbox\" 294 name=\"seleccionado\" /></span> 295 <span style='width:20%; text-align: 296 center ;'><input type='text' 297 name='fecha' size='6' value='". 298 $actual["fecha"]." '/></span> 299 <span style='width:20%; text-align: 300 center ;'><input type=\"checkbox\" 301 name=\"checkbox\" "; 302 if ($actual["justificada"] != 0 ) 303 { 304 echo "checked=\"checked\"
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 244
305 onchange=\"javascript:cambio('" 306 .tohtml($actual["login"]). "'); 307 \"/></span>\n"; 308 } 309 else 310 { 311 echo " onchange=\"javascript: 312 cambio('" .tohtml($actual[ 313 "login"]). "');\"/></span>\n"; 314 } 315 echo" <span style='width:20%; text-align: 316 center ;'><input type='button' name='Submit' 317 value='Poner Falta' onclick='javascript: 318 enviar_alumno_faltas(\"" . $actual["login"] . "\"); 319 '/></span> 320 <span style='width:20%; text-align: 321 center ;'><input type='button' 322 name='Submit' value='Quitar Falta' 323 onclick='javascript:quitar_falta( 324 \"" . $actual["login"] . "\");'/>< 325 /span> 326 <input type='hidden' 327 name='cambiado' value='false'/> 328 <input type='hidden' name='borrar' 329 value='false'/> 330 <input type='hidden' name='login' 331 value='" . tohtml($actual["login"]). 332 "'/> 333 <input type='hidden' 334 name='asignatura' value=''/>\n 335 </form>"; 336 echo" </td>"; 337 echo"</tr>\n"; 338 $i++; 339 } 340 341 } 342 } 343 else 344 { 345 346 } 347 ?> 348 <!-- <input type='hidden' name='fecha' value=''/> --> 349 </table> 350 <form method='get' name='general' action='/webcole/poner_faltas. 351 php'> 352 <input type='hidden' name='datos' value=''/> 353 <input type='hidden' name='asignatura' value='' /> 354 <input type='hidden' name='fecha' value=''/><br/> 355 <div align="center">Poner falta a todos los alumnos 356 seleccionados<br/><input type="button" name='Submit' 357 value='Poner Falta a Todos' onclick='javascript: 358 enviar_todos_faltas();'/><br/></div> 359 360 </form> 361 </td> 362 <td class="general"> </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>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 245
poner_faltas.php 1 <?php 2 require_once "profesor_inc.php"; 3 4 $codasig = $_REQUEST["asignatura"]; 5 $fecha = $_REQUEST["fecha"]; 6 $datos = $_REQUEST["datos"]; 7 $borrar = $_REQUEST["borrar"]; 8 9 if (isset($codasig) && isset($fecha) && isset($datos) ) 10 { 11 12 //echo "datos vale: $datos<br>\n"; 13 //separamos los alumnos ( unos de otros 14 $alu_faltas = explode( "|" , $datos); 15 16 foreach ($alu_faltas as $actual) 17 { 18 if(strlen($actual) > 1) 19 { 20 21 $logfalta = explode(";", $actual); 22 $aux = explode(":", $logfalta[0]); $login = $aux[1]; 23 $aux = explode(":", $logfalta[1]); 24 25 if (strcmp($aux[1], "false") == 0) 26 { 27 $just = 0; 28 } 29 else 30 { 31 $just = 1; 32 } 33 //echo "Login vale: $login, Nota vale: $nota<br>\n"; 34 35 if (strcmp($borrar, "true")==0) 36 { 37 quitar_falta($login, $codasig, $fecha); 38 } 39 else 40 { 41 poner_falta($login, $codasig, $fecha, $just); 42 } 43 } 44 } 45 } 46 else 47 { 48 $codasig = $_REQUEST["asignatura"]; 49 $fecha = $_REQUEST["fecha"]; 50 $login = $_REQUEST["login"]; 51 $just = $_REQUEST["checkbox"]; 52 53 if (!isset($_REQUEST["checkbox"])) 54 { 55 $just = 0; 56 } 57 else 58 { 59 $just = 1; 60 } 61 62 if (isset($codasig) && isset($fecha) && isset($login)) 63 { 64 if (strcmp($borrar, "true")==0) 65 { 66 quitar_falta($login, $codasig, $fecha); 67 } 68 else 69 { 70 poner_falta($login, $codasig, $fecha, $just); 71 } 72 } 73 else
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 246
74 { 75 header("Location: Profesor_faltas.php"); 76 echo "header<br>\n"; 77 } 78 } 79 80 //header("Location: Profesor_notas.php"); 81 82 ?> 83 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 84 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 85 <html xmlns="http://www.w3.org/1999/xhtml"> 86 <head> 87 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 88 <META HTTP-EQUIV="Refresh" CONTENT="0;URL=Profesor_faltas.php?codasig=<? 89 echo $codasig;?>&fecha=<? echo $fecha;?>"> 90 91 92 <title>CP Emilio Lluch</title> 93 <link href="css/general.css" rel="stylesheet" type="text/css" /> 94 95 <script type="text/javascript" src="./js/fecha.js"> </script> 96 97 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 98 </head> 99 <body> 100 <p style='text-align: center ; font-weight: bold; font-size:18px'> 101 Poner faltas 102 </p> 103 Para volver a la pantalla de poner faltas de asistencia pulsa <a 104 href="Profesor_faltas.php"> aquí </a> 105 </body></html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 247
Profesor_instalaciones.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. 6 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 7 <html xmlns="http://www.w3.org/1999/xhtml"> 8 <head> 9 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 10 <title>CP Emilio Lluch</title> 11 <link href="css/general.css" rel="stylesheet" type="text/css" /> 12 <link href="css/profesor.css" rel="stylesheet" type="text/css" /> 13 <script type="text/javascript" src="./js/fecha.js"> </script> 14 15 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 16 </head> 17 18 <body onload="javascript:displayTime();"> 19 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 20 <tr> 21 <td style="width: 150px;" class="logo"> </td> 22 <td colspan="2" class="titulo"> </td> 23 </tr> 24 <tr> 25 <td class="fecha"> </td> 26 <td colspan="2" class="fecha"> 27 <div id="campoHora"> </div> 28 </td> 29 </tr> 30 <tr> 31 <td class="menu"> 32 <ul> 33 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 34 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 35 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 36 /li> 37 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 38 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 39 /a></li> 40 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 41 </a></li> 42 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 43 /a></li> 44 <li><a href="/webcole/Profesor_tablon.php">Tablón de 45 anuncios </a></li> 46 </ul> 47 </td> 48 <td class="general"> 49 <p style='text-align: center ; font-weight: bold; font-size:18px'> 50 Instalaciones 51 </p> 52 <table border="1"> 53 54 <?php 55 $ins = listado_reservas_instalaciones(); 56 if ($ins == null) 57 { 58 echo "<tr><td><b>No hay instalaciones reservadas</b></td>< 59 /tr>\n"; 60 } 61 else 62 { 63 echo "<tr>\n"; 64 echo " <td style='width: 140px;' class='cabecera'> 65 Instalación</td>\n"; 66 echo " <td style='width: 100px;' class='cabecera'>Fecha< 67 /td>\n"; 68 echo " <td style='width: 425px;' class='cabecera'> 69 Proposito</td>\n"; 70 echo " <td style='width: 90px;' class='cabecera'>Normas< 71 /td>\n"; 72 echo " <td style='width: 80px;' class='cabecera'> < 73 /td>\n";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 248
74 echo "</tr>\n"; 75 $i = 0; 76 foreach ($ins as $actual) 77 { 78 $temp = convertir_fecha($actual["fecha"]); 79 $fecha = $fecha = split(" ",$temp); 80 $resto = $i % 2; 81 echo"<tr class='fila" . $resto . "'>\n"; 82 echo "<td>" . tohtml($actual["instalacion"]) . "</td>"; 83 echo "<td>" . $fecha[0] . "</td>"; 84 echo "<td>" . tohtml($actual["proposito"]) . "</td>"; 85 echo "<td><a href='" . $actual["normas"] . "'>Normativa< 86 /a></td>"; 87 echo "<td>"; 88 echo " <form method='get' 89 action='/webcole/Profesor_anular_reserva.php' 90 name='anular'> "; 91 echo " <div style='text-align: center;'> "; 92 echo " <button value='" . $actual["idinst"] . 93 "' name='iditem'>Anular</button> "; 94 echo " </div> "; 95 echo " <input name='fecha' type='hidden' value='" . 96 urlencode($actual["fecha"]) . "'/> "; 97 echo " <input name='item' type='hidden' value='" . 98 INST . "'/> "; 99 echo " </form> "; 100 echo "</td>"; 101 echo "</tr>\n"; 102 $i++; 103 } 104 } 105 ?> 106 107 </table> 108 <br/> 109 110 <a href="/webcole/Profesor_reservar_instalacion.php">Reservar 111 instalació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"> </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>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 249
Profesor_reservar_instalacion.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. 6 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 7 <html xmlns="http://www.w3.org/1999/xhtml"> 8 <head> 9 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 10 11 <title>CP Emilio Lluch</title> 12 <link href="css/general.css" rel="stylesheet" type="text/css" /> 13 <link href="css/calendario.css" rel="stylesheet" type="text/css" /> 14 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 15 <script type="text/javascript" src="./js/fecha.js"> </script> 16 <script type="text/javascript" src="./js/reservas.js"> </script> 17 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 18 </head> 19 20 <body onload="javascript:displayTime();"> 21 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 22 <tr> 23 <td style="width: 150px;" class="logo"> </td> 24 <td colspan="2" class="titulo"> </td> 25 </tr> 26 <tr> 27 <td class="fecha"> </td> 28 <td colspan="2" class="fecha"> 29 <div id="campoHora"> </div> 30 </td> 31 </tr> 32 <tr> 33 <td class="menu"> 34 <ul> 35 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 36 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 37 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 38 /li> 39 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 40 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 41 /a></li> 42 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 43 </a></li> 44 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 45 /a></li> 46 <li><a href="/webcole/Profesor_tablon.php">Tablón de 47 anuncios </a></li> 48 </ul> 49 </td> 50 <td class="general"> 51 <p style='text-align: center ; font-weight: bold; font-size:18px'> 52 Reservar de Instalaciones 53 </p> 54 <form method="get" action="/webcole/Profesor_reserva.php" 55 name="reservar"> 56 <?php 57 echo "<input type='hidden' name='item' value='" . INST . "' />"; 58 ?> 59 <table style="text-align: left; width: 700px; height: 284px;" 60 border="0" cellpadding="2" cellspacing="2"> 61 <tbody> 62 <tr> 63 <td style="width: 300px; text-align: right;"><span 64 style="font-weight: bold; text-align: right;"> 65 Seleccionauna 66 instalación</span></td> 67 <td style="width: 400px; text-align: left;"><select 68 name="iditem" 69 onchange="javascript:redirigir('<?php echo PROFE; ?> 70 ', '<?php echo strtolower(INST); ?>');"> 71 <option value='-1'>Selecciona una instalació 72 n</option> 73 <?php
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 250
74 //Comprobamos si llegamos aqui despues de elegir 75 una instalacion 76 $iditem = $_REQUEST["iditem"]; 77 78 //echo "id vale: $iditem\n"; 79 80 if (!isset($iditem)) 81 $iditem = -1; 82 //echo "id vale: $iditem\n"; 83 $ins = listado_instalacion(); 84 foreach ($ins as $actual) 85 { 86 if ($actual["idinstalacion"] == $iditem) 87 { 88 echo "<option value='" . $actual[ 89 "idinstalacion"]. "' selected='selected'>" . 90 $actual["instalacion"] . "</option>\n"; 91 } 92 else 93 { 94 echo "<option value='" . $actual[ 95 "idinstalacion"]. "'>" . $actual[ 96 "instalacion"] . "</option>\n"; 97 } 98 } 99 ?> 100 </select></td> 101 </tr> 102 <tr> 103 <td style="width: 200px; text-align: right;"><span 104 style="font-weight: bold; ">Selecciona una fecha< 105 /span></td> 106 <td style="width: 400px;"><?php 107 require_once ("calendario_ins.php"); 108 109 //if (!$HTTP_POST_VARS && !$HTTP_GET_VARS){ 110 if ((!isset($_GET["nuevo_mes"])) || (!isset($_GET[ 111 "nuevo_mes"])) || (!isset($_GET["nuevo_mes"]))) 112 { 113 //echo "http no definidos<br>\n"; 114 $tiempo_actual = time(); 115 $mes = date("n", $tiempo_actual); 116 $ano = date("Y", $tiempo_actual); 117 $dia=date("d"); 118 $fecha=$ano . "-" . $mes . "-" . $dia; 119 }else { 120 //echo "http definidos<br>\n"; 121 $mes = $_GET["nuevo_mes"]; 122 $ano = $_GET["nuevo_ano"]; 123 $dia = $_GET["dia"]; 124 $fecha=$ano . "-" . $mes . "-" . $dia; 125 } 126 if (!isset($dia)) 127 { 128 $dia=date("d"); 129 } 130 if (!isset($mes)) 131 { 132 $mes = date("n", $tiempo_actual); 133 } 134 if (!isset($ano)) 135 { 136 $ano = date("Y", $tiempo_actual); 137 } 138 echo "<input type=\"hidden\" name=\"dia\" value=''/>\n"; 139 echo "<input type=\"hidden\" name='dia_c' value='$dia'/> 140 \n"; 141 echo "<input type=\"hidden\" name='mes' value='$mes'/> 142 \n"; 143 echo "<input type=\"hidden\" name='anyo' value='$ano'/> 144 \n"; 145 $tabla = fecha_reservas($iditem, INST); 146 if (!isset($tabla)) 147 { 148 //utilizamos una variable no inicializada 149 //mostrar_calendario tiene en cuenta si esa 150 variable
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 251
151 //no esta inicializada 152 mostrar_calendario($dia_c,$mes,$ano, 153 $variable_no_asignada, INST, PROFE); 154 } 155 else 156 { 157 mostrar_calendario($dia_c,$mes,$ano, $tabla, INST, 158 PROFE); 159 } 160 161 162 163 ?></td> 164 </tr> 165 166 <tr> 167 <td style="font-weight: bold; text-align: right;">Fecha 168 seleccionada</td> 169 <td><input readonly="readonly" maxlength="15" 170 name="fecha" /></td> 171 </tr> 172 <tr> 173 <td style="width: 200px;text-align: right;font-weight: 174 bold;"><label>Motivo</label> 175 <br /> 176 <i>(máximo 1500 cará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;"> </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"> </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>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 252
Profesor_reserva.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 <?php 5 //obtener datos enviados por el formulario 6 $dia = $_REQUEST["dia"]; 7 $mes = $_REQUEST["mes"]; 8 $anyo = $_REQUEST["anyo"]; 9 $iditem = $_REQUEST["iditem"]; 10 $motivo = substr($_REQUEST["motivo"], 0, MAX_LENGTH_MOTIVO-1); 11 $item = $_REQUEST["item"]; 12 $login = $_SESSION["id"]; 13 14 15 //por si en futuro al reservar se tiene en cuenta la hora(de 16 inicio) 17 $hora = 00; 18 $min = 00; 19 $seg = 00; 20 21 $error = ""; 22 $ano_hoy=date("Y"); 23 24 //¿Estan definadas las variables? 25 if (!isset($dia) || $dia < 0 || $dia > 31) 26 { 27 $error = "Día no válido<br>\n"; 28 } 29 30 if (!isset($mes) || $mes < 1 || $mes > 12 ) 31 { 32 $error .= "Mes no válido<br>\n"; 33 } 34 //solo reservas en este año 35 if ( !isset($anyo) || $anyo != $ano_hoy ) 36 { 37 $error .= "Año no válido<br>\n"; 38 } 39 40 if (!isset($iditem) || $iditem ==-1 ) 41 { 42 $error .= "Instalacion no vá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ón<br>\n"; 73 }
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 253
74 } 75 76 77 78 79 ?> 80 81 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 82 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 83 <html xmlns="http://www.w3.org/1999/xhtml"> 84 <head> 85 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 86 <?php 87 //Ruta de retorno que utilizaremos aqui si todo fue bien 88 if (strcmp($item, INST)==0) 89 { 90 $url = "/webcole/Profesor_instalaciones.php"; 91 } 92 else 93 { 94 $url = "/webcole/Profesor_equipaciones.php"; 95 } 96 if ( $es_valido ) 97 { 98 echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=$url\">\n"; 99 } 100 101 ?> 102 103 <title>CP Emilio Lluch</title> 104 <link href="css/general.css" rel="stylesheet" type="text/css" /> 105 106 <script type="text/javascript" src="./js/fecha.js"> </script> 107 108 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 109 </head> 110 111 <body onload="javascript:displayTime(); redirigir();"> 112 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 113 <tr> 114 <td style="width: 150px;" class="logo"> </td> 115 <td colspan="2" class="titulo"> </td> 116 </tr> 117 <tr> 118 <td class="fecha"> </td> 119 <td colspan="2" class="fecha"><div id="campoHora"> </div></td> 120 </tr> 121 <tr> 122 <td class="menu"> 123 <ul> 124 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 125 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 126 <li><a href="/webcole/Profesor_profesores.php">Profesores</a></li> 127 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 128 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia </a>< 129 /li> 130 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones </a> 131 </li> 132 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos</a>< 133 /li> 134 <li><a href="/webcole/Profesor_tablon.php">Tablón de 135 anuncios </a></li> 136 </ul> </td> 137 <td class="general"> 138 <?php 139 //Ruta de retorno que utilizaremos aqui si todo fue bien 140 if (strcmp($item, INST)==0) 141 { 142 $url_reserva = "/webcole/Profesor_reservar_instalacion.php"; 143 } 144 else 145 { 146 $url_reserva = "/webcole/Profesor_reservar_equipacion.php"; 147 } 148 echo "Se han producido los siguientes errores: <br> $error<br> 149 \n"; 150 echo "<br>\n";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 254
151 echo "Pulsa <a href='$url_reserva'>". tohtml("aquí"). "</a> 152 para volver al formulario de reserva<br>\n"; 153 154 ?> 155 </td> 156 <td class="general"> 157 <p style='text-align: center ; font-weight: bold; font-size:18px'> 158 Reservas 159 </p> 160 </td> 161 </tr> 162 <tr> 163 <td><?php 164 bienvenida(); 165 ?></td> 166 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 167 <?php 168 rellenar_eventos_curso(); 169 ?> 170 </td> 171 </tr> 172 </table> 173 </body> 174 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 255
Profesor_anular_reserva.php 1 <?php 2 require_once "profesor_inc.php"; 3 // 4 $fecha = urldecode($_REQUEST["fecha"]); 5 $iditem = $_REQUEST["iditem"]; 6 $login = $_SESSION["id"]; 7 $item = $_REQUEST["item"]; 8 $error = ""; 9 $es_valido = true; 10 11 if ( !isset($login)) 12 { 13 header("Location: /webcole/prohibido.php"); 14 $es_valido = false; 15 } 16 //ya estara en el formato de mysql, 17 //si no es correcto sencillamente no se borrara el registro. 18 if ( !isset($fecha)) 19 { 20 $error .="Error en la Fecha. No válida<br>\n"; 21 $es_valido = false; 22 } 23 if ( !isset($iditem) || $iditem < 1 ) 24 { 25 $error .="Error en el codigo de instalación. No válido<br> 26 \n"; 27 $es_valido = false; 28 } 29 30 if ($es_valido) 31 { 32 $resultado = anular_reserva($login, $fecha, $iditem, $item); 33 if ($resultado) 34 { 35 //echo "Reserva correctamente anulada<br>\n"; 36 } 37 else 38 { 39 $error = "Han ocurrido problemas durante la anulación de la 40 reserva <br>\n"; 41 $es_valido = false; 42 } 43 } 44 else 45 { 46 $error = "Han ocurrido errores en los parámetros de 47 anulación<br>\n" . $error; 48 //echo $error; 49 $es_valido = false; 50 } 51 52 if (strcmp($item, INST) == 0 ) 53 { 54 $url = "/webcole/Profesor_instalaciones.php"; 55 } 56 else 57 { 58 $url = "/webcole/Profesor_equipaciones.php"; 59 } 60 ?> 61 62 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 63 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 64 <html xmlns="http://www.w3.org/1999/xhtml"> 65 <head> 66 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 67 <?php 68 if ($es_valido) 69 echo "<meta http-equiv=\"refresh\" content=\"5;URL=$url\" />\n"; 70 ?> 71 <title>CP Emilio Lluch</title> 72 <link href="css/general.css" rel="stylesheet" type="text/css" /> 73
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 256
74 <script type="text/javascript" src="./js/fecha.js"> </script> 75 76 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 77 </head> 78 79 <body onload="javascript:displayTime();"> 80 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 81 <tr> 82 <td style="width: 150px;" class="logo"> </td> 83 <td colspan="2" class="titulo"> </td> 84 </tr> 85 <tr> 86 <td class="fecha"> </td> 87 <td colspan="2" class="fecha"> 88 <div id="campoHora"> </div> 89 </td> 90 </tr> 91 <tr> 92 <td class="menu"> 93 <ul> 94 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 95 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 96 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 97 /li> 98 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 99 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 100 /a></li> 101 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 102 </a></li> 103 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 104 /a></li> 105 <li><a href="/webcole/Profesor_tablon.php">Tablón de 106 anuncios </a></li> 107 </ul> 108 </td> 109 <td class="general"> 110 <p style='text-align: center ; font-weight: bold; font-size:18px'> 111 Anular reservas 112 </p> 113 <?php 114 115 if ($es_valido) 116 { 117 echo "Reserva anulada correctamente<br/>\n"; 118 echo "<p>En 5 segundos serás a la página de 119 instalaciones. Si no pulsa"; 120 echo "<a href=\"$url\"> aquí</a></p>\n"; 121 } 122 else 123 { 124 echo "Han ocurrido problemas durante la anulación de la 125 reserva"; 126 echo "Errores: $error<br/>\n"; 127 128 echo "<p>Pulsa <a href=\"$url\"> aquí</a> para regresar 129 a la página de reservas</p>\n"; 130 } 131 ?> 132 133 </td> 134 <td class="general"> </td> 135 </tr> 136 <tr> 137 <td><?php 138 bienvenida(); 139 ?></td> 140 <td colspan="2" class="noticias"><h3>Eventos del curso </h3> 141 <?php 142 rellenar_eventos_curso(); 143 ?> 144 </td> 145 </tr> 146 </table> 147 </body> 148 </html>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 257
Profesor_equipaciones.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. 6 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 7 <html xmlns="http://www.w3.org/1999/xhtml"> 8 <head> 9 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 10 <title>CP Emilio Lluch</title> 11 <link href="css/general.css" rel="stylesheet" type="text/css" /> 12 <link href="css/profesor.css" rel="stylesheet" type="text/css" /> 13 <script type="text/javascript" src="./js/fecha.js"> </script> 14 15 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 16 </head> 17 18 <body onload="javascript:displayTime();"> 19 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 20 <tr> 21 <td style="width: 150px;" class="logo"> </td> 22 <td colspan="2" class="titulo"> </td> 23 </tr> 24 <tr> 25 <td class="fecha"> </td> 26 <td colspan="2" class="fecha"> 27 <div id="campoHora"> </div> 28 </td> 29 </tr> 30 <tr> 31 <td class="menu"> 32 <ul> 33 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 34 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 35 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 36 /li> 37 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 38 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 39 /a></li> 40 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 41 </a></li> 42 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 43 /a></li> 44 <li><a href="/webcole/Profesor_tablon.php">Tablón de 45 anuncios </a></li> 46 </ul> 47 </td> 48 <td class="general"> 49 <p style='text-align: center ; font-weight: bold; font-size:18px'> 50 Equipaciones Reservadas 51 </p> 52 <table border="1"> 53 <?php 54 $ins = listado_reservas_equipaciones(); 55 if ($ins == null) 56 { 57 echo "<tr><td><b>No hay equipamientos reservados</b></td>< 58 /tr>\n"; 59 } 60 else 61 { 62 echo "<tr>\n"; 63 echo " <td style='width: 140px;' class='cabecera'> 64 Equipamiento</td>\n"; 65 echo " <td style='width: 100px;' class='cabecera'>Fecha< 66 /td>\n"; 67 echo " <td style='width: 425px;' class='cabecera'> 68 Propósito</td>\n"; 69 echo " <td style='width: 90px;' class='cabecera'>Normas< 70 /td>\n"; 71 echo " <td style='width: 80px;' class='cabecera'> < 72 /td>\n"; 73 echo "</tr>\n";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 258
74 $i = 0; 75 foreach ($ins as $actual) 76 { 77 $temp = convertir_fecha($actual["fecha"]); 78 $fecha = $fecha = split(" ",$temp); 79 80 $resto = $i % 2; 81 echo"<tr class='fila" . $resto . "'>\n"; 82 echo " <td>" . tohtml($actual["equipacion"]) . "</td> 83 \n"; 84 echo " <td>" . $fecha[0] . "</td>\n"; 85 echo " <td>" . tohtml($actual["proposito"]) . "</td> 86 \n"; 87 echo " <td><a href='" . $actual["normas"] . "'> 88 Normativa</a></td>\n"; 89 echo " <td>\n"; 90 echo " <form method='get' 91 action='/webcole/Profesor_anular_reserva.php' 92 name='anular'> \n"; 93 echo " <div style='text-align: center;'> \n"; 94 echo " <button value='" . $actual[ 95 "idequipacion"] . "' name='iditem'>Anular</button> \n"; 96 echo " </div> \n"; 97 echo " <input name='fecha' type='hidden' 98 value='" . urlencode($actual["fecha"]) . "'/> \n"; 99 echo " <input name='item' type='hidden' 100 value='" . EQUIP . "'/> \n"; 101 echo " </form> \n"; 102 echo " </td>\n"; 103 echo "</tr>\n"; 104 $i++; 105 } 106 } 107 ?> 108 109 </table> 110 <br/> 111 112 <a href="/webcole/Profesor_reservar_equipacion.php">Reservar 113 equipació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"> </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>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 259
Profesor_reservar_equipacion.php 1 <?php 2 require_once "profesor_inc.php"; 3 ?> 4 5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. 6 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 7 <html xmlns="http://www.w3.org/1999/xhtml"> 8 <head> 9 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 10 11 <title>CP Emilio Lluch</title> 12 <link href="css/general.css" rel="stylesheet" type="text/css" /> 13 <link href="css/calendario.css" rel="stylesheet" type="text/css" /> 14 15 <script type="text/javascript" src="./js/fecha.js"> </script> 16 <script type="text/javascript" src="./js/reservas.js"> </script> 17 18 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 19 </head> 20 21 <body onload="javascript:displayTime();"> 22 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 23 <tr> 24 <td style="width: 150px;" class="logo"> </td> 25 <td colspan="2" class="titulo"> </td> 26 </tr> 27 <tr> 28 <td class="fecha"> </td> 29 <td colspan="2" class="fecha"> 30 <div id="campoHora"> </div> 31 </td> 32 </tr> 33 <tr> 34 <td class="menu"> 35 <ul> 36 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 37 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 38 <li><a href="/webcole/Profesor_profesores.php">Profesores</a>< 39 /li> 40 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 41 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 42 /a></li> 43 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 44 </a></li> 45 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 46 /a></li> 47 <li><a href="/webcole/Profesor_tablon.php">Tablón de 48 anuncios </a></li> 49 </ul> 50 </td> 51 <td class="general"> 52 <p style='text-align: center ; font-weight: bold; font-size:18px'> 53 Reservas de equipaciones 54 </p> 55 <form method="get" action="/webcole/Profesor_reserva.php" 56 name="reservar"> 57 <?php 58 echo "<input type='hidden' name='item' value='" . EQUIP . "' />\n"; 59 ?> 60 <table style="text-align: left; width: 700px; height: 284px;" 61 border="0" cellpadding="2" cellspacing="2"> 62 <tbody> 63 <tr> 64 <td style="width: 300px; text-align: right;"><span 65 style="font-weight: bold; text-align: right;"> 66 Seleccionauna 67 instalación</span></td> 68 <td style="width: 400px; text-align: left;"><select 69 name="iditem" onchange="javascript:redirigir('<?php 70 echo PROFE; ?>', '<?php echo strtolower(EQUIP); ?>');"> 71 <option value='-1'>Selecciona una equipación< 72 /option> 73 <?php
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 260
74 //Comprobamos si llegamos aqui despues de elegir 75 una instalacion 76 $iditem = $_REQUEST["iditem"]; 77 78 //echo "id vale: $iditem\n"; 79 80 if (!isset($iditem)) 81 $iditem = -1; 82 //echo "id vale: $iditem\n"; 83 $ins = listado_equipacion(); 84 foreach ($ins as $actual) 85 { 86 if ($actual["idequipacion"] == $iditem) 87 { 88 echo "<option value='" . $actual[ 89 "idequipacion"]. "' selected='selected'>" . 90 $actual["equipacion"] . "</option>\n"; 91 } 92 else 93 { 94 echo "<option value='" . $actual[ 95 "idequipacion"]. "'>" . $actual[ 96 "equipacion"] . "</option>\n"; 97 } 98 } 99 ?> 100 </select></td> 101 </tr> 102 <tr> 103 <td style="width: 200px; text-align: right;"><span 104 style="font-weight: bold; ">Selecciona una fecha< 105 /span></td> 106 <td style="width: 400px;"><?php 107 require_once ("calendario_ins.php"); 108 109 //if (!$HTTP_POST_VARS && !$HTTP_GET_VARS){ 110 if ((!isset($_GET["nuevo_mes"])) || (!isset($_GET[ 111 "nuevo_mes"])) || (!isset($_GET["nuevo_mes"]))) 112 { 113 //echo "http no definidos<br>\n"; 114 $tiempo_actual = time(); 115 $mes = date("n", $tiempo_actual); 116 $ano = date("Y", $tiempo_actual); 117 $dia=date("d"); 118 $fecha=$ano . "-" . $mes . "-" . $dia; 119 }else { 120 //echo "http definidos<br>\n"; 121 $mes = $_GET["nuevo_mes"]; 122 $ano = $_GET["nuevo_ano"]; 123 $dia = $_GET["dia"]; 124 $fecha=$ano . "-" . $mes . "-" . $dia; 125 } 126 if (!isset($dia)) 127 { 128 $dia=date("d"); 129 } 130 if (!isset($mes)) 131 { 132 $mes = date("n", $tiempo_actual); 133 } 134 if (!isset($ano)) 135 { 136 $ano = date("Y", $tiempo_actual); 137 } 138 echo "<input type=\"hidden\" name=\"dia\" value=''/>\n"; 139 echo "<input type=\"hidden\" name='dia_c' value='$dia'/> 140 \n"; 141 echo "<input type=\"hidden\" name='mes' value='$mes'/> 142 \n"; 143 echo "<input type=\"hidden\" name='anyo' value='$ano'/> 144 \n"; 145 $tabla = fecha_reservas($iditem, EQUIP); 146 if (!isset($tabla)) 147 { 148 //utilizamos una variable no inicializada 149 //mostrar_calendario tiene en cuenta si esa 150 variable
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 261
151 //no esta inicializada 152 mostrar_calendario($dia_c,$mes,$ano, 153 $variable_no_asignada, EQUIP, PROFE); 154 } 155 else 156 { 157 mostrar_calendario($dia_c,$mes,$ano, $tabla, EQUIP, 158 PROFE); 159 } 160 161 162 163 ?></td> 164 </tr> 165 166 <tr> 167 <td style="font-weight: bold; text-align: right;">Fecha 168 seleccionada</td> 169 <td><input readonly="readonly" maxlength="15" 170 name="fecha" /></td> 171 </tr> 172 <tr> 173 <td style="width: 200px;text-align: right;font-weight: 174 bold;"><label>Motivo</label> 175 <br /> 176 <i>(máximo 1500 cá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;"> </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"> </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>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 262
Profesor_tablon.php 1 <?php 2 session_start(); 3 if($_SESSION["tipo"] != "Profesor") 4 header("Location: prohibido.php"); 5 ?> 6 7 8 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3. 9 org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 10 <html xmlns="http://www.w3.org/1999/xhtml"> 11 <head> 12 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 13 <title>CP Emilio Lluch</title> 14 <link href="css/general.css" rel="stylesheet" type="text/css" /> 15 16 <script type="text/javascript" src="./js/fecha.js"> </script> 17 18 <link href="css/principal.css" rel="stylesheet" type="text/css" /> 19 </head> 20 21 <body onload="javascript:displayTime();"> 22 <table width="100%" border="0" frame="void" rules="none" cellspacing="0"> 23 <tr> 24 <td width="150" class="logo"> </td> 25 <td colspan="3" class="titulo"> </td> 26 </tr> 27 <tr> 28 <td class="fecha"> </td> 29 <td colspan="3" class="fecha"><div id="campoHora"> </div></td> 30 </tr> 31 <tr> 32 <td rowspan="5" class="menu"> 33 <ul> 34 <li><a href="/webcole/intranetProfe.php">Inicio</a></li> 35 <li><a href="/webcole/Profesor_alumnos.php">Alumnos</a></li> 36 <li><a href="/webcole/profesores.php">Profesores</a></li> 37 <li><a href="/webcole/Profesor_notas.php">Notas</a></li> 38 <li><a href="/webcole/Profesor_faltas.php">Faltas asistencia < 39 /a></li> 40 <li><a href="/webcole/Profesor_instalaciones.php">Instalaciones 41 </a></li> 42 <li><a href="/webcole/Profesor_equipaciones.php">Equipamientos< 43 /a></li> 44 <li><a href="/webcole/Profesor_tablon.php">Tablón de 45 anuncios </a></li> 46 </ul> </td> 47 <td colspan="2" class="general"><h1>Tablón de anuncios </h1> 48 <p> </p></td> 49 <td rowspan="5" class="general"> </td> 50 </tr> 51 <?php 52 include("bd.php"); 53 $conn = Conectar(); 54 $sql = "SELECT * FROM anuncio ORDER BY idanuncio DESC"; 55 $anuncios = consulta($sql, $conn); 56 $anuncios_mostrados = 0; 57 $anuncios_amostrar = 10; 58 while($row = siguiente($anuncios)) 59 { 60 if($anuncios_mostrados >= $anuncios_amostrar) 61 break; 62 $anuncios_mostrados++; 63 $sql = "SELECT * FROM usuario WHERE login = '".$row["login"]."'"; 64 $usuario = consulta($sql,$conn); 65 $usuario = siguiente($usuario); 66 echo "<tr>"; 67 if($anuncios_mostrados>=3) 68 echo "<td></td>"; 69 echo "<td class='general'><p class='anuncioTitulo'>".tohtml($row["titulo"] 70 )." <br/>"; 71 echo "<span class='anuncioNombre'>".tohtml($usuario["nombre"])." ".tohtml( 72 $usuario["apellido1"])."</span> <span class='anuncioFecha'>- ".$row[ 73 "fecha"]."</span> </td>";
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 263
74 echo "<td class='general'> </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'> </td>"; 81 echo "</tr>"; 82 //echo "<tr>"; 83 //echo "<td colspan='2' class='general'> </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í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> </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>
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 264
Profesor_tablon_insertar.php 1 <?php 2 3 session_start(); 4 if($_SESSION["tipo"] != "Profesor") 5 header("Location: prohibido.php"); 6 7 $titulo = $_POST["titulo"]; 8 $texto = $_POST["texto"]; 9 $fecha = date("Y-m-d H:i:s"); 10 11 include("bd.php"); 12 $conn = Conectar(); 13 $sql = "SELECT * FROM anuncio ORDER BY idanuncio DESC"; 14 $num = consulta($sql,$conn); 15 if($num = siguiente($num)) 16 $idanun= $num["idanuncio"] + 1; 17 else 18 $idanun = 1; 19 $sql = "INSERT INTO `anuncio` ( `idanuncio` , `login` , `fecha` , `titulo` , 20 `texto` ) VALUES ('".$idanun."', '".$_SESSION["id"]."', '".$fecha."', '". 21 $titulo."', '".$texto."')"; 22 $insert = consulta($sql,$conn); 23 //echo "id".$_SESSION["id"]."error: " . mysql_error($conn); 24 Desconectar($conn); 25 26 ?> 27 <head> 28 <meta http-equiv="refresh" content="15;URL=Profesor_tablon.php"> 29 </head> 30 31 Insertando...
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 265
H. Código CSS
Calendario.css 1 TD { 2 font-family : verdana,arial,helvetica; 3 font-size : 10pt; 4 } 5 6 INPUT { 7 font-family : verdana,arial,helvetica; 8 font-size : 8pt; 9 } 10 11 TEXTAREA { 12 font-family : verdana,arial,helvetica; 13 font-size : 8pt; 14 } 15 16 SELECT { 17 font-family : verdana,arial,helvetica; 18 font-size : 8pt; 19 } 20 21 .altn { 22 font-family : verdana,arial,helvetica; 23 font-size : 10pt; 24 color: #ffffff; 25 background-color: #666666; 26 } 27 28 .tit { 29 font-family : verdana,arial,helvetica; 30 font-size : 10pt; 31 color: #ffffff; 32 background-color: #333333; 33 font-weight: bold; 34 } 35 .fs { 36 font-family : verdana,arial,helvetica; 37 background-color: #FFCCCC; 38 color: #FFFFFF; 39 font-weight: bold; 40 text-align: center; 41 } 42 .da { 43 font-family : verdana,arial,helvetica; 44 background-color: #F0E68C; 45 color: #FFFFFF; 46 font-weight: bold; 47 text-align: center; 48 } 49 .nd { 50 font-family : verdana,arial,helvetica; 51 background-color: #000066; 52 color: #FFFFFF; 53 font-weight: bold; 54 text-align: center; 55 } 56 .curso { 57 58 font-family : verdana,arial,helvetica; 59 background-color: #CCFFFF; 60 color: #FFFFFF; 61 font-weight: bold; 62 text-align: center; 63 } 64 .laborable { 65
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 266
66 67 font-family : verdana,arial,helvetica; 68 background-color: #CCFF99; 69 color: #FFFFFF; 70 font-weight: bold; 71 text-align: center; 72 }
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 267
general.css 1 .logo { 2 background-color: #99CC33; 3 background-image: url(../img/LogoPeq.jpg); 4 height: 150px; 5 width: 150px; 6 background-repeat: no-repeat; 7 background-position: center center; 8 } 9 .titulo { 10 background-color: #99CC33; 11 background-image: url(../img/titulo.png); 12 background-repeat: no-repeat; 13 background-position: center center; 14 width: 100%; 15 } 16 body { 17 background-color: #999933; 18 background-position: center; 19 } 20 .menu { 21 vertical-align: top; 22 } 23 24 .fecha { 25 font-family: Verdana, Arial, Helvetica, sans-serif; 26 color: #660033; 27 text-align: right; 28 background-color: #FFFF99; 29 } 30 .general { 31 background-color: #99CC66; 32 padding-left: 15px; 33 font-family: Arial, Helvetica, sans-serif; 34 text-align: center; 35 } 36 37 ul li { 38 border: medium ridge #CCFF66; 39 background-color: #99CC00; 40 list-style-type: none; 41 font-family: Verdana, Arial, Helvetica, sans-serif; 42 text-align: left; 43 font-size: 14px; 44 color: #FF66CC; 45 height: 24px; 46 vertical-align: middle; 47 margin-left: -40px; 48 padding-top: 8px; 49 width: 140px; 50 } 51 ul li a { 52 font-family: Verdana, Arial, Helvetica, sans-serif; 53 color: #003399; 54 font-weight: bold; 55 font-size: 13px; 56 } 57 ul li:hover { 58 background-color: #CCFFCC; 59 } 60 .imagenCalendario { 61 background-color: #99CC66; 62 padding-left: 15px; 63 font-family: Arial, Helvetica, sans-serif; 64 background-image: url(../img/calendario.jpg); 65 width: 130px; 66 background-repeat: no-repeat; 67 background-position: center center; 68 border-top-style: none; 69 border-right-style: none; 70 border-bottom-style: none; 71 border-left-style: none;
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 268
72 border-top-color: #FFFF66; 73 border-right-color: #FFFF66; 74 border-bottom-color: #FFFF66; 75 border-left-color: #FFFF66; 76 } 77 .imagenReglamento { 78 background-color: #99CC66; 79 padding-left: 15px; 80 font-family: Arial, Helvetica, sans-serif; 81 background-image: url(../img/reglas.png); 82 width: 320px; 83 background-repeat: no-repeat; 84 background-position: center center; 85 border-top-style: none; 86 border-right-style: none; 87 border-bottom-style: none; 88 border-left-style: none; 89 border-top-color: #FFFF66; 90 border-right-color: #FFFF66; 91 border-bottom-color: #FFFF66; 92 border-left-color: #FFFF66; 93 } 94 .imagenLocalizacion { 95 96 background-color: #99CC66; 97 padding-left: 15px; 98 font-family: Arial, Helvetica, sans-serif; 99 background-image: url(../img/plano_valencia.gif); 100 width: 150px; 101 background-repeat: no-repeat; 102 background-position: center center; 103 border-top-style: none; 104 border-right-style: none; 105 border-bottom-style: none; 106 border-left-style: none; 107 border-top-color: #FFFF66; 108 border-right-color: #FFFF66; 109 border-bottom-color: #FFFF66; 110 border-left-color: #FFFF66; 111 } 112 .imagenEnlaces { 113 114 115 background-color: #99CC66; 116 padding-left: 15px; 117 font-family: Arial, Helvetica, sans-serif; 118 background-image: url(../img/arroba.jpg); 119 width: 150px; 120 background-repeat: no-repeat; 121 background-position: center center; 122 border-top-style: none; 123 border-right-style: none; 124 border-bottom-style: none; 125 border-left-style: none; 126 border-top-color: #FFFF66; 127 border-right-color: #FFFF66; 128 border-bottom-color: #FFFF66; 129 border-left-color: #FFFF66; 130 } 131 .imagenEmail { 132 133 134 135 background-color: #99CC66; 136 padding-left: 15px; 137 font-family: Arial, Helvetica, sans-serif; 138 background-image: url(../img/email.jpg); 139 width: 300px; 140 background-repeat: no-repeat; 141 background-position: center center; 142 border-top-style: none; 143 border-right-style: none; 144 border-bottom-style: none; 145 border-left-style: none; 146 border-top-color: #FFFF66; 147 border-right-color: #FFFF66; 148 border-bottom-color: #FFFF66;
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 269
149 border-left-color: #FFFF66; 150 }
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 270
principal.css 1 .foto { 2 background-color: #99CC66; 3 background-image: url(../img/colegio.JPG); 4 width: 250px; 5 background-repeat: no-repeat; 6 background-position: center center; 7 } 8 .noticias { 9 background-color: #99CC33; 10 padding-left: 15px; 11 border: medium dashed #FFFF99; 12 } 13 .fechaNoticia { 14 font-family: Geneva, Arial, Helvetica, sans-serif; 15 font-size: 14px; 16 color: #CC0066; 17 font-weight: bold; 18 }
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 271
Professor.css 1 @CHARSET "ISO-8859-1"; 2 .cabecera 3 { 4 background-color:#000000; 5 color:#FFFFFF; 6 font:Arial, Helvetica, sans-serif; 7 } 8 .fila0 9 { 10 background-color: #99CC66; 11 color:#000000; 12 } 13 .fila1 14 { 15 background-color:#009900; 16 color:#000000; 17 }
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 272
I. JavaScript
fecha.js 1 <!-- 2 var pong; 3 function makeArray(n){ 4 this.length = n; 5 for (i=1;i<=n;i++){ 6 this[i]=0; 7 } 8 return this; 9 } 10 11 function displayDate() { 12 var this_month = new makeArray(12); 13 this_month[0] = "Enero"; 14 this_month[1] = "Febrero"; 15 this_month[2] = "Marzo"; 16 this_month[3] = "Abril"; 17 this_month[4] = "Mayo"; 18 this_month[5] = "Junio"; 19 this_month[6] = "Julio"; 20 this_month[7] = "Agosto"; 21 this_month[8] = "Septiembre"; 22 this_month[9] = "Octubre"; 23 this_month[10] = "Noviembre"; 24 this_month[11] = "Deciembre"; 25 26 var this_day_e = new makeArray(7); 27 this_day_e[0] = "Domingo"; 28 this_day_e[1] = "Lunes"; 29 this_day_e[2] = "Martes"; 30 this_day_e[3] = "Miércoles"; 31 this_day_e[4] = "Jueves"; 32 this_day_e[5] = "Viernes"; 33 this_day_e[6] = "Sábado"; 34 35 var today = new Date(); 36 var day = today.getDate(); 37 var month = today.getMonth(); 38 var year = today.getYear(); 39 var dia = today.getDay(); 40 if (year < 1000) { 41 year += 1900; } 42 return( " " + this_day_e[dia] + ", " + day + " de " + this_month[month] + 43 " " + year); 44 } 45 46 function displayTime() { 47 var hora = new Date(); 48 var horas = hora.getHours(); 49 var minutos = hora.getMinutes(); 50 var segundos = hora.getSeconds(); 51 if (segundos < 10) 52 segundos = "0" + segundos; 53 if (minutos < 10) 54 minutos = "0" + minutos; 55 cadena = displayDate() + " " + horas + ":" + minutos + ":" + segundos; 56 document.getElementById('campoHora').innerHTML = cadena; 57 tiempo = setTimeout("displayTime()",1000); 58 } 59 60 function horaActualizada() { 61 tiempo = setTimeout("displayTime()",1000); 62 } 63 // -->
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 273
profesor.js 1 var ventanaCalendario=false 2 3 function muestraCalendario(raiz,formulario_destino,campo_destino, 4 mes_destino,ano_destino) 5 { 6 //funcion para abrir una ventana con un calendario. 7 //Se deben indicar los datos del formulario y campos que se desean 8 editar con el calendario, es decir, los campos donde va la fecha. 9 if (typeof ventanaCalendario.document == "object") 10 { 11 ventanaCalendario.close() 12 } 13 ventanaCalendario = window.open("calendario_faltas.php?formulario=" 14 + formulario_destino + "&nomcampo=" + campo_destino,"calendario", 15 "width=225,height=200, left=100,top=100, scrollbars=no,menubars=no, 16 statusbar=NO, status=NO, resizable=NO,location=NO") 17 } 18 19 function buscarasignaturafaltas() 20 { 21 var idasig = document.asignatura.idasig.value; 22 var fecha = document.asignatura.fecha.value; 23 document.location.href='/webcole/Profesor_faltas.php?codasig=' + 24 idasig + "&fecha=" + fecha ; 25 } 26 function enviar_alumno_faltas(alumno) 27 { 28 var ha_cambiado = document.eval("alumno_" + alumno).cambiado.value; 29 var fecha_general = document.asignatura.fecha.value; 30 var idasig = document.asignatura.idasig.value; 31 var fecha = document.eval("alumno_" + alumno).fecha.value; 32 var justificado = document.eval("alumno_" + alumno).checkbox. 33 checked; 34 35 document.eval("alumno_" + alumno).fecha.value = document.asignatura. 36 fecha.value; 37 document.eval("alumno_" + alumno).asignatura.value = document. 38 asignatura.idasig.value; 39 document.eval("alumno_" + alumno).submit(); 40 } 41 42 function cambio(alumno) 43 { 44 var ha_cambiado = document.eval("alumno_" + alumno).cambiado.value; 45 if (ha_cambiado == "true") 46 { 47 document.eval("alumno_" + alumno).cambiado.value = "false"; 48 } 49 else 50 { 51 document.eval("alumno_" + alumno).cambiado.value = "true"; 52 } 53 } 54 55 function enviar_todos_faltas() 56 { 57 var lon = document.forms.length; 58 //alert("Hay " + lon + " formularios"); 59 var mensaje = ""; 60 var asig = document.asignatura.idasig.value; 61 var fecha = document.asignatura.fecha.value; 62 63 if ( fecha.length > 0 && asig > 0 ) 64 { 65 //empezamos en el 1 en vez del 0 porque hay un formulario que 66 no nos interesa al 67 //comienzo y acabamos uno antes porque el ultimo es el que 68 llama a esta funcion 69 //for(i = 0; i< 6; i++) 70 var i = 1 71 while ( i < lon -1 ) 72 {
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 274
73 if (document.forms[i].seleccionado.checked == true) 74 { 75 var msg = "login:" + document.forms[i].login.value + "; 76 "; 77 msg += "just:" + document.forms[i].checkbox.checked + 78 "|"; 79 mensaje += msg; 80 } 81 i++; 82 } 83 document.general.datos.value = mensaje; 84 document.general.fecha.value = fecha; 85 document.general.asignatura.value = asig; 86 87 if (mensaje.length > 0) 88 { 89 document.general.submit(); 90 } 91 else 92 { 93 alert ("No has seleccionado a ningun alumno al que poner la 94 falta"); 95 } 96 } 97 else 98 { 99 alert("Debes seleccionar una asignatura y una fecha antes de 100 enviar las faltas"); 101 } 102 } 103 function quitar_falta(alumno) 104 { 105 var fecha_general = document.asignatura.fecha.value; 106 var idasig = document.asignatura.idasig.value; 107 var fecha = document.eval("alumno_" + alumno).fecha.value; 108 var justificado = document.eval("alumno_" + alumno).checkbox. 109 checked; 110 111 document.eval("alumno_" + alumno).fecha.value = document.asignatura. 112 fecha.value; 113 document.eval("alumno_" + alumno).asignatura.value = document. 114 asignatura.idasig.value; 115 document.eval("alumno_" + alumno).borrar.value = "true"; 116 document.eval("alumno_" + alumno).submit(); 117 118 } 119 120 121 function buscarasignatura() 122 { 123 var idasig = document.asignatura.idasig.value; 124 var trimestre = document.asignatura.trimestre.value; 125 document.location.href='/webcole/Profesor_notas.php?trimestre=' + 126 trimestre + '&codasig=' + idasig ; 127 } 128 129 function cambiar_trimestre() 130 { 131 132 } 133 134 function nueva_nota(login) 135 { 136 137 formulario = "alumno_" + login; 138 var ha_cambiado = document.eval("alumno_" + login).cambiado.value; 139 140 var nota_txt = document.eval("alumno_" + login).nota.value; 141 142 try 143 { 144 nota_txt = nota_txt.replace(",", "."); 145 if ( nota_txt.length > 0 ) 146 { 147 var nota = parseFloat(nota_txt); 148 if ( isNaN(nota) ) 149 {
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 275
150 document.eval("alumno_" + login).cambiado.value = 151 "false"; 152 document.eval("alumno_" + login).eval("nota").value = 153 nota; 154 155 alert("El numero introducido no es correcto"); 156 } 157 else if ( nota >= 0 && nota <= 10 ) 158 { 159 document.eval("alumno_" + login).cambiado.value = 160 "true"; 161 document.eval("alumno_" + login).nota.value = nota; 162 } 163 else 164 { 165 alert("La nota debe estar comprendida entre 0 y 10"); 166 document.eval("alumno_" + login).nota.focus(); 167 } 168 } 169 else 170 { 171 document.eval("alumno_" + login).cambiado.value = "false"; 172 } 173 } 174 catch(e) 175 { 176 alert ("No has introducido un numero valido: " + e.message); 177 document.eval("alumno_" + login).cambiado.value = "false"; 178 } 179 180 document.eval("alumno_" + login).cambiado.value = "true"; 181 } 182 function enviar_alumno(login) 183 { 184 formulario = "alumno_" + login; 185 186 document.eval("alumno_" + login).trim.value = document.asignatura. 187 trimestre.value ; 188 189 var ha_cambiado = document.eval("alumno_" + login).cambiado.value; 190 var nota_txt = document.eval("alumno_" + login).nota.value; 191 nota_txt = nota_txt.replace(",", "."); 192 if ( ha_cambiado == "true" ) 193 { 194 if ( nota_txt.length > 0 ) 195 { 196 try 197 { 198 var nota = parseFloat(nota_txt); 199 if ( nota >= 0 && nota <= 10 ) 200 { 201 document.eval("alumno_" + login).eval("nota").value 202 = nota; 203 document.eval("alumno_" + login).asignatura.value = 204 document.asignatura.idasig.value; 205 document.eval("alumno_" + login).submit(); 206 } 207 else 208 { 209 alert("La nota debe estar comprendida entre 0 y 10") 210 ; 211 document.eval("alumno_" + login).nota.focus(); 212 } 213 } 214 catch(e) 215 { 216 alert ("No has introducido un numero valido: " + e. 217 message); 218 } 219 } 220 else 221 { 222 alert ("No has introducido ningun numero "); 223 } 224 } 225 else 226 {
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 276
227 alert ("no se envia porque no ha cambiado su situacion"); 228 } 229 document.eval("alumno_" + login).submit(); 230 } 231 232 233 function enviar_todos() 234 { 235 var lon = document.forms.length; 236 var mensaje = ""; 237 //empezamos en el 1 en vez del 0 porque hay un formulario que no 238 nos interesa al 239 //comienzo y acabamos uno antes porque el ultimo es el que llama a 240 esta funcion 241 //for(i = 0; i< 6; i++) 242 var i = 1 243 while ( i < lon -1 ) 244 { 245 try 246 { 247 var nombre = document.forms[i].name; 248 var ha_cambiado = document.forms[i].cambiado.value; 249 if ( ha_cambiado == "true" ) 250 { 251 var nota_txt = document.forms[i].nota.value; 252 if ( nota_txt.length > 0 ) 253 { 254 try 255 { 256 nota_txt = nota_txt.replace(",", "."); 257 var nota = parseFloat(nota_txt); 258 if ( nota >= 0 && nota <= 10 ) 259 { 260 var msg = "login:"+document.forms[i].login. 261 value + ";"; 262 msg += "nota:" + nota + "|"; 263 264 mensaje += msg; 265 } 266 else 267 { 268 alert("La nota debe estar comprendida entre 269 0 y 10"); 270 document.forms[i].nota.focus(); 271 return; 272 } 273 } 274 catch(e) 275 { 276 alert ("No has introducido un numero valido: " + 277 e.message); 278 } 279 } 280 else 281 { 282 //alert ("No has introducido ningun numero "); 283 } 284 } 285 } 286 catch(e) 287 { 288 alert("Error: " + e.message); 289 } 290 i++; 291 } 292 document.general.datos.value = mensaje; 293 document.general.trimestre.value = document.asignatura.trimestre. 294 value; 295 document.general.asignatura.value = document.asignatura.idasig. 296 value; 297 document.general.submit(); 298 } 299 300 function cambio_trimestre() 301 { 302 var trimestre = document.asignatura.trimestre.value; 303 var idasig = document.asignatura.idasig.value;
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 277
304 if ( trimestre != "-1" ) 305 { 306 document.location.href="/webcole/Profesor_notas.php?trimestre=" 307 + trimestre + "&codasig=" + idasig; 308 } 309 }
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 278
reservas.js 1 MAX_LENGTH = 1500; 2 3 function cambiar(i) 4 { 5 alert ("id vale:" + i ); 6 if ( i < 10 ) 7 { 8 i = "0" + i; 9 } 10 11 document.reservar.fecha.value = i + "-" + document.reservar.mes. 12 value + "-" + document.reservar.anyo.value; 13 document.reservar.dia.value = i; 14 15 } 16 17 function redirigir(usuario, tipo) 18 { 19 iditem = document.reservar.iditem.value; 20 dia = document.reservar.dia.value; 21 mes = document.reservar.mes.value; 22 anyo = document.reservar.anyo.value; 23 24 document.location.href='/webcole/' + usuario + '_reservar_' + tipo + 25 '.php?iditem=' + iditem + '&dia=' + dia + '&nuevo_mes=' + mes + 26 '&nuevo_ano=' + anyo; 27 } 28 29 function enviar() 30 { 31 32 fecha = new Date(); 33 anyo_actual = fecha.getFullYear(); 34 35 //comprobar si tenemos todos los parametros necesarios 36 //de fecha 37 dia = document.reservar.dia.value; 38 mes = document.reservar.mes.value; 39 anyo = document.reservar.anyo.value; 40 41 correcto = true; 42 43 if (document.reservar.iditem.value == -1) 44 { 45 correcto = false; 46 alert ("Debes elegir una instalacion de las disponibles"); 47 } 48 49 else if (dia > 31 || dia < 1 || document.reservar.dia.value==0) 50 { 51 correcto = false; 52 alert ("Dia incorrecto. Debes elegir un dia de los disponibles 53 en el calendario"); 54 } 55 56 else if (mes < 1 || mes > 12 || document.reservar.mes.value==0 ) 57 { 58 correcto = false; 59 alert ("Mes incorrecto. Debes elegir un dia de los disponibles 60 en el calendario"); 61 } 62 else if (anyo != anyo_actual || document.reservar.anyo.value==0) 63 { 64 correcto = false; 65 alert ("Año incorrecto. Debes elegir un dia de este año "); 66 } 67 else if (document.reservar.motivo.value.length == 0) 68 { 69 correcto = false; 70 alert ("Debes rellenar el campo motivo"); 71 } 72
Vicente Sancho Guijarro Proyecto Final de Carrera
E.T.S. de Informática Aplicada (U.P.V.) 279
73 if (document.reservar.motivo.value.length > MAX_LENGTH) 74 { 75 temp=""; 76 temp = document.reservar.motivo.value.substring(0, MAX_LENGTH-1) 77 ; 78 document.reservar.motivo.value = temp; 79 } 80 81 if (correcto) 82 { 83 document.reservar.submit(); 84 } 85 } 86 function maxCaracteres() 87 { 88 89 if(document.reservar.motivo.value.length>= MAX_LENGTH) 90 { 91 return "return false;"; 92 } 93 } 94 95 function longitud() 96 { 97 return MAX_LENGTH; 98 }