public function logoutUser() { if (@$_GET['logout'] == 1) if ($_SESSION['id'] != 0) { $_SESSION['id'] = 0; return $return = 'Wylogowano pomyślnie'; } } public function mainPage() { $return = $this -> pole; $return .= $this -> logoutUser(); if ($_SESSION['id'] != 0) { $return .= 'Użytkownik zalogowany to: <strong>'.$_SESSION['id'].'</strong>'; $return .= ' [<a href="?logout=1">Wyloguj</a>]'; } return $return.'<br />'; }
Dlaczego po ustawieniu $_SESSION['id'] = 0; return który znajduje się linijkę niżej nie jest wykonywany?
Chodzi mi o to, że później gdy wykonuję $return .= $this -> logoutUser(); przypisuje pustą wartość a nie tekst 'Wylogowano pomyślnie'.
Sprawa na pewno dotyczy sesji, bo sprawdzałem linijka po linijce usuwając i zostawiając różne rzeczy.
Warunek if ($_SESSION['id'] != 0) jest wykonywany na pewno, bo jak zostawie samego return'a to kod działa.
Dodatkowo jak chcę wyświetlić zawartość sesji (w dowolnym miejscu):
wyświetla mi 52;0;
52 - to id aktualnie zalogowanego użytkownika