Sei sulla pagina 1di 5

Aplicacin web miniforo

Pgina 1 de 5

APLICACIN WEB MINIFORO


Supongamos que tenemos que construir una aplicacin web llamada miniforo, que distinguir entre varios tipos de usuarios y permitir a los usuarios publicar mensajes en la pgina web para compartir opiniones sobre temas diversos. CONSEJO: Usar la misma estructura que la aplicacin web agendasesion, as que sera una gran ayuda construirla a partir de lo ya hecho en agendasesion. Usar una base de datos MySQL llamada miniforo, y dentro de sta usar 2 tablas: 1. Tabla usuarios: Contiene los campos: usuario, clave y tipo, los 3 de tipo cadena de 20 caracteres. 2. Tabla mensajes: Contiene los campos: id (de tipo entero autoincrementado), usuario, fechahora (de tipo fecha/hora), tema (de tipo cadena de 50 caracteres) y mensaje (de tipo texto extenso). Los distintos tipos de usuarios sern: 1. Usuario invitado: No est registrado, y no se le permite el acceso a la aplicacin. Cualquier visitante ser invitado automticamente si al intentar hacer un inicio de sesin no se encuentra registrado. 2. Usuario registrado: Est registrado en la base de datos del foro, y podr ver e insertar mensajes. 3. Usuario administrador: Gestionar la aplicacin web al completo, pudiendo: ver los mensajes, publicar mensajes, e incluso eliminar mensajes (que crea que estn fuera de lugar).

Deber construirse un archivo llamado admin_crear.php que construya las 2 tablas e inserte algunos registros de prueba.

Tabla usuarios

Tabla mensajes

CONSTRUCCIN PASO A PASO DE LA APLICACIN WEB:


Las pginas que tendr esta aplicacin web sern: 1. index.php: Usar sesiones php. Inicialmente mostrar un formulario para que el visitante del sitio puede introducir su nombre de usuario y su clave, para as poder identificarlo como usuario registrado o como administrador. Al pulsar en el botn Aceptar se cargar la pgina comprobarlogin.php a la que le pasar su nombre de usuario y su clave.

Aplicacin web miniforo

Pgina 2 de 5

2. comprobarlogin.php: Usar sesiones php. Comprobar que recibe el nombre de usuario y la clave del formulario de inicio de sesin de index.php, y si es as: a. Crear 3 variables de sesin, con el nombre del usuario, su clave y como tipo, en principio, ser invitado. b. Buscar si existe un usuario en la base de datos con ese nombre de usuario y esa clave, y si encuentra uno: le cambiar el tipo de usuario al que tenga asignado en la base de datos, le dar un mensaje de bienvenida, y mostrar un enlace Entrar en el foro que cargar la pgina foro.php; en cambio, si no lo encuentra: le seguir dejando el tipo a invitado sin cambiar, y mostrar el enlace Volver a intentarlo que cargar de nuevo la pgina index.php, no pudiendo entrar en la aplicacin por no estar registrado. En el caso de que no recibiese los datos del formulario de index.php, mostrar el enlace Inicie una sesin primero que cargar la pgina index.php.

3. foro.php: Usar sesiones php. Comprobar que estn establecidas las variables de sesin usuario, clave y tipo, y si es as: a. Si el tipo de usuario es registrado o administrador: i. Buscar todos los mensajes que existan en la base de datos y los mostrar (con todos sus campos) uno debajo de otro ordenador por su campo id. 1. Si el tipo de usuario es concretamente el de administrador, mostrar un enlace Eliminar junto a cada mensaje para poder eliminarlo si lo cree conveniente que cargar la pgina comprobareliminar.php pasndole el id del mensaje a eliminar por el mtodo GET. Este botn no debe aparecer en el caso de que el tipo de usuario sea registrado. ii. Agregar un enlace Insertar nuevo mensaje bajo el listado que cargar la pgina insertar.php. iii. Agregar un enlace Cambiar de usuario bajo el listado que cargar la pgina index.php.

Aplicacin web miniforo

Pgina 3 de 5

b. Si el usuario no es de tipo registrado o administrador, mostrar el enlace Inicie una sesin primero como usuario registrado o administrador a la pgina index.php. En el caso de que todava no estuviesen establecidas las variables de sesin (porque se intent cargar manualmente esta pgina sin pasar por el inicio de sesin), mostrar el enlace Inicie una sesin primero que cargar la pgina index.php.

