conn = Database::getInstance(); } /** * Registrar un nuevo usuario */ public function registrarUsuario($usuario, $contrasena){ // Hashear contraseña $contrasena_hash = password_hash($contrasena, PASSWORD_DEFAULT); // Preparar la consulta mysql usando msqli $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); } $stmt->close(); } /** * Iniciar sesión de un usuario * @param string $usuario Nombre de usuario * @param string $contrasena Contraseña del usuario * @return bool true si el inicio de sesión es exitoso, false en caso contrario */ public function iniciarSesion($usuario, $contrasena) { // Preparar la consulta mysql usando msqli $stmt = $this->conn->prepare("SELECT contrasena FROM usuario WHERE usuario = ?"); $stmt->bind_param("s", $usuario); if (!$stmt->execute()) { throw new Exception("Error al iniciar sesión: " . $stmt->error); } // Obtener el resultado $stmt->store_result(); if ($stmt->num_rows == 0) { return false; // Usuario no encontrado } // Obtener el hash de la contraseña $stmt->bind_result($contrasena_hash); $stmt->fetch(); // Verificar la contraseña if (password_verify($contrasena, $contrasena_hash)) { return true; // Inicio de sesión exitoso } else { return false; // Contraseña incorrecta } } public function obtenerUsuarios() { // Preparar la consulta mysql usando msqli $stmt = $this->conn->prepare("SELECT usuario FROM usuario"); if (!$stmt->execute()) { throw new Exception("Error al obtener nombres de usuarios: " . $stmt->error); } // Obtener el resultado $result = $stmt->get_result(); $usuarios = []; while ($row = $result->fetch_assoc()) { $usuarios[] = $row; } return $usuarios; } public function eliminarUsuario($id){ // Preparar la consulta mysql usando msqli $stmt = $this->conn->prepare("DELETE FROM usuario WHERE id = ?"); $stmt->bind_param("i", $id); if (!$stmt->execute()) { throw new Exception("Error al eliminar usuario: " . $stmt->error); } $stmt->close(); } } ?>