92 lines
2.7 KiB
PHP
92 lines
2.7 KiB
PHP
<?php
|
|
|
|
require_once __DIR__ . '/../controllers/Database.php';
|
|
|
|
class UsuarioModel {
|
|
private $conn;
|
|
|
|
public function __construct() {
|
|
$this->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();
|
|
}
|
|
|
|
}
|
|
|
|
?>
|