neonail-database/debug-logout.php
2025-08-10 18:09:07 +02:00

219 lines
7.1 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
// Debug: Logout-Problem systematisch debuggen
echo "🚪 Debug: Logout-Problem systematisch debuggen\n";
echo "=============================================\n\n";
// 1. Aktuelles Layout prüfen
echo "1. 🎨 Aktuelles Layout prüfen...\n";
$layoutPath = 'resources/views/layouts/app.blade.php';
if (file_exists($layoutPath)) {
$content = file_get_contents($layoutPath);
// Suche nach Logout-Form
if (strpos($content, 'logout-form') !== false) {
echo " ✅ Logout-Form gefunden\n";
// Zeige Logout-Form Details
$lines = explode("\n", $content);
foreach ($lines as $lineNumber => $line) {
if (strpos($line, 'logout') !== false) {
echo " 📋 Zeile " . ($lineNumber + 1) . ": " . trim($line) . "\n";
}
}
} else {
echo " ❌ Logout-Form nicht gefunden\n";
}
// Prüfe Route-Verwendung
if (strpos($content, '{{ route("logout") }}') !== false) {
echo " ✅ Laravel Route wird verwendet\n";
} elseif (strpos($content, 'https://neonail.vogt.de.com/logout') !== false) {
echo " ❌ Hardcodierte URL wird verwendet\n";
} else {
echo " ❓ Unbekannte Logout-Konfiguration\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, 'logout') !== false) {
echo " ✅ Logout-Methode gefunden\n";
// Zeige Logout-Methode
$lines = explode("\n", $content);
foreach ($lines as $lineNumber => $line) {
if (strpos($line, 'logout') !== false) {
echo " 📋 Zeile " . ($lineNumber + 1) . ": " . trim($line) . "\n";
}
}
} else {
echo " ❌ Logout-Methode nicht gefunden\n";
}
} else {
echo " ❌ LoginController nicht gefunden\n";
}
// 4. Laravel Route-Liste generieren
echo "\n4. 🛣️ Laravel Route-Liste 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";
}
// 5. Cache-Status prüfen
echo "\n5. 🧹 Cache-Status prüfen...\n";
$cacheFiles = [
'bootstrap/cache/packages.php' => 'Packages Cache',
'bootstrap/cache/services.php' => 'Services Cache',
'bootstrap/cache/routes.php' => 'Routes Cache',
'bootstrap/cache/config.php' => 'Config Cache'
];
foreach ($cacheFiles as $cacheFile => $description) {
if (file_exists($cacheFile)) {
echo " ⚠️ Cache vorhanden: $description\n";
} else {
echo " ✅ Cache geleert: $description\n";
}
}
// 6. Test-Logout-URLs generieren
echo "\n6. 🔗 Test-Logout-URLs:\n";
$testUrls = [
'https://neonail.vogt.de.com/logout',
'https://neonail.vogt.de.com/logout (POST)',
'https://neonail.vogt.de.com/logout (GET)',
'https://neonail.vogt.de.com/',
'https://neonail.vogt.de.com/login'
];
foreach ($testUrls as $url) {
echo " 🔗 $url\n";
}
// 7. Layout korrigieren (falls nötig)
echo "\n7. 🔧 Layout korrigieren...\n";
$layoutPath = 'resources/views/layouts/app.blade.php';
if (file_exists($layoutPath)) {
$content = file_get_contents($layoutPath);
// Ersetze alle hardcodierten Logout-URLs
$replacements = [
'action="https://neonail.vogt.de.com/logout"' => 'action="{{ route("logout") }}"',
'href="https://neonail.vogt.de.com/logout"' => 'href="{{ route("logout") }}"',
'action="http://neonail.vogt.de.com/logout"' => 'action="{{ route("logout") }}"',
'href="http://neonail.vogt.de.com/logout"' => 'href="{{ route("logout") }}"'
];
$modified = false;
foreach ($replacements as $old => $new) {
if (strpos($content, $old) !== false) {
$content = str_replace($old, $new, $content);
$modified = true;
echo " ✅ Ersetzt: $old$new\n";
}
}
if ($modified) {
file_put_contents($layoutPath, $content);
echo " ✅ Layout aktualisiert\n";
} else {
echo " Keine Änderungen nötig\n";
}
} else {
echo " ❌ Layout-Datei nicht gefunden\n";
}
// 8. Cache leeren
echo "\n8. 🧹 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";
echo "\n✅ Logout-Debug 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, versuchen Sie direkt:\n";
echo " - https://neonail.vogt.de.com/logout\n";
echo "\n📋 Falls Problem besteht:\n";
echo "- Prüfen Sie Browser-Entwicklertools (F12) für Fehler\n";
echo "- Schauen Sie in die Laravel-Logs: tail -f storage/logs/laravel.log\n";
echo "- Teilen Sie die Debug-Ausgabe mit\n";
?>