$line) { if (strpos($line, 'logout') !== false) { $logoutLines[] = ($lineNumber + 1) . ": " . trim($line); } } if (!empty($logoutLines)) { echo " ✅ Logout-bezogene Zeilen gefunden:\n"; foreach ($logoutLines as $line) { echo " 📋 $line\n"; } } else { echo " ❌ Keine Logout-bezogenen Zeilen gefunden\n"; } } else { echo " ❌ Layout-Datei nicht gefunden\n"; } // 2. Routes prüfen echo "\n2. 🛣️ Routes 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"; } } else { echo " ❌ Routes-Datei nicht gefunden\n"; } // 3. LoginController prüfen echo "\n3. 🔐 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"; } // 4. Einfache Logout-Route erstellen echo "\n4. 🛣️ Einfache Logout-Route erstellen...\n"; $routesPath = 'routes/web.php'; if (file_exists($routesPath)) { $content = file_get_contents($routesPath); // Prüfe ob GET Logout-Route existiert if (strpos($content, "Route::get('/logout', [LoginController::class, 'logout'])->name('logout');") === false) { // Füge GET Logout-Route hinzu $newRoute = "\n// Einfache Logout-Route für Debugging\nRoute::get('/logout', [App\\Http\\Controllers\\Auth\\LoginController::class, 'logout'])->name('logout');\n"; // Füge am Ende der Datei hinzu $content .= $newRoute; file_put_contents($routesPath, $content); echo " ✅ GET Logout-Route hinzugefügt\n"; } else { echo " ℹ️ GET Logout-Route bereits vorhanden\n"; } } else { echo " ❌ Routes-Datei nicht gefunden\n"; } // 5. LoginController erweitern echo "\n5. 🔐 LoginController erweitern...\n"; $controllerPath = 'app/Http/Controllers/Auth/LoginController.php'; if (file_exists($controllerPath)) { $content = file_get_contents($controllerPath); // Prüfe ob Logout-Methode GET und POST unterstützt if (strpos($content, 'public function logout(Request $request)') !== false) { echo " ✅ Logout-Methode unterstützt bereits GET und POST\n"; } else { echo " ℹ️ Logout-Methode prüfen...\n"; } // Zeige aktuelle 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 " 📋 Aktuelle Logout-Methode:\n"; foreach ($methodLines as $line) { echo " $line\n"; } } else { echo " ❌ LoginController nicht gefunden\n"; } // 6. Cache leeren echo "\n6. 🧹 Cache 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"'); echo " ✅ Cache geleert\n"; // 7. Test-Logout-Links erstellen echo "\n7. 🧪 Test-Logout-Links erstellen...\n"; $testLinks = [ 'https://neonail.vogt.de.com/logout (GET)', 'https://neonail.vogt.de.com/logout (POST)', 'https://neonail.vogt.de.com/', 'https://neonail.vogt.de.com/login' ]; foreach ($testLinks as $link) { echo " 🔗 $link\n"; } // 8. Debug-Anleitung echo "\n8. 🔍 Debug-Anleitung...\n"; echo " 📋 1. Öffnen Sie: https://neonail.vogt.de.com\n"; echo " 📋 2. Melden Sie sich an\n"; echo " 📋 3. Öffnen Sie Browser-Entwicklertools (F12)\n"; echo " 📋 4. Gehen Sie zu Console-Tab\n"; echo " 📋 5. Klicken Sie auf Ihren Benutzernamen\n"; echo " 📋 6. Wählen Sie 'Abmelden'\n"; echo " 📋 7. Schauen Sie nach JavaScript-Fehlern\n"; echo " 📋 8. Gehen Sie zu Network-Tab\n"; echo " 📋 9. Schauen Sie welche URL aufgerufen wird\n"; echo " 📋 10. Testen Sie direkt: https://neonail.vogt.de.com/logout\n"; echo "\n✅ Detailliertes Logout-Debug abgeschlossen!\n"; echo "🔗 Testen Sie jetzt:\n"; echo "1. Das normale Logout über das Dropdown\n"; echo "2. Den direkten Link: https://neonail.vogt.de.com/logout\n"; echo "3. Teilen Sie alle Fehlermeldungen mit\n"; ?>