LANIA_Proyecto/models/UsuarioModel.php

92 lines
2.7 KiB
PHP

<?php
require_once __DIR__ . '/../config/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();
}
}
?>