4. insertar.php: Usar sesiones php. Comprobar que estn establecidas las variables de sesin usuario, clave y tipo, y si es as: a. Si el tipo de usuario es registrado o administrador: i. Mostrar un formulario con los campos: Tema y Mensaje, para que pueda introducir los datos que quiera (no tendr filtro JavaScript), con un botn Guardar. 1. Si pulsa el botn Guardar debe cargar la pgina comprobarinsertar.php a la que le pasar todos los datos del formulario mediante el mtodo POST. ii. Agregar un enlace Volver al Foro bajo el listado que cargar la pgina foro.php. iii. Agregar un enlace Cambiar de usuario bajo el listado que cargar la pgina index.php. b. Si el usuario no es de tipo registrado o administrador, mostrar el enlace Inicie una sesin primero como usuario registrado o administrador a la pgina index.php. En el caso de que todava no estuviesen establecidas las variables de sesin (porque se intent cargar manualmente esta pgina sin pasar por el inicio de sesin), mostrar el enlace Inicie una sesin primero que cargar la pgina index.php.

Aplicacin web miniforo

Pgina 4 de 5

5. comprobareliminar.php: Usar sesiones php. Comprobar que estn establecidas las variables de sesin usuario, clave y tipo, y que recibe un dato por el mtodo GET llamado id, y si es as: a. Si el tipo de usuario es administrador: i. Intentar eliminar el mensaje, cuyo id se recibe, de la base de datos. 1. Tanto si lo consigue eliminar como si no, debe informar de lo ocurrido. ii. Agregar un enlace Volver al Foro bajo el listado que cargar la pgina foro.php. iii. Agregar un enlace Cambiar de usuario bajo el listado que cargar la pgina index.php. b. Si el usuario no es de tipo administrador, mostrar el enlace Inicie una sesin primero como usuario administrador a la pgina index.php. En el caso de que todava no estuviesen establecidas las variables de sesin (porque se intent cargar manualmente esta pgina sin pasar por el inicio de sesin) o de que no se recibiese el dato id por el mtodo GET, mostrar el enlace Inicie una sesin primero que cargar la pgina index.php.

6. comprobarinsertar.php: Usar sesiones php. Comprobar que estn establecidas las variables de sesin usuario, clave y tipo, y que recibe los campos por el mtodo POST que le envi el formulario de la pgina insertar.php, y si es as: a. Si el tipo de usuario es administrador o registrado: i. Intentar insertar el mensaje nuevo en la base de datos. 1. Obtendr la fecha y hora actuales, de la siguiente forma:

Aplicacin web miniforo

Pgina 5 de 5
$fechahoraactual = date("Y/m/d h:i:s"); // en formato campo MySQL

2. Insertar el nuevo registro sin especificar el id (es autoincrementado), con el nombre del usuario, con la fecha y hora actuales, y los campos recibidos: tema y mensaje. 3. Tanto si lo consigue insertarlo como si no, debe informar de lo ocurrido. ii. Agregar un enlace Volver al Foro que cargar la pgina foro.php. iii. Agregar un enlace Cambiar de usuario que cargar la pgina index.php. b. Si el usuario no es de tipo registrado o administrador, mostrar el enlace Inicie una sesin primero como usuario registrado o administrador a la pgina index.php. En el caso de que todava no estuviesen establecidas las variables de sesin (porque se intent cargar manualmente esta pgina sin pasar por el inicio de sesin) o no se reciban los campos del formulario de la pgina insertar.php, mostrar el enlace Inicie una sesin primero que cargar la pgina index.php.

MODIFICACIONES OPCIONALES:
1. Los usuarios no registrados podrn registrarse desde la pgina index.php pulsando en un enlace llamado registrarse. CONSEJO: Copiar el mecanismo que se implement en la aplicacin web login (cargara un formulario con los campos de la tabla usuarios que al pulsar Registrar se almacenara en la tabla).

2. Los usuarios administradores podrn eliminar usuarios registrados mediante un enlace en la pgina foro.php llamado eliminar usuario. CONSEJO: Copiar el mecanismo de eliminacin que se implement para eliminar mensajes del foro en la pgina foro.php (se cargara una pgina con la lista de usuarios, cada uno con un enlace eliminar junto a su nombre de usuario).

3. Investigar cmo paginar los mensajes, de forma que se muestren de 10 en 10. Y, por tanto, muestre inicialmente los 10 primeros, pero se pueda pasar a mostrar los 10 siguientes, o los 10 anteriores, o volver a mostrar los 10 primeros, etc PISTAS: Usar LIMIT en el SELECT, guardar el nmero del primer registro a mostrar en una variable de sesin, y nunca perder de vista el nmero total de mensajes registrados que hay en todo momento. Ir al Inicio Pgina Anterior Pgina Siguiente

Potrebbero piacerti anche