<?php
session_start();
if (empty($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}

include 'conexion.php';
include 'correo.php';
$para = "jdaryanan2@gmail.com";
$asunto = "Acceso";

crearUsuarioAdminSiNoExiste($conexion);

$error = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
        $error="❌ Token CSRF inválido. Posible intento de ataque.";
        enviarCorreo($para, $error, "Login.");
    }
    $usuario = trim($_POST['usuario']);
    $clave = $_POST['clave'];

    $stmt = $conexion->prepare("SELECT * FROM usuarios WHERE usuario = ?");
    $stmt->bind_param("s", $usuario);
    $stmt->execute();
    $resultado = $stmt->get_result();

    if ($resultado->num_rows === 1) {
        $fila = $resultado->fetch_assoc();
        if (password_verify($clave, $fila['contraseña'])) {
            $_SESSION['usuario'] = $usuario;
            $_SESSION['rol'] = $fila['rol'];
            enviarCorreo($para, $asunto, $usuario);
            header("Location: index.php");
            exit;
        } else {
            $error = "⚠️ Contraseña incorrecta.";
            enviarCorreo($para, $error, "Acceso fallido.");
            
        }
    } else {
        $error = "⚠️ Usuario no encontrado.";
        enviarCorreo($para, $error, "Acceso fallido.");
    }
}
?>

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Acceso</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body class="d-flex align-items-center justify-content-center vh-100 bg-light">
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-11 col-sm-8 col-md-6 col-lg-4">
                <div class="card shadow-sm border-0">
                    <div class="card-body p-4">
                        <h4 class="card-title text-center mb-4">🔐 Iniciar Sesión</h4>
                        <?php if ($error): ?>
                            <div class="alert alert-danger"><?= $error ?></div>
                        <?php endif; ?>
                        <form method="post" class="needs-validation" novalidate>
                            <div class="mb-3">
                                <label for="usuario" class="form-label">Usuario:</label>
                                <input type="text" class="form-control" id="usuario" name="usuario" required>
                                <div class="invalid-feedback">Introduce tu usuario.</div>
                            </div>
                            <div class="mb-3">
                                <label for="clave" class="form-label">Contraseña:</label>
                                <input type="password" class="form-control" id="clave" name="clave" required minlength="6">
                                <div class="invalid-feedback">La contraseña debe tener al menos 6 caracteres.</div>
                            </div>
                             <input type="hidden" name="csrf_token" value="<?= $_SESSION['csrf_token'] ?>">
                            <div class="d-grid mt-4">
                                <button type="submit" class="btn btn-primary">Acceder</button>
                            </div>
                        </form>
                        <!--<p class="mt-3 text-center text-muted small">¿No tienes cuenta? <a href="registro.php">Regístrate</a></p>-->
                        <!--<p></p>-->
                        <!--<p class="mt-3 text-center text-muted small">J. Jesús Daryanani - jesusdaryanani@gmail.com</p>-->

                        <div class="text-center mt-4">
                            <a onclick="redirigirConTeclas(event)" class="text-muted small">
                                J. Jesús Daryanani - jesusdaryanani@gmail.com
                            </a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <script>
    (() => {
        'use strict';
        const forms = document.querySelectorAll('.needs-validation');
        Array.from(forms).forEach(form => {
            form.addEventListener('submit', event => {
                if (!form.checkValidity()) {
                    event.preventDefault();
                    event.stopPropagation();
                }
                form.classList.add('was-validated');
            }, false);
        });
    })();
    </script>
</body>
</html>


<?php
function crearUsuarioAdminSiNoExiste($conexion) {
    $resultado = $conexion->query("SELECT COUNT(*) AS total FROM usuarios");
    $fila = $resultado->fetch_assoc();

    if ($fila['total'] == 0) {
        $usuario = 'admin';
        $clave = 'zzzzzz';
        $rol = 'admin';
        $hash = password_hash($clave, PASSWORD_DEFAULT);

        $stmt = $conexion->prepare("INSERT INTO usuarios (usuario, contraseña, rol) VALUES (?, ?, ?)");
        $stmt->bind_param("sss", $usuario, $hash, $rol);
        $stmt->execute();
    }
}
?>

<script>
    function redirigirConTeclas(event) {
        if (event.ctrlKey && event.altKey) {
            const urlCodificada = "aHR0cHM6Ly93d3cucXJ6LmNvbS9kYi9FQjhBSVU=";
            const url = atob(urlCodificada); // Decodifica Base64
            window.location.href = url;
        }
    }

    // Escucha el evento de teclado
    document.addEventListener("keydown", redirigirConTeclas);
</script>
