modificar usuario

This commit is contained in:
VictorMongeM 2025-05-17 12:47:22 -06:00
parent 24d6a7f7ca
commit f9bd41b310
10 changed files with 2228 additions and 17 deletions

View File

@ -37,7 +37,7 @@ class UsuarioController{
return;
}
self::$usuarioModel->registrarUsuario($usuario, $contrasena);
echo "Usuario: ${usuario} registrado exitosamente.";
echo "Usuario: {$usuario} registrado exitosamente.";
}
public static function eliminarUsuario($id_usuario){

View File

@ -0,0 +1 @@
<?php

2106
font/bootstrap-icons.css vendored Normal file

File diff suppressed because it is too large Load Diff

5
font/bootstrap-icons.min.css vendored Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

View File

@ -11,6 +11,9 @@ class UsuarioModel {
/**
* Registrar un nuevo usuario
* @param string $usuario Nombre de usuario
* @param string $contrasena Contraseña del usuario
* @return array
*/
public function registrarUsuario($usuario, $contrasena){
// Hashear contraseña
@ -20,10 +23,17 @@ class UsuarioModel {
$stmt = $this->conn->prepare("INSERT INTO usuario (usuario, contrasena) VALUES (?, ?)");
$stmt->bind_param("ss", $usuario, $contrasena_hash);
if (!$stmt->execute()) {
throw new Exception("Error al registrar usuario: " . $stmt->error);
return [
'estado' => 'error',
'mensaje' => 'Error al registrar usuario: ' . $stmt->error
];
}
$stmt->close();
return [
'estado' => 'exitoso',
'mensaje' => 'Usuario registrado exitosamente.'
];
}
/**
@ -79,13 +89,16 @@ class UsuarioModel {
// Obtener el resultado
$result = $stmt->get_result();
$usuarios = [];
while ($row = $result->fetch_assoc()) {
$usuarios[] = $row;
// Si no hay resultados, retornar un array con estado y mensaje
if ($result->num_rows == 0) {
return [
'estado' => 'error',
'mensaje' => 'No hay usuarios registrados.'
];
}
return $usuarios;
return $result->fetch_all(MYSQLI_ASSOC);
}
public function eliminarUsuario($id){

View File

@ -27,6 +27,7 @@ if(isset($resultado['estado'])){
<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/boxicons@latest/css/boxicons.min.css'>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="../css/inicio.css">
<link rel="stylesheet" href="../font/bootstrap-icons.css">
<title>Control</title>
</head>
<body>
@ -71,8 +72,8 @@ if(isset($resultado['estado'])){
<td><?php echo $candidato['nombre_completo'] ?></td>
<td><?php echo $candidato['fecha_entrada'] ?></td>
<td>
<a class="btn border rounded-3 shadow" role="button" style="background-color: #35245b;color: white;" href="formulario-datos-candidato.php?id_candidato=<?php echo $candidato['id_candidato']?>" target="_blank">Abrir formulario</a>
<button class="boton-eliminar btn border rounded-3 shadow" role="button" style="background-color: #35245b;color: white;" data-id-candidato="<?php echo $candidato['id_candidato'] ?>"><i class='bx bxs-trash-alt' style='color:#ffffff'></i> Eliminar</button>
<a class="btn border rounded-3 shadow" role="button" style="background-color: #35245b;color: white;" href="formulario-datos-candidato.php?id_candidato=<?php echo $candidato['id_candidato']?>" target="_blank"><i class="bi bi-file-earmark-text"></i> Abrir formulario</a>
<button class="boton-eliminar btn border rounded-3 shadow" role="button" style="background-color: #35245b;color: white;" data-id-candidato="<?php echo $candidato['id_candidato'] ?>"><i class="bi bi-trash"></i> Eliminar</button>
</td>
<tr>
<?php endforeach; ?>

View File

@ -2,6 +2,14 @@
require_once __DIR__ . "/../controllers/UsuarioController.php";
$resultado = UsuarioController::obtenerUsuarios();
$hayUsuarios = true;
// Si hubo algún error se retorno un array con el estado y mensaje, comprobar si existe
if (isset($resultado['estado'])){
$hayUsuarios = false;
echo "<script>console.log('".$resultado['mensaje']."');</script>";
}
?>
@ -13,7 +21,8 @@ $resultado = UsuarioController::obtenerUsuarios();
<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/boxicons@latest/css/boxicons.min.css'>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="../css/inicio.css">
<title>Control usuarios</title>
<link rel="stylesheet" href="../font/bootstrap-icons.css">
<title>Control de usuarios</title>
</head>
<body>
@ -37,7 +46,7 @@ $resultado = UsuarioController::obtenerUsuarios();
<!-- ========== MAIN ========== -->
<main>
<h1 class="title" style="margin: 2% 1%">Control</h1>
<h1 class="title" style="margin: 2% 1%">Control de usuarios</h1>
<!-- ------------------------------ div qué contiene la tabla ------------------------------------------ -->
<div style="margin: 1%">
@ -50,17 +59,17 @@ $resultado = UsuarioController::obtenerUsuarios();
</tr>
</thead>
<tbody class="table-group-divider">
<?php if ($hayUsuarios): ?>
<?php foreach ($resultado as $usuario): ?>
<tr>
<td><?php echo $usuario['usuario'] ?></td>
<td>
<a class="btn border rounded-3 shadow" role="button" style="background-color: #35245b;color: white;" href="modificar-usuario.php?id_usuario=<?php echo $usuario['id'] ?>">Modificar</a>
<button class="boton-eliminar btn border rounded-3 shadow" role="button" style="background-color: #35245b;color: white;" data-id-usuario="<?php echo $usuario['id'] ?>" data-nombre-usuario="<?php echo $usuario['usuario'] ?>"><i class='bx bxs-trash-alt' style='color:#ffffff'></i>Eliminar</button>
<a class="btn border rounded-3 shadow" role="button" style="background-color: #35245b;color: white;" href="modificar-usuario.php?id=<?php echo $usuario['id'] ?>&usuario=<?php echo urlencode($usuario['usuario']) ?>"><i class="bi bi-pencil-square"></i> Modificar</a>
<button class="boton-eliminar btn border rounded-3 shadow" role="button" style="background-color: #35245b;color: white;" data-id-usuario="<?php echo $usuario['id'] ?>" data-nombre-usuario="<?php echo $usuario['usuario'] ?>"><i class="bi bi-trash"></i> Eliminar</button>
</td>
<tr>
<?php endforeach; ?>
<?php endif; ?>
</tr>
</tbody>
</table>

View File

@ -1,4 +1,80 @@
<?php
require_once __DIR__ . "/../controllers/UsuarioController.php";
if ($_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['id']) && isset($_GET['usuario'])) {
$id = $_GET['id'];
$usuario = $_GET['usuario'];
} else {
header('Location: ../views/control-usuarios.php');
exit();
}
echo 'Hola ' . $_GET['id_usuario'];
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="../font/bootstrap-icons.css">
<link rel="stylesheet" href="../css/inicio.css">
<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/boxicons@latest/css/boxicons.min.css'>
<title>Control de usuarios</title>
</head>
<body>
<!-- SIDEBAR -->
<section id="sidebar">
<a href="inicio.html" class="brand"><i class='bx bx-code-alt icon' ></i> LANIA</a>
<ul class="side-menu">
<li><a href="inicio.html"><i class='bx bxs-dashboard icon' ></i>Dashboard</a></li>
<li><a href="formulario-candidato.html" target="_blank"><i class='bx bxs-dashboard icon' ></i>Formulario de registro</a></li>
<li><a href="control-candidatos.php"><i class='bx bxs-dashboard icon' ></i>Control candidatos</a></li>
<li><a href="control-usuarios.php" class="active"><i class='bx bxs-dashboard icon' ></i>Control usuario</a></li>
</ul>
</section>
<!-- .SIDEBAR -->
<section id="content">
<main>
<h1 class="title" style="margin: 2% 1%">Modificar usuario</h1>
<!-- div de formulario ------------------------------------------------------------------------------------- -->
<div class="bg-light-subtle border border-dark-subtle shadow-sm rounded-3" style="margin: 1%">
<div style="margin:5%;">
<form action="#" method="post">
<input type="hidden" name="id" value="<?php echo $id ?>"/>
<label class="form-label" for="usuario" style="margin: 8px 0px 8px 0px;"><i class="bi bi-person"></i> Nombre de usuario</label>
<input class="border rounded border-dark-subtle form-control" type="text" name="usuario" required="" minlength="1" maxlength="150" pattern="^[a-zA-Z0-9]+$" value="<?php echo $usuario ?>"/>
<label class="form-label" for="contrasena" style="margin: 8px 0px 8px 0px;"><i class="bi bi-key"></i> Contraseña</label>
<input class="form-control" type="text" name="contrasena" required="" minlength="1"/>
<label class="form-label" for="contrasena" style="margin: 8px 0px 8px 0px;"><i class="bi bi-key"></i> Vuelva a escribir la contraseña</label>
<input class="form-control" type="text" name="contrasena_verificacion" required="" minlength="1"/>
<input class="btn text-light w-100" type="submit" style="margin: 8px 0px 8px 0px;background-color: #35245b"/ value="Modificar usuario">
</form>
</div>
</div>
<!-- /div de formulario ------------------------------------------------------------------------------------ -->
</main>
</section>
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
<script src="../js/sidebar-navbar.js"></script>
<script src="../js/control-usuario.js"></script>
<script src="https://website-widgets.pages.dev/dist/sienna.min.js" defer></script>
</body>
</html>