W dobie dzisiejszej funkcjonalności stron internetowych niejednokrotnie zachodzi potrzeba zaimplementowania systemu logowania, aby oddzielić część dostępną dla zwykłego użytkownika od tej, do której nie powinien mieć bezpośredniego dostępu. Poniższy skrypt przedstawia najprostszą z możliwych implementację systemu logowania z użyciem sesji w PHP.
Oto plik login.php przy pomocy którego można się zalogować:
<? session_start(); // inicjujemy sesje if (isset($_POST['login']) && isset($_POST['pass'])) // jesli zostala podana nazwa i haslo { // wersja bez uzycia bazy MySQL if ($_POST['login']=='zenek' && $_POST['pass']=='qqryq') // i sie zgadzaja { $_SESSION['logged_in']=true; // ustawiamy zmienna logged_in na true session_write_close(); // zapisujemy dane sesji i ja zamykamy header("Location: user.php") // przekierowujemy do strony user.php } else echo "<b>Zła nazwa użytkownika / hasło!</b>"; //jesli sie nie zgadza wypisujemy komunikat i wyswietlamy formularz logowania } if (1==$_GET['logout']) // jesli zmienna logout bedzie rowna 1 niszczenie sesji czyli wylogowanie { session_destroy(); } ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Logowanie</title> </head> <body> <form action=login.php method=post> Nazwa użytkownika:<br> <input name=login><br> Hasło:<br> <input name=pass><br> <button type=submit>Loguj</button> </form> </body> </html>
Ponadto będzie potrzebny plik user.php, do którego przekierowuje powyższy skrypt w przypadku udanego logowania:
<? session_start(); if (!$_SESSION['logged_in']) header("Location: login.php"); // jesli nie zalogowany przekierowuje do powyższego skryptu ^^ else { echo "Witaj zalogowany użytkowniku! Możesz teraz się <a href=login.php?logout=1>wylogować</a> :)"; } ?>
Jeśli są jakieś wątpliwości i pytania zapraszam do komentowania
