<?php // ============================================================ // SIDE - ARC 1.0 // Archivo: login.php // Propósito: Formulario de inicio de sesión del administrador. // ============================================================ // Si ya hay sesión activa, redirigir al índice if (session_status() === PHP_SESSION_NONE) { session_start(); } if (isset($_SESSION['admin_id']) && !empty($_SESSION['admin_id'])) { header('Location: /apps/side-arc/index.php'); exit; } $titulo_pagina = 'Iniciar Sesión'; require_once 'header.php'; // Recuperar mensaje de error si fue redirigido desde procesar_login.php $error = ''; if (isset($_SESSION['login_error'])) { $error = $_SESSION['login_error']; unset($_SESSION['login_error']); } ?> <div class="login-contenedor"> <div class="login-card"> <div class="login-card__encabezado"> <span class="brand-sigla" style="font-size:1.8rem; color:var(--color-acento); letter-spacing:3px; font-family:var(--fuente-principal);">SIDE</span> <h1 class="login-card__titulo">Acceso Administrativo</h1> <p class="login-card__subtitulo"> Ingrese sus credenciales para activar el modo administrador. </p> </div> <?php if (!empty($error)): ?> <div class="alerta alerta--error"> <?= htmlspecialchars($error) ?> </div> <?php endif; ?> <?php if (isset($_SESSION['acceso_denegado']) && $_SESSION['acceso_denegado']): ?> <div class="alerta alerta--advertencia"> Debe iniciar sesión para acceder a esa sección. </div> <?php unset($_SESSION['acceso_denegado']); ?> <?php endif; ?> <form action="/apps/side-arc/procesar_login.php" method="POST" class="login-form" autocomplete="off"> <!-- Token CSRF --> <?php if (empty($_SESSION['csrf_token'])) { $_SESSION['csrf_token'] = bin2hex(random_bytes(32)); } ?> <input type="hidden" name="csrf_token" value="<?= $_SESSION['csrf_token'] ?>"> <div class="form-grupo"> <label for="usuario" class="form-label">Usuario</label> <input type="text" id="usuario" name="usuario" class="form-input" maxlength="60" required autofocus autocomplete="username" > </div> <div class="form-grupo"> <label for="password" class="form-label">Contraseña</label> <input type="password" id="password" name="password" class="form-input" maxlength="100" required autocomplete="current-password" > </div> <button type="submit" class="btn btn--primario btn--login-submit"> Iniciar Sesión </button> </form> <div class="login-card__pie"> <a href="/apps/side-arc/index.php">← Volver al inicio sin autenticarse</a> </div> </div><!-- /.login-card --> </div><!-- /.login-contenedor --> <?php require_once 'footer.php'; ?>