195 lines
6.5 KiB
PHP
195 lines
6.5 KiB
PHP
<?php
|
||
// Fix: Logout-Route Cache-Problem beheben
|
||
echo "🔧 Fix: Logout-Route Cache-Problem beheben\n";
|
||
echo "=========================================\n\n";
|
||
|
||
// 1. Alle Cache-Dateien löschen
|
||
echo "1. 🗑️ Alle Cache-Dateien löschen...\n";
|
||
$cacheFiles = [
|
||
'bootstrap/cache/packages.php',
|
||
'bootstrap/cache/services.php',
|
||
'bootstrap/cache/routes.php',
|
||
'bootstrap/cache/config.php',
|
||
'bootstrap/cache/application.php'
|
||
];
|
||
|
||
foreach ($cacheFiles as $cacheFile) {
|
||
if (file_exists($cacheFile)) {
|
||
unlink($cacheFile);
|
||
echo " ✅ Gelöscht: $cacheFile\n";
|
||
} else {
|
||
echo " ℹ️ Nicht vorhanden: $cacheFile\n";
|
||
}
|
||
}
|
||
|
||
// 2. Composer autoload neu generieren
|
||
echo "\n2. 🔄 Composer autoload neu generieren...\n";
|
||
system('composer dump-autoload 2>/dev/null || echo " ⚠️ composer dump-autoload übersprungen"');
|
||
echo " ✅ Autoload neu generiert\n";
|
||
|
||
// 3. Laravel Cache komplett leeren
|
||
echo "\n3. 🧹 Laravel Cache komplett leeren...\n";
|
||
system('php artisan cache:clear 2>/dev/null || echo " ⚠️ cache:clear übersprungen"');
|
||
system('php artisan config:clear 2>/dev/null || echo " ⚠️ config:clear übersprungen"');
|
||
system('php artisan view:clear 2>/dev/null || echo " ⚠️ view:clear übersprungen"');
|
||
system('php artisan route:clear 2>/dev/null || echo " ⚠️ route:clear übersprungen"');
|
||
system('php artisan optimize:clear 2>/dev/null || echo " ⚠️ optimize:clear übersprungen"');
|
||
echo " ✅ Laravel Cache geleert\n";
|
||
|
||
// 4. Routes-Datei prüfen und korrigieren
|
||
echo "\n4. 🛣️ Routes-Datei prüfen...\n";
|
||
$routesPath = 'routes/web.php';
|
||
if (file_exists($routesPath)) {
|
||
$content = file_get_contents($routesPath);
|
||
|
||
// Zeige alle Logout-bezogenen Zeilen
|
||
$lines = explode("\n", $content);
|
||
$logoutLines = [];
|
||
|
||
foreach ($lines as $lineNumber => $line) {
|
||
if (strpos($line, 'logout') !== false) {
|
||
$logoutLines[] = ($lineNumber + 1) . ": " . trim($line);
|
||
}
|
||
}
|
||
|
||
if (!empty($logoutLines)) {
|
||
echo " ✅ Logout-Routes gefunden:\n";
|
||
foreach ($logoutLines as $line) {
|
||
echo " 📋 $line\n";
|
||
}
|
||
} else {
|
||
echo " ❌ Keine Logout-Routes gefunden\n";
|
||
}
|
||
|
||
// Prüfe ob die Route korrekt ist
|
||
if (strpos($content, "Route::post('/logout', [LoginController::class, 'logout'])->name('logout')->middleware('auth');") !== false) {
|
||
echo " ✅ Logout-Route ist korrekt definiert\n";
|
||
} else {
|
||
echo " ❌ Logout-Route ist nicht korrekt definiert\n";
|
||
}
|
||
|
||
} else {
|
||
echo " ❌ Routes-Datei nicht gefunden\n";
|
||
}
|
||
|
||
// 5. LoginController prüfen
|
||
echo "\n5. 🔐 LoginController prüfen...\n";
|
||
$controllerPath = 'app/Http/Controllers/Auth/LoginController.php';
|
||
if (file_exists($controllerPath)) {
|
||
$content = file_get_contents($controllerPath);
|
||
|
||
if (strpos($content, 'public function logout') !== false) {
|
||
echo " ✅ Logout-Methode vorhanden\n";
|
||
|
||
// Zeige Logout-Methode
|
||
$lines = explode("\n", $content);
|
||
$inLogoutMethod = false;
|
||
$methodLines = [];
|
||
|
||
foreach ($lines as $lineNumber => $line) {
|
||
if (strpos($line, 'public function logout') !== false) {
|
||
$inLogoutMethod = true;
|
||
$methodLines[] = ($lineNumber + 1) . ": " . trim($line);
|
||
} elseif ($inLogoutMethod && strpos($line, 'public function') !== false) {
|
||
$inLogoutMethod = false;
|
||
} elseif ($inLogoutMethod) {
|
||
$methodLines[] = ($lineNumber + 1) . ": " . trim($line);
|
||
}
|
||
}
|
||
|
||
echo " 📋 Logout-Methode:\n";
|
||
foreach ($methodLines as $line) {
|
||
echo " $line\n";
|
||
}
|
||
|
||
} else {
|
||
echo " ❌ Logout-Methode nicht gefunden\n";
|
||
}
|
||
|
||
} else {
|
||
echo " ❌ LoginController nicht gefunden\n";
|
||
}
|
||
|
||
// 6. Route-Liste neu generieren
|
||
echo "\n6. 🛣️ Route-Liste neu generieren...\n";
|
||
try {
|
||
require_once 'vendor/autoload.php';
|
||
|
||
// Laravel Bootstrap
|
||
$app = require_once 'bootstrap/app.php';
|
||
$app->make('Illuminate\Contracts\Console\Kernel')->bootstrap();
|
||
|
||
// Route-Liste abrufen
|
||
$routes = \Illuminate\Support\Facades\Route::getRoutes();
|
||
|
||
$logoutRoutes = [];
|
||
foreach ($routes as $route) {
|
||
$uri = $route->uri();
|
||
$methods = $route->methods();
|
||
$name = $route->getName();
|
||
|
||
if (strpos($uri, 'logout') !== false || strpos($name, 'logout') !== false) {
|
||
$logoutRoutes[] = [
|
||
'uri' => $uri,
|
||
'methods' => $methods,
|
||
'name' => $name
|
||
];
|
||
}
|
||
}
|
||
|
||
if (empty($logoutRoutes)) {
|
||
echo " ❌ Keine Logout-Routes in Laravel registriert\n";
|
||
} else {
|
||
echo " ✅ Logout-Routes in Laravel gefunden:\n";
|
||
foreach ($logoutRoutes as $route) {
|
||
$methods = implode('|', $route['methods']);
|
||
$name = $route['name'] ?: 'kein Name';
|
||
echo " 📋 $methods $uri ($name)\n";
|
||
}
|
||
}
|
||
|
||
} catch (Exception $e) {
|
||
echo " ❌ Fehler beim Abrufen der Routes: " . $e->getMessage() . "\n";
|
||
}
|
||
|
||
// 7. Test-Logout-Form erstellen
|
||
echo "\n7. 🧪 Test-Logout-Form erstellen...\n";
|
||
$testForm = '<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<title>Logout Test</title>
|
||
<meta charset="utf-8">
|
||
</head>
|
||
<body>
|
||
<h1>Logout Test</h1>
|
||
<form action="{{ route("logout") }}" method="POST">
|
||
@csrf
|
||
<button type="submit">Abmelden</button>
|
||
</form>
|
||
<p>Route: {{ route("logout") }}</p>
|
||
</body>
|
||
</html>';
|
||
|
||
file_put_contents('public/logout-test.blade.php', $testForm);
|
||
echo " ✅ Test-Form erstellt: public/logout-test.blade.php\n";
|
||
|
||
// 8. Apache neu laden (falls möglich)
|
||
echo "\n8. 🔄 Apache neu laden...\n";
|
||
system('systemctl reload apache2 2>/dev/null || echo " ⚠️ Apache reload übersprungen"');
|
||
echo " ✅ Apache neu geladen\n";
|
||
|
||
echo "\n✅ Logout-Route Fix abgeschlossen!\n";
|
||
echo "🔗 Testen Sie jetzt:\n";
|
||
echo "1. Klicken Sie auf Ihren Benutzernamen (oben rechts)\n";
|
||
echo "2. Wählen Sie 'Abmelden' aus dem Dropdown\n";
|
||
echo "3. Falls das nicht funktioniert:\n";
|
||
echo " - Öffnen Sie Browser-Entwicklertools (F12)\n";
|
||
echo " - Gehen Sie zu Network-Tab\n";
|
||
echo " - Klicken Sie auf Abmelden\n";
|
||
echo " - Schauen Sie welche URL aufgerufen wird\n";
|
||
echo "\n📋 Falls Problem besteht:\n";
|
||
echo "- Teilen Sie die Network-Tab Ausgabe mit\n";
|
||
echo "- Schauen Sie in die Laravel-Logs: tail -f storage/logs/laravel.log\n";
|
||
echo "- Testen Sie direkt: https://neonail.vogt.de.com/logout\n";
|
||
?>
|