🔍 Diagnóstico de Login Avanzado

'; echo '

✅ Conexión a Base de Datos: EXITOSA

'; echo '
'; // Verificar estado del sistema $isMigrated = isAuthSystemMigrated(); echo '
'; echo '

📊 Estado del Sistema de Autenticación

'; echo '

Sistema migrado a BD: ' . ($isMigrated ? '✅ SÍ' : '❌ NO - Sistema Legacy') . '

'; if ($isMigrated) { echo '

Tabla admin_users: ✅ Existe

'; // Contar administradores $stmt = $pdo->query("SELECT COUNT(*) as total, COUNT(CASE WHEN is_active = 1 THEN 1 END) as active FROM admin_users"); $counts = $stmt->fetch(); echo '

Total administradores: ' . $counts['total'] . '

'; echo '

Administradores activos: ' . $counts['active'] . '

'; } else { echo '

Usuario por defecto: admin (sistema hardcodeado)

'; } echo '
'; // Mostrar lista de administradores si existe la tabla if ($isMigrated) { echo '

👥 Lista de Administradores en Base de Datos

'; $stmt = $pdo->query("SELECT * FROM admin_users ORDER BY created_at DESC"); $admins = $stmt->fetchAll(); if (empty($admins)) { echo '
⚠️ No hay administradores en la base de datos
'; } else { echo ''; echo ''; foreach ($admins as $admin) { echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
IDUsuarioNombreEmailEstadoCreadoÚltimo Login
' . $admin['id'] . '' . htmlspecialchars($admin['username']) . '' . htmlspecialchars($admin['full_name'] ?? 'Sin nombre') . '' . htmlspecialchars($admin['email'] ?? 'Sin email') . '✅ Activo' : 'inactive">❌ Inactivo') . '' . ($admin['created_at'] ?? 'No disponible') . '' . ($admin['last_login'] ?? 'Nunca') . '
'; } } // Procesar test de login if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['test_user'])) { $testUsername = trim($_POST['username']); $testPassword = $_POST['password']; echo '
'; echo '

🔍 Resultado del Diagnóstico de Login

'; echo 'Usuario probado: ' . htmlspecialchars($testUsername) . '
'; echo 'Fecha/Hora: ' . date('Y-m-d H:i:s') . '

'; // Probar autenticación $authResult = authenticateUser($testUsername, $testPassword); if ($authResult) { echo '
✅ LOGIN EXITOSO

'; echo 'Datos del usuario autenticado:
'; echo '- ID: ' . $authResult['id'] . '
'; echo '- Usuario: ' . htmlspecialchars($authResult['username']) . '
'; echo '- Nombre: ' . htmlspecialchars($authResult['full_name']) . '
'; echo '- Email: ' . htmlspecialchars($authResult['email']) . '
'; } else { echo '
❌ LOGIN FALLIDO

'; // Diagnóstico detallado if ($isMigrated) { $stmt = $pdo->prepare("SELECT * FROM admin_users WHERE username = ?"); $stmt->execute([$testUsername]); $user = $stmt->fetch(); if (!$user) { echo 'Razón: Usuario "' . htmlspecialchars($testUsername) . '" no existe en BD
'; } elseif (!$user['is_active']) { echo 'Razón: Usuario existe pero está INACTIVO
'; } else { echo 'Razón: Usuario existe y está activo, pero la contraseña es incorrecta
'; // Mostrar información del usuario encontrado echo '
Información del usuario en BD:
'; echo '- ID: ' . $user['id'] . '
'; echo '- Usuario: ' . htmlspecialchars($user['username']) . '
'; echo '- Nombre: ' . htmlspecialchars($user['full_name'] ?? 'Sin nombre') . '
'; echo '- Activo: ' . ($user['is_active'] ? 'Sí' : 'No') . '
'; echo '- Hash de contraseña: ' . substr($user['password_hash'], 0, 20) . '...
'; } } else { if ($testUsername !== 'admin') { echo 'Razón: Sistema legacy - solo acepta usuario "admin"
'; } else { echo 'Razón: Usuario correcto pero contraseña incorrecta
'; echo 'Sistema: Legacy (hardcodeado)
'; echo 'Hash esperado: ' . substr(ADMIN_PASSWORD, 0, 20) . '...
'; } } } echo '
'; } } catch (Exception $e) { echo '
'; echo '

❌ Error de Sistema

'; echo '

Error: ' . htmlspecialchars($e->getMessage()) . '

'; echo '
'; } ?>

🧪 Probar Credenciales de Login

🌐 Enlaces del Sistema:

Login oficial: login.php

Panel principal: index.php

Gestión de admins: gestion_admin_unificada.php

Migración a BD: migrate_to_database_auth.php

⚠️ Notas de Seguridad: