"; echo "🔧 Test Configuración"; echo ""; echo "

🔧 TEST CONFIGURACIÓN

"; // 1. Verificar que el archivo existe if (!file_exists('config/config.php')) { echo "
❌ CRÍTICO: config/config.php no encontrado
"; echo "
Asegúrate de que el archivo esté en: config/config.php
"; exit; } echo "
✅ config/config.php encontrado
"; // 2. Verificar permisos del archivo if (!is_readable('config/config.php')) { echo "
❌ CRÍTICO: config/config.php no es legible
"; echo "
Ejecuta: chmod 644 config/config.php
"; exit; } echo "
✅ config/config.php es legible
"; // 3. Intentar cargar el archivo echo "
"; echo "

📋 CARGANDO CONFIGURACIÓN...

"; try { // Capturar cualquier output ob_start(); // Capturar errores $error_before = error_get_last(); // Incluir el archivo require_once 'config/config.php'; // Obtener output $output = ob_get_clean(); // Verificar si hubo errores $error_after = error_get_last(); if ($error_after && $error_after !== $error_before) { echo "
❌ ERROR al cargar config: " . htmlspecialchars($error_after['message']) . "
"; echo "
Línea: " . $error_after['line'] . " en " . $error_after['file'] . "
"; } elseif (!empty($output)) { echo "
⚠️ ADVERTENCIA: config.php produce output:
"; echo "
" . htmlspecialchars($output) . "
"; echo "
Los archivos de configuración NO deben producir output
"; } else { echo "
✅ config/config.php cargado sin errores
"; } } catch (ParseError $e) { echo "
❌ ERROR DE SINTAXIS en config.php:
"; echo "
" . htmlspecialchars($e->getMessage()) . "
"; echo "
Línea: " . $e->getLine() . "
"; exit; } catch (Error $e) { echo "
❌ ERROR FATAL en config.php:
"; echo "
" . htmlspecialchars($e->getMessage()) . "
"; exit; } catch (Exception $e) { echo "
❌ EXCEPCIÓN en config.php:
"; echo "
" . htmlspecialchars($e->getMessage()) . "
"; exit; } echo "
"; // 4. Verificar constantes requeridas echo "
"; echo "

🗄️ VERIFICANDO CONSTANTES DE BD...

"; $required_constants = [ 'DB_HOST' => 'Servidor de base de datos', 'DB_NAME' => 'Nombre de la base de datos', 'DB_USER' => 'Usuario de la base de datos', 'DB_PASS' => 'Contraseña de la base de datos', 'DB_PORT' => 'Puerto de la base de datos', 'DB_CHARSET' => 'Charset de la base de datos' ]; $all_defined = true; foreach ($required_constants as $const => $desc) { if (defined($const)) { $value = constant($const); $display_value = ($const === 'DB_PASS') ? str_repeat('*', strlen($value)) : $value; echo "
✅ $const = '$display_value' ($desc)
"; } else { echo "
❌ $const no definida ($desc)
"; $all_defined = false; } } if (!$all_defined) { echo "
❌ CRÍTICO: Faltan constantes de base de datos
"; echo "
El sistema no puede funcionar sin estas constantes
"; } echo "
"; // 5. Test de conexión a BD (solo si todas las constantes están) if ($all_defined) { echo "
"; echo "

🔌 TEST CONEXIÓN BASE DE DATOS...

"; try { $dsn = "mysql:host=" . DB_HOST . ";port=" . DB_PORT . ";dbname=" . DB_NAME . ";charset=" . DB_CHARSET; echo "
DSN: $dsn
"; $pdo = new PDO($dsn, DB_USER, DB_PASS, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_TIMEOUT => 5 ]); echo "
✅ CONEXIÓN EXITOSA a la base de datos
"; // Verificar algunas tablas $tables_to_check = ['conversations', 'messages', 'settings', 'message_templates']; foreach ($tables_to_check as $table) { try { $stmt = $pdo->query("SHOW TABLES LIKE '$table'"); if ($stmt->rowCount() > 0) { echo "
✅ Tabla '$table' existe
"; } else { echo "
⚠️ Tabla '$table' NO existe
"; } } catch (Exception $e) { echo "
❌ Error verificando tabla '$table': " . htmlspecialchars($e->getMessage()) . "
"; } } } catch (PDOException $e) { echo "
❌ ERROR DE CONEXIÓN:
"; echo "
" . htmlspecialchars($e->getMessage()) . "
"; echo "
Verifica:
"; echo "
• Host: " . DB_HOST . "
"; echo "
• Base datos: " . DB_NAME . "
"; echo "
• Usuario: " . DB_USER . "
"; echo "
• Puerto: " . DB_PORT . "
"; } echo "
"; } // 6. Verificar otras constantes importantes echo "
"; echo "

🔑 OTRAS CONSTANTES DEL SISTEMA...

"; $other_constants = [ 'ADMIN_USERNAME' => 'Usuario administrador', 'ADMIN_PASSWORD' => 'Contraseña administrador', 'SECRET_KEY' => 'Clave secreta', 'WHATSAPP_TOKEN' => 'Token de WhatsApp', 'WHATSAPP_PHONE_NUMBER_ID' => 'ID del número de teléfono' ]; foreach ($other_constants as $const => $desc) { if (defined($const)) { $value = constant($const); if (in_array($const, ['ADMIN_PASSWORD', 'SECRET_KEY', 'WHATSAPP_TOKEN'])) { $display_value = str_repeat('*', min(strlen($value), 20)); } else { $display_value = $value; } echo "
✅ $const = '$display_value' ($desc)
"; } else { echo "
⚠️ $const no definida ($desc)
"; } } echo "
"; // 7. Resumen final echo "
"; echo "

📊 RESUMEN

"; if ($all_defined) { echo "
✅ Configuración básica completa
"; echo "
✅ Archivo config.php funcional
"; echo "
✅ Sistema puede intentar funcionar
"; echo "
SIGUIENTE PASO:
"; echo "
• Probar: login.php
"; echo "
• Si funciona login, probar: index.php
"; } else { echo "
❌ Configuración incompleta
"; echo "
❌ Sistema NO puede funcionar
"; echo "
Corrige las constantes faltantes en config/config.php
"; } echo "
"; echo ""; ?>