# Examen - Noticias

En este examen se debe crear un portal de noticias que muestre en la portada las noticias del día, pero que también permita consultar noticias anteriores o futuras. El código fuente (tanto PHP como HTML) de las páginas debe estar correctamente tabulado para facilitar la legibilidad.

El primer ejercicio debe hacerse en un directorio llamado noticias1 y debe utilizar una base de datos llamada noticias1. El segundo ejercicio debe hacerse en un directorio llamado noticias2 y debe utilizar una base de datos llamada noticias2.

## Noticias 1 - Sin sesiones

En este primer ejercicio todos los usuarios tienen acceso a todas las opciones de los menús.

La página principal muestra las noticias de ese día y dos opciones de menú: Nueva noticia y Editor.

La Nueva noticia se crea escribiendo los campos Fecha, Autor, Título y Descripción. Además, hay que guardar la fecha y hora de creación de la noticia (para poder ordenarlas al mostrarlas en portada). Para simplificar, el usuario debe escribir la fecha con el formato AAAAMMDD.

Para ver noticias de otros días, hay que pulsar en el enlace (día anterior o día siguiente).

Si hay noticias del día, se muestran en la portada:

El menú Editor permite Borrar noticias o Borrar todo:

Las noticias se pueden borrar individualmente:

La base de datos se crea con la opción Borrar todo:

## Fechas

En la tabla hay que guardar un campo fecha de tipo DATE (que escribe el usuario y que tiene el formato AAAAMMDD) y otro de tipo DATETIME (que se genera automáticamente y que tiene el formato AAAA-MM-DD HH:MM:SS).

     $fecha2 = date("Y-m-d H:i:s");

Para generar la cadena del día anterior y del día siguiente:

    if (isset($_REQUEST['dia']))
      $dia = recoge_para_consulta($db, 'dia');
    else
      $dia = date("Ymd");
    ...
    $dia_unix = mktime (12,0,0,substr($dia,4,2), substr($dia,6,2), substr($dia,0,4));
    $siguiente_unix = $dia_unix + 3600*24;
    $siguiente = date("Ymd", $siguiente_unix);
    $anterior_unix = $dia_unix - 3600*24;
    $anterior = date("Ymd", $anterior_unix);
    ...
    print "<a href='index.php?dia=$anterior'><<</a>";

## Noticias 2 - Con sesiones

En este segundo ejercicio los usuarios no registrados solamente pueden ver las noticias, pero no crearlas. El usuario registrado con el nombre del superusuario (por ejemplo, "root") tiene acceso al menú de editor, pero tampoco puede crear noticias. El resto de usuarios registrados pueden crear noticias.

El usuario no registrado puede consultar noticias, pero no crearlas.

El proceso de registro es el de siempre: nombre y contraseña, repitiendo la contraseña si no se está registrado:

El usuario registrado puede crear nuevas noticias y Salir:

Al registrarse, ya no es necesario el campo Autor al crear la noticia:

El usuario Superusuario tiene las opciones de Editor del Ejercicio anterior:

Esta obra está bajo una licencia de Creative Commons.