jak w temacie, mam mały problem z działaniem sesji.
index.php
<?php function czyIstnieje($login, $haslo) { foreach ($users as $id => $dane) { if ($dane['login'] == $login && $dane['password'] == $haslo) { return $id; } } return false; } { $_SESSION['user'] = 0; } else { if($_SESSION['user'] > 0) { // Ktos jest zalogowany //echo 'Witaj, '.$uzytkownicy[$_SESSION['user']]['login'].' na naszej stronie!'; } else { //Niezalogowany if ($_SERVER['REQUEST_METHOD'] == 'POST') { if (($id = czyIstnieje($_POST['login'], $_POST['haslo'])) !== false) { $_SESSION['user'] = $id; } else { } } else { echo '<form method="post" action="session.php"> Zaloguj sie: <input type="text" name="login"/> <input type="password" name="haslo"/> <input type="submit" value="OK"/></form>'; } } } ?>
panel.php
<?php //session_start(); echo 'Witaj w panelu<br /> <a href="logout.php">Wyloguj</a>'; ?>
logout.php
<?php ?>
Wiem, że panel to bardzo prosta rzecz tutaj, bo wystarczy wejść na www.xxx.pl/panel.php i już, ale nie o to tutaj chodzi, chociaż możecie napisać o jakichś zabezpieczeniach z miłą chęcią poczytam, ale teraz do tematu:
Wchodzą w index.php widzę początkowo formularz logowania, który sprawdza czy podany user istnieje, jeśli tak i hasło się zgadza, to następuje przekierowanie do panel.php, gdzie mam przycisk WYLOGUJ, w logout.php zrobiłem usunięcie danych sesyjnych i sesji i na koniec przekierowanie z powrotem do index.php (u mnie to jest session.php), no i tu zaczyna się jakiś dziwny problem, sesji nie ma już chyba po session_unset i destroy, ale jeśli nastąpi mi przekierowania widzę tylko pustą stronę, dopiero po jej odświeżeniu wszystko wraca do normy i znowu mogę zobaczyć formularz logowania.
Druga sprawa, już napiszę przy okazji, jak w trakcie logowania zrobić przycisk PAMIĘTAJ MNIE, czytałem o tym i są tam owszem wykorzystane sesje, ale po co ciasteczka ?