W tej poradzie przedstawiony zostanie sposób stworzenia prostego systemu do logowania. Wykorzystamy w tym celu PHP i bazę MySQL. Program będzie składał się z kilku części - formularza logowania, logowania i wylogowywania.
Stworzymy dwa pliki i jedną tabelę w MySQL.
index.php - w tym pliku będzie logowanie i wylogowywanie
main.php - do tego pliku nastąpi przeniesienie w przypadku prawidłowego logowania
Baza z tabelą "logowanie" - z trzema polami: id(auto_increment), uzytkownik(varchar, 50), haslo(varchar, 32).
* Pole "haslo" dla bezpieczeństwa zakodowane będzie funkcją md5(). (aby dowiedzieć się czym jest md5() można kliknąć w link w przykładzie)
W stworzonej dla potrzeb logowania tabeli w kolumnie "uzytkownik" dodamy rekord o nazwie "admin", a w kolumnie "haslo" zakodowany ciąg znaków funkcją md5() -
"81dc9bdb52d04dc20036dbd8313ed055".
* W trakcie testu w polu hasła należy wprowadzić hasło przed zakodowaniem w md5(), czyli 1234.
Index.php będzie składał się z trzech części:
Formularza z dwoma polami - "nazwa użytkownika", "hasło" oraz przyciskiem submit
Programu do autoryzacji, który przed zalogowaniem będzie sprawdzał poprawność wprowadzonych danych, a w przypadku powodzenia przenosił do strony main.php
Wylogowania
index.php
Kod: php
<?
// Na samej górze zadeklaruj sesję.
session_start();
// Sekcja wylogowywania, kasuje wszystkie zmienne sesyjne
session_destroy();
$message=""; // Wiadomość po wylogowaniu
// Sekcja logowania
$login=$_POST[‘login’];
if($login) {
// W momencie kliknięcia w przycisk formularza
$uzytkownik=$_POST[‘uzytkownik’];
$md5_haslo=md5($_POST[‘haslo’]);
// Koduje hasło funkcją md5().
// Połączenie z bazą.
$host="localhost"; // Nazwa hosta.
$db_user=""; // Nazwa użytkownika - MySQL.
$db_password=""; // Hasło do bazy.
$database="baza"; // Nazwa bazy.
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);
// Sprawdzenie nazwy użtkownika i hasła.
$rezultat=mysql_query("select * FROM logowanie WHERE uzytkownik=’$uzytkownik’ AND haslo=’$md5_haslo’");
if(@mysql_num_rows($rezultat)){
session_register("uzytkownik"); // Zapamiętuje zmienną sesji
header("location:main.php"); // Przekierowanie do strony main.php
exit;
}else {
$message="Nieprawidłowa nazwa użytkownika lub hasło";
}
} // Koniec sprawdzania autoryzacji.
?>
<head>
<title>Dokument</title>
</head>
<body>
<? echo $message; ?>
<form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">
<table>
<tr>
<td>Użytkownik: </td>
<td><input name="uzytkownik" type="text" id="uzytkownik" /></td>
</tr>
<tr>
<td>Hasło: </td>
<td><input name="haslo" type="password" id="haslo" /></td>
</tr>
</table>
<input name="login" type="submit" id="login" value="login" />
</form>
</body>
</html>
Plik main.php zostaje wywołany w momencie, gdy autoryzacja się uda. W przeciwnym wypadku akcja przekieruje do pliku index.php.
Kod: php
<?
session_start(); // Na samej górze zadeklaruj sesję.
if(!session_is_registered("uzytkownik")){ // Sprawdza zmienną sesji.
header("location:index.php"); // Przekierowanie do index.php
}
?>
<head>
<title>Dokument</title>
</head>
<body>
<p>Witaj <? echo $_SESSION[‘uzytkownik’]; ?>! Jesteś zalogowany.</p>
<p><a href="index.php">Wyloguj</a></p>
</body>
</html>
Opracowanie: Adam Suchowski