';
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 '';
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 '