Proyectos - Agenda de teléfonos multiusuario - Enunciados

El objetivo de este proyecto es ampliar la capacidad de la agenda de teléfonos creada en un proyecto anterior, permitiendo que varios usuarios puedan crear sus propias agendas, independientes unas de otras.


Un ejemplo de agenda multiusuario puede probarse en la ventana siguiente:

Enlace a ejemplo

Estas pueden ser las consultas de creación de tabla para este proyecto:

// Consultas de creación de tablas en MySQL
$consultaCreaTablaUsuarios = "CREATE TABLE $dbUsuarios (
    id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    usuario VARCHAR(" . TAM_USUARIO . "),
    password VARCHAR(".TAM_CIFRADO."),
    PRIMARY KEY(id) )";
$consultaCreaTablaAgenda = "CREATE TABLE $dbAgenda (
    id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    id_usuario INTEGER UNSIGNED,
    nombre VARCHAR(" . TAM_NOMBRE . "),
    apellidos VARCHAR(" . TAM_APELLIDOS . "),
    telefono VARCHAR(" . TAM_TELEFONO . "),
    correo VARCHAR(" . TAM_CORREO . "),
    PRIMARY KEY(id) )";

// Consultas de creación de tablas en SQLite
$consultaCreaTablaUsuarios = "CREATE TABLE $dbUsuarios (
    id INTEGER PRIMARY KEY,
    usuario VARCHAR(" . TAM_USUARIO . "),
    password VARCHAR(".TAM_CIFRADO.")
    )";
$consultaCreaTablaAgenda = "CREATE TABLE $dbAgenda (
    id INTEGER PRIMARY KEY,
    id_usuario INTEGER,
    nombre VARCHAR(" . TAM_NOMBRE . "),
    apellidos VARCHAR(" . TAM_APELLIDOS . "),
    telefono VARCHAR(" . TAM_TELEFONO . "),
    correo VARCHAR(" . TAM_CORREO . ")
    )";

// Consulta de comprobación de existencia de tablas en MySQL
$consultaExisteTabla = "SELECT COUNT(*) as existe_db
    FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='$dbDb'";

// Consulta de comprobación de existencia de tablas en SQLite
$consultaExisteTabla = "SELECT COUNT(*) as existe_db
    FROM sqlite_master WHERE type='table' AND name='$dbUsuarios'";

Agenda 1 - Identificar usuarios

La identificación de usuarios se hace mediante un nombre y una contraseña. Puedes consultar un diagrama de flujo simplificado del proceso de identificación de usuarios (en este diagrama no está incluida, por ejemplo, la verificación de nombres y contraseñas vacías).

Agenda - Identificación

Escriba su nombre y contraseña
Nombre:
Contraseña:

Nota: Si no estás ya registrado, te registraré como usuario.

Si el usuario ya existe y la contraseña no es correcta, se vuelve a la página inicial avisando del problema.

Agenda - Identificación

Contraseña incorrecta

Escriba su nombre y contraseña
Nombre:
Contraseña:

Nota: Si no estás ya registrado, te registraré como usuario.

Si el usuario no existe todavía, se solicita de nuevo la contraseña:

Agenda - Identificación 2

pepito es un nuevo usuario. Por favor, repite la contraseña para registrarte como usuario.

Contraseña:

Si las dos contraseñas no coinciden, se vuelve a la página inicial avisando del problema.

Agenda - Identificación

Las contraseñas no coinciden

Escriba su nombre y contraseña
Nombre:
Contraseña:

Nota: Si no estás ya registrado, te registraré como usuario.

Si las dos contraseñas coinciden, se añade el nuevo usuario y se muestra el menú propio de la agenda.

Agenda de Pepito - Identificación 3

Hola, pepito. Ya eres un usuario registrado y puedes crear tu agenda.

Comentarios::

Agenda 2 - Menú de Usuario

El menu del usuario es igual que el del proyecto de la agenda para un único usuario. La única diferencia es la opción "Desconectar", que permite desconectar al usuario y volver a la página inicial de identificación.

Agenda de Pepito

Comentarios:

Agenda 3 - Menú de Superusuario

El superusuario puede eliminar usuarios.

Agenda - Superusuario