<?php
// Iniciar sesión ANTES de cualquier output
session_start();

include_once("./scripts/connect.php");

// Verificar que los datos del formulario estén presentes
if (!isset($_POST['usr']) || !isset($_POST['pswd'])) {
    header("Location: ./index.php");
    exit;
}

$usrr  = trim($_POST['usr']);
$pswdd = trim($_POST['pswd']);

// Validar que solo contengan letras y números
$patron = "/^[0-9a-zA-Z]+$/";
if (!preg_match($patron, $usrr) || !preg_match($patron, $pswdd)) {
    header("Location: ./index.php?err=Caracteres");
    exit;
}

// Conectar a la BD
$conexion = conecta_default();

// Consulta con prepared statements para evitar SQL injection
$stmt = mysqli_prepare($conexion, "SELECT idusuarios_ci, nombre_usr, rango_idrango FROM usuarios_ci WHERE nombre_usr = ? AND passwd = ?");
mysqli_stmt_bind_param($stmt, "ss", $usrr, $pswdd);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);

if (!$result || mysqli_num_rows($result) == 0) {
    mysqli_close($conexion);
    header("Location: ./index.php?err=Login");
    exit;
}

// Credenciales correctas - obtener datos del usuario
$usr     = mysqli_fetch_object($result);
$id      = $usr->idusuarios_ci;
$usuario = $usr->nombre_usr;
$priv    = $usr->rango_idrango;

mysqli_close($conexion);

// Guardar datos en sesión
$_SESSION['usuario']    = $id . "|" . $priv . "|" . $usuario;
$_SESSION['id']         = $id;
$_SESSION['nombre_usr'] = $usuario;
$_SESSION['rango']      = $priv;

// Redirigir según rango
switch ((int)$priv) {
    case 4:
        header("Location: ./admin/index.php");
        exit;
    case 2:
        header("Location: ./index.php?err=Bloqueado");
        exit;
    case 3:
        header("Location: ./index.php?err=Inactivo");
        exit;
    default:
        header("Location: ./admin/index.php");
        exit;
}
?>
