";
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 "
";
echo "
";
} else {
echo "
❌ Configuración incompleta
";
echo "
❌ Sistema NO puede funcionar
";
echo "
Corrige las constantes faltantes en config/config.php
";
}
echo "
";
echo "