Files
whatsapp/corregir_api.php
T
2026-01-12 11:06:43 -05:00

184 lines
6.7 KiB
PHP

<?php
/**
* 🔧 CORRECTOR AUTOMÁTICO DE RUTAS API
* Corrige todas las rutas incorrectas en los archivos de la API
*/
// Headers para mostrar errores
error_reporting(E_ALL);
ini_set('display_errors', 1);
echo "<!DOCTYPE html><html><head><meta charset='UTF-8'>";
echo "<title>🔧 Corrector API</title>";
echo "<style>body{font-family:monospace;margin:20px;background:#000;color:#00ff00}";
echo ".ok{color:#00ff00}.error{color:#ff0040}.warning{color:#ffaa00}";
echo ".section{background:#111;padding:15px;margin:10px 0;border:1px solid #333}";
echo "pre{background:#222;padding:10px;color:#ccc;overflow:auto;max-height:200px}";
echo "</style></head><body>";
echo "<h1>🔧 CORRECTOR AUTOMÁTICO DE RUTAS API</h1>";
// Verificar que existe la carpeta api
if (!is_dir('api')) {
echo "<div class='error'>❌ CRÍTICO: Carpeta 'api' no encontrada</div>";
exit;
}
// Obtener todos los archivos PHP de la API
$api_files = glob('api/*.php');
if (empty($api_files)) {
echo "<div class='error'>❌ No se encontraron archivos PHP en la API</div>";
exit;
}
echo "<div class='ok'>✅ Encontrados " . count($api_files) . " archivos para corregir</div>";
echo "<div class='section'>";
echo "<h2>🔄 CORRIGIENDO ARCHIVOS...</h2>";
$corrections = [
// Ruta incorrecta -> Ruta correcta
"require_once 'config/config.php';" => "require_once '../config/config.php';",
'require_once "config/config.php";' => 'require_once "../config/config.php";',
"include_once 'config/config.php';" => "include_once '../config/config.php';",
'include_once "config/config.php";' => 'include_once "../config/config.php";',
// También corregir rutas a classes si las hay
"require_once 'classes/" => "require_once '../classes/",
'require_once "classes/' => 'require_once "../classes/',
"include_once 'classes/" => "include_once '../classes/",
'include_once "classes/' => 'include_once "../classes/',
// Servicios
"require_once 'services/" => "require_once '../services/",
'require_once "services/' => 'require_once "../services/',
];
$total_files = 0;
$total_corrections = 0;
$errors = [];
foreach ($api_files as $file) {
$filename = basename($file);
$total_files++;
echo "<div class='warning'>🔄 Procesando: $filename</div>";
try {
// Leer contenido del archivo
$content = file_get_contents($file);
if ($content === false) {
$errors[] = "No se pudo leer: $filename";
continue;
}
$original_content = $content;
$file_corrections = 0;
// Aplicar todas las correcciones
foreach ($corrections as $wrong => $correct) {
$old_content = $content;
$content = str_replace($wrong, $correct, $content);
if ($content !== $old_content) {
$matches = substr_count($old_content, $wrong);
$file_corrections += $matches;
echo "<div class='ok'>✅ $matches corrección(es): '$wrong' → '$correct'</div>";
}
}
// Si hubo cambios, guardar el archivo
if ($content !== $original_content) {
if (file_put_contents($file, $content) === false) {
$errors[] = "No se pudo escribir: $filename";
continue;
}
$total_corrections += $file_corrections;
echo "<div class='ok'>✅ Archivo guardado: $filename ($file_corrections correcciones)</div>";
} else {
echo "<div class='warning'>⚠️ Sin cambios necesarios: $filename</div>";
}
} catch (Exception $e) {
$errors[] = "Error procesando $filename: " . $e->getMessage();
}
echo "<br>";
}
echo "</div>";
// Verificación post-corrección
echo "<div class='section'>";
echo "<h2>✅ VERIFICACIÓN POST-CORRECCIÓN</h2>";
echo "<div class='ok'>📊 Archivos procesados: $total_files</div>";
echo "<div class='ok'>📊 Total correcciones: $total_corrections</div>";
if (!empty($errors)) {
echo "<div class='error'>❌ Errores encontrados:</div>";
foreach ($errors as $error) {
echo "<div class='error'>• $error</div>";
}
} else {
echo "<div class='ok'>✅ Sin errores durante la corrección</div>";
}
// Verificar que las rutas sean correctas ahora
echo "<br><div class='warning'><strong>VERIFICANDO RUTAS CORREGIDAS...</strong></div>";
$verification_success = true;
foreach ($api_files as $file) {
$filename = basename($file);
$content = file_get_contents($file);
// Verificar que no quedan rutas incorrectas
if (preg_match('/require_once\s+[\'"]config\/config\.php[\'"]/', $content) ||
preg_match('/include_once\s+[\'"]config\/config\.php[\'"]/', $content)) {
echo "<div class='error'>❌ $filename: Aún tiene rutas incorrectas</div>";
$verification_success = false;
} else {
// Verificar que tiene la ruta correcta
if (preg_match('/require_once\s+[\'"]\.\.\/config\/config\.php[\'"]/', $content) ||
preg_match('/include_once\s+[\'"]\.\.\/config\/config\.php[\'"]/', $content)) {
echo "<div class='ok'>✅ $filename: Ruta corregida correctamente</div>";
} else {
echo "<div class='warning'>⚠️ $filename: No se encontró require de config</div>";
}
}
}
echo "</div>";
// Test final
echo "<div class='section'>";
echo "<h2>🔬 TEST FINAL</h2>";
if ($verification_success && $total_corrections > 0) {
echo "<div class='ok'>🎉 ¡CORRECCIÓN COMPLETADA CON ÉXITO!</div>";
echo "<div class='ok'>✅ Todas las rutas de la API han sido corregidas</div>";
echo "<div class='ok'>✅ Los archivos ahora buscan '../config/config.php'</div>";
echo "<br><div class='warning'><strong>SIGUIENTE PASO:</strong></div>";
echo "<div class='warning'>• Prueba cualquier endpoint de la API</div>";
echo "<div class='warning'>• Ejemplo: <a href='api/get_settings.php' style='color:#ffaa00'>api/get_settings.php</a></div>";
echo "<div class='warning'>• O prueba el login: <a href='login.php' style='color:#ffaa00'>login.php</a></div>";
} elseif ($total_corrections === 0) {
echo "<div class='warning'>⚠️ No se encontraron correcciones necesarias</div>";
echo "<div class='warning'>Puede que las rutas ya estén correctas o hay otro problema</div>";
echo "<br><div class='warning'><strong>VERIFICAR:</strong></div>";
echo "<div class='warning'>• Ejecuta: <a href='diagnostico_api.php' style='color:#ffaa00'>diagnostico_api.php</a></div>";
} else {
echo "<div class='error'>❌ Corrección incompleta</div>";
echo "<div class='error'>Hay problemas que requieren revisión manual</div>";
}
echo "</div>";
echo "</body></html>";
?>