Ejercicios - Bases de datos (3 B) - Ayuda

En construcciónEsta página de comentarios está en elaboración.

Esta página contiene comentarios ampliados con fragmentos de código PHP de los ejercicios Base de datos (3 B).

Bases de datos (3 B) - Cambios comunes

En todos los ejercicios es conveniente (y necesario para la comprobación de los programas con Selenium) realizar los siguientes cambios.

  1. [comunes/config.php] Para que no haya interferencias entre ejercicios, los nombres de sesión deben ser distintos. Se puede utilizar por ejemplo el nombre del ejercicio.
    $cfg["sessionName"] = "nombre-de-ejercicio";       // Nombre de sesión
    
  2. [comunes/config.php] Para que no haya interferencias entre ejercicios, las bases de datos deben ser distintas. Se puede utilizar por ejemplo el nombre del ejercicio. Durante la realización del ejercicio, en el caso de MySQL/MariaDB la contraseña puede no tener seguridad.
    // Configuración para SQLite
    
    $cfg["sqliteDatabase"] = "/tmp/nombre-de-ejercicio.sqlite";    // Ubicación de la base de datos
    
    // Configuración para MySQL
    
    $cfg["mysqlHost"]     = "localhost";                        // Nombre de host
    $cfg["mysqlUser"]     = "nombre-de-ejercicio";              // Nombre de usuario
    $cfg["mysqlPassword"] = "nombre-de-ejercicio";              // Contraseña de usuario
    $cfg["mysqlDatabase"] = "nombre-de-ejercicio";              // Nombre de la base de datos
    
  3. [comunes/biblioteca.php] Para poder comprobar el funcionamiento de los programas con Selenium, el título de las páginas debe coincidir con el de las capturas de ejemplo.
    function cabecera($texto, $menu, $profundidadDirectorio)
    {
        ...
        print "    $texto. nombre del ejercicio. Bases de datos (3 B).\n";
        ...
        print "    <h1>nombre del ejercicio - $texto</h1>\n";
        ...
    

Bases de datos (3 B) 1 - Estadísticas de administrador

  1. Los usuarios administradores pueden ver en su menú una nueva opción, "Estadísticas".
    • [comunes/biblioteca.php]

      Incluimos el enlace a la página estadisticas.php en el menú del Administrador.

              ...
              } elseif ($menu == MENU_ADMINISTRADOR) {
                  print "        <li><a href=\"../index.php\">Volver</a></li>\n";
                  print "        <li><a href=\"estadisticas.php\">Estadísticas</a></li>\n";
                  print "        <li><a href=\"borrar-todo-1.php\">Borrar todo</a></li>\n";
              } ...
      
  2. La página de estadísticas muestra el número de registros guardados en cada tabla:
    • [administrador/estadisticas.php]

      Hacemos una consulta para contar los registros que hay en la tabla y escribimos el mensaje correspondiente dependiendo del número obtenido. Esto lo haremos para las dos tablas.

      $consulta = "SELECT COUNT(*) FROM $cfg[tablaUsuarios]";
      
      $resultado = $pdo->query($consulta);
      if (!$resultado) {
          print "    <p class=\"aviso\">Error en la consulta. SQLSTATE[{$pdo->errorCode()}]: {$pdo->errorInfo()[2]}</p>\n";
      } else {
          $numero = $resultado->fetchColumn();
          if ($numero == 0) {
              print "    <p>La tabla Usuarios no contiene registros.</p>\n";
          } elseif ($numero == 1) {
              print "    <p>La tabla Usuarios contiene $numero registro.</p>\n";
          } else {
              print "    <p>La tabla Usuarios contiene $numero registros.</p>\n";
          }
      }
      
  3. Únicamente los administradores podrán abrir esa página.
    • [administrador/estadisticas.php]

      Restringiremos el acceso a usuarios de nivel Administrador.

        if (!isset($_SESSION["conectado"]) || $_SESSION["nivel"] < NIVEL_ADMINISTRADOR) {
          header("Location:../index.php");
          exit;
      }
        

Bases de datos (3 B) 2 - Confirmar contraseña

En construcciónPor escribir.

Bases de datos (3 B) 3 - Usuario mirón

En construcciónPor escribir.

Bases de datos (3 B) 4 - Correo de usuarios

En construcciónPor escribir.

Bases de datos (3 B) 5 - Datos repetidos

En construcciónPor escribir.

Bases de datos (3 B) 6 - Registros incompletos

En construcciónPor escribir.

Bases de datos (3 B) 7 - Cambiar contraseña

En construcciónPor escribir.

Bases de datos (3 B) 8 - Contador de número de conexiones

En construcciónPor escribir.

Bases de datos (3 B) 9 - Número máximo de registros por usuario

En construcciónPor escribir.