Script erstellt
This commit is contained in:
194
fix-logout-route.php
Normal file
194
fix-logout-route.php
Normal file
@@ -0,0 +1,194 @@
|
||||
<?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";
|
||||
?>
|
||||
Reference in New Issue
Block a user