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 :)

Dodano 07/07/2009 o 19:03
Kategoria: HTML, PHP
Tagi: , , ,