$lifetime, 'path' => '/', 'samesite' => 'Lax' ]); session_start(); include('db.php'); // Funktion zum Löschen von Cookies und Weiterleiten zum Login function redirect_to_login() { setcookie('auth_token', '', time() - 3600, "/"); setcookie('user_id', '', time() - 3600, "/"); $_SESSION = array(); session_destroy(); header("Location: ./login.php"); exit; } // 1. Prüfen, ob bereits eine Session existiert if (isset($_SESSION['user_id'])) { return; // Benutzer ist bereits per Session angemeldet. } // 2. Ansonsten: Prüfen, ob Cookies vorhanden sind if (isset($_COOKIE['auth_token']) && isset($_COOKIE['user_id'])) { $cookie_token = $_COOKIE['auth_token']; $cookie_user_id = $_COOKIE['user_id']; // Datenbank-Abfrage, um den Token und die vollständigen Benutzerdaten zu erhalten $stmt = mysqli_prepare($conn, "SELECT id, login_token, username, email, role FROM users WHERE id = ?"); if ($stmt) { mysqli_stmt_bind_param($stmt, "i", $cookie_user_id); mysqli_stmt_execute($stmt); $result = mysqli_stmt_get_result($stmt); $user = mysqli_fetch_assoc($result); mysqli_stmt_close($stmt); // 3. Tokens vergleichen if ($user && $cookie_token === $user['login_token']) { // Tokens stimmen überein, Benutzer per Cookie authentifizieren // Jetzt die Benutzerdaten in die Session laden $_SESSION['user_id'] = $user['id']; $_SESSION['username'] = $user['username']; $_SESSION['email'] = $user['email']; $_SESSION['role'] = $user['role']; return; // Authentifizierung per Cookie erfolgreich, Skript fortsetzen } } } // Wenn weder Session noch gültiger Cookie gefunden wurde redirect_to_login();