184 lines
6.7 KiB
PHP
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>";
|
|
?>
|