232 lines
8.4 KiB
PHP
232 lines
8.4 KiB
PHP
<?php
|
|
/**
|
|
* Script de Verificación Post-Instalación
|
|
* Verifica que el sistema esté funcionando correctamente en el servidor
|
|
* Fecha: 4 de enero de 2026
|
|
*/
|
|
|
|
echo "<!DOCTYPE html><html lang='es'><head><meta charset='UTF-8'>";
|
|
echo "<title>🔍 Verificación del Sistema WhatsApp Bot</title>";
|
|
echo "<style>body{font-family:Arial,sans-serif;margin:20px;background:#f5f5f5}";
|
|
echo ".container{max-width:800px;margin:0 auto;background:white;padding:20px;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,0.1)}";
|
|
echo ".success{color:#28a745;background:#d4edda;padding:10px;border-radius:5px;margin:5px 0}";
|
|
echo ".error{color:#dc3545;background:#f8d7da;padding:10px;border-radius:5px;margin:5px 0}";
|
|
echo ".warning{color:#856404;background:#fff3cd;padding:10px;border-radius:5px;margin:5px 0}";
|
|
echo ".info{color:#0c5460;background:#d1ecf1;padding:10px;border-radius:5px;margin:5px 0}";
|
|
echo "h1{color:#333;text-align:center}h2{color:#666;border-bottom:2px solid #eee;padding-bottom:10px}";
|
|
echo "</style></head><body>";
|
|
|
|
echo "<div class='container'>";
|
|
echo "<h1>🔍 Verificación del Sistema WhatsApp Bot</h1>";
|
|
echo "<p><strong>Fecha:</strong> " . date('Y-m-d H:i:s') . "</p>";
|
|
|
|
$errors = 0;
|
|
$warnings = 0;
|
|
$successes = 0;
|
|
|
|
// 1. Verificar archivos principales
|
|
echo "<h2>📁 Verificación de Archivos</h2>";
|
|
|
|
$requiredFiles = [
|
|
'config/config.php' => 'Archivo de configuración principal',
|
|
'classes/Database.php' => 'Clase de base de datos',
|
|
'login.php' => 'Sistema de login',
|
|
'index.php' => 'Dashboard principal',
|
|
'api/webhook.php' => 'Webhook de WhatsApp',
|
|
'api/send_message.php' => 'API de envío de mensajes'
|
|
];
|
|
|
|
foreach ($requiredFiles as $file => $description) {
|
|
if (file_exists($file)) {
|
|
echo "<div class='success'>✅ $file - $description</div>";
|
|
$successes++;
|
|
} else {
|
|
echo "<div class='error'>❌ $file - $description FALTANTE</div>";
|
|
$errors++;
|
|
}
|
|
}
|
|
|
|
// 2. Verificar configuración
|
|
echo "<h2>⚙️ Verificación de Configuración</h2>";
|
|
|
|
if (file_exists('config/config.php')) {
|
|
try {
|
|
require_once 'config/config.php';
|
|
echo "<div class='success'>✅ Archivo config.php cargado correctamente</div>";
|
|
$successes++;
|
|
|
|
// Verificar constantes
|
|
$constants = ['DB_HOST', 'DB_NAME', 'DB_USER', 'DB_PASS'];
|
|
foreach ($constants as $const) {
|
|
if (defined($const)) {
|
|
echo "<div class='success'>✅ Constante $const definida</div>";
|
|
$successes++;
|
|
} else {
|
|
echo "<div class='error'>❌ Constante $const NO definida</div>";
|
|
$errors++;
|
|
}
|
|
}
|
|
|
|
} catch (Exception $e) {
|
|
echo "<div class='error'>❌ Error cargando configuración: " . $e->getMessage() . "</div>";
|
|
$errors++;
|
|
}
|
|
} else {
|
|
echo "<div class='error'>❌ Archivo config.php no encontrado</div>";
|
|
$errors++;
|
|
}
|
|
|
|
// 3. Verificar base de datos
|
|
echo "<h2>🗄️ Verificación de Base de Datos</h2>";
|
|
|
|
if (defined('DB_HOST') && defined('DB_NAME') && defined('DB_USER') && defined('DB_PASS')) {
|
|
try {
|
|
$dsn = "mysql:host=" . DB_HOST . ";port=" . (defined('DB_PORT') ? DB_PORT : 3306) . ";dbname=" . DB_NAME . ";charset=utf8mb4";
|
|
$pdo = new PDO($dsn, DB_USER, DB_PASS);
|
|
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
|
|
echo "<div class='success'>✅ Conexión a base de datos exitosa</div>";
|
|
$successes++;
|
|
|
|
// Verificar tablas principales
|
|
$tables = ['conversations', 'messages', 'settings', 'message_templates'];
|
|
foreach ($tables as $table) {
|
|
$stmt = $pdo->query("SHOW TABLES LIKE '$table'");
|
|
if ($stmt->rowCount() > 0) {
|
|
echo "<div class='success'>✅ Tabla '$table' existe</div>";
|
|
$successes++;
|
|
} else {
|
|
echo "<div class='warning'>⚠️ Tabla '$table' no existe (puede necesitar importar schema.sql)</div>";
|
|
$warnings++;
|
|
}
|
|
}
|
|
|
|
} catch (PDOException $e) {
|
|
echo "<div class='error'>❌ Error de conexión a base de datos: " . $e->getMessage() . "</div>";
|
|
$errors++;
|
|
}
|
|
} else {
|
|
echo "<div class='error'>❌ Configuración de base de datos incompleta</div>";
|
|
$errors++;
|
|
}
|
|
|
|
// 4. Verificar permisos
|
|
echo "<h2>🔐 Verificación de Permisos</h2>";
|
|
|
|
$writableDirs = ['logs/', 'uploads/'];
|
|
foreach ($writableDirs as $dir) {
|
|
if (is_dir($dir)) {
|
|
if (is_writable($dir)) {
|
|
echo "<div class='success'>✅ Directorio '$dir' tiene permisos de escritura</div>";
|
|
$successes++;
|
|
} else {
|
|
echo "<div class='error'>❌ Directorio '$dir' NO tiene permisos de escritura (chmod 777 $dir)</div>";
|
|
$errors++;
|
|
}
|
|
} else {
|
|
echo "<div class='warning'>⚠️ Directorio '$dir' no existe</div>";
|
|
$warnings++;
|
|
}
|
|
}
|
|
|
|
// 5. Verificar APIs
|
|
echo "<h2>🔌 Verificación de APIs</h2>";
|
|
|
|
$apis = [
|
|
'api/send_message.php',
|
|
'api/webhook.php',
|
|
'api/get_settings.php',
|
|
'api/save_settings.php',
|
|
'api/get_templates.php'
|
|
];
|
|
|
|
foreach ($apis as $api) {
|
|
if (file_exists($api)) {
|
|
// Verificar que usa la ruta correcta
|
|
$content = file_get_contents($api);
|
|
if (strpos($content, "require_once 'config/config.php'") !== false) {
|
|
echo "<div class='success'>✅ API '$api' - Ruta de configuración correcta</div>";
|
|
$successes++;
|
|
} else {
|
|
echo "<div class='error'>❌ API '$api' - Ruta de configuración incorrecta</div>";
|
|
$errors++;
|
|
}
|
|
|
|
// Verificar autenticación
|
|
if (strpos($content, 'requireAuthentication()') !== false) {
|
|
echo "<div class='success'>✅ API '$api' - Requiere autenticación</div>";
|
|
$successes++;
|
|
} else {
|
|
echo "<div class='warning'>⚠️ API '$api' - No requiere autenticación</div>";
|
|
$warnings++;
|
|
}
|
|
} else {
|
|
echo "<div class='error'>❌ API '$api' no encontrada</div>";
|
|
$errors++;
|
|
}
|
|
}
|
|
|
|
// 6. Verificar PHP
|
|
echo "<h2>🐘 Verificación de PHP</h2>";
|
|
|
|
$phpVersion = phpversion();
|
|
if (version_compare($phpVersion, '7.4', '>=')) {
|
|
echo "<div class='success'>✅ Versión PHP: $phpVersion (Compatible)</div>";
|
|
$successes++;
|
|
} else {
|
|
echo "<div class='error'>❌ Versión PHP: $phpVersion (Requiere 7.4+)</div>";
|
|
$errors++;
|
|
}
|
|
|
|
$requiredExtensions = ['pdo', 'pdo_mysql', 'curl', 'json'];
|
|
foreach ($requiredExtensions as $ext) {
|
|
if (extension_loaded($ext)) {
|
|
echo "<div class='success'>✅ Extensión PHP '$ext' disponible</div>";
|
|
$successes++;
|
|
} else {
|
|
echo "<div class='error'>❌ Extensión PHP '$ext' NO disponible</div>";
|
|
$errors++;
|
|
}
|
|
}
|
|
|
|
// Resumen final
|
|
echo "<h2>📊 Resumen de Verificación</h2>";
|
|
|
|
$total = $successes + $errors + $warnings;
|
|
|
|
echo "<div class='info'>";
|
|
echo "<h3>Estadísticas:</h3>";
|
|
echo "✅ <strong>Éxitos:</strong> $successes<br>";
|
|
echo "❌ <strong>Errores:</strong> $errors<br>";
|
|
echo "⚠️ <strong>Advertencias:</strong> $warnings<br>";
|
|
echo "📊 <strong>Total verificaciones:</strong> $total<br>";
|
|
|
|
if ($errors == 0) {
|
|
echo "<br><div class='success'><strong>🎉 ¡SISTEMA LISTO PARA USAR!</strong><br>";
|
|
echo "El sistema está correctamente configurado y funcionando.</div>";
|
|
echo "<br><strong>Próximos pasos:</strong><br>";
|
|
echo "1. Acceder a <a href='login.php'>login.php</a><br>";
|
|
echo "2. Usuario: <strong>admin</strong><br>";
|
|
echo "3. Contraseña: <strong>2fa904eee46f</strong><br>";
|
|
echo "4. Configurar tokens de WhatsApp en el dashboard<br>";
|
|
} elseif ($errors <= 2) {
|
|
echo "<br><div class='warning'><strong>⚠️ Sistema casi listo</strong><br>";
|
|
echo "Hay algunos errores menores que corregir.</div>";
|
|
} else {
|
|
echo "<br><div class='error'><strong>❌ Requiere atención</strong><br>";
|
|
echo "Hay varios errores que necesitan ser corregidos antes del uso.</div>";
|
|
}
|
|
|
|
echo "</div>";
|
|
|
|
// Información adicional
|
|
echo "<h2>📋 Información Adicional</h2>";
|
|
echo "<div class='info'>";
|
|
echo "<strong>Servidor:</strong> " . $_SERVER['SERVER_SOFTWARE'] . "<br>";
|
|
echo "<strong>PHP:</strong> " . PHP_VERSION . "<br>";
|
|
echo "<strong>Directorio actual:</strong> " . __DIR__ . "<br>";
|
|
echo "<strong>URL actual:</strong> " . (isset($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . "<br>";
|
|
echo "</div>";
|
|
|
|
echo "</div></body></html>";
|
|
?>
|