Rozdział 14. ♦ Autoryzacje 383
else if($vai — 1){
S_SESSI0N['komunikat'] » "Błąd serwera. Zalogowanie nie było możliwe.''; i nclude('form.php'):
else if($val — 2){
$_SESSI0N['komunikat'] = "Nieprawidłowa nazwa lub hasło użytkownika."; includeC form. php'):
ł
else{
$_SESSION['komunikat'] = "Błąd serwera. Zalogowanie nie było możliwe."; includeC form. php'):
Kod skryptu rozpoczyna się od wywołania funkcji session_start, służącej do inicjowania oraz kontynuowania sesji. Następnie jest sprawdzane, czy została ustawiona zmienna zal ogowany. Jeśli tak, oznacza to, że użytkownik jest załogowany, a zatem następuje przekierowanie do części głównej zapisanej w pliku main.php. Do przekierowa-nia jest wykorzystywana funkcja Location wysyłająca do przeglądarki odpowiedni nagłówek protokołu http.
Jeśli jednak zmienna sesji o nazwie załogowany nie jest ustawiona, oznacza to, że użytkownik nie jest załogowany. Sprawdzane jest zatem, czy są ustawione indeksy user i hasło w tablicy $_P0ST, a tym samym czy do skryptu zostały przekazane parametry o tych nazwach. Jeśli nie są, za pomocą instrukcji include jest wczytywana treść pliku form.php zawierająca formularz umożliwiający wprowadzenie danych. Jeśli jednak oba parametry zostały przekazane, są wykorzystywane w wywołaniu funkcji checkPass wykonującej weryfikację danych.
Funkcja checkPass działa w sposób analogiczny do przedstawionego w poprzednim przykładzie. Wykonuje połączenie z serwerem baz danych i sprawdza, czy istnieje dokładnie jeden rekord odpowiadający danym przekazanym jej w postaci argumentów. W zależności od wyniku weryfikacji zwraca jedną z poniższych wartości:
♦ 0 — dane są prawidłowe, użytkownik może zostać załogowany;
♦ 1 — wystąpił błąd serwera, np. problem z połączeniem z serwerem baz danych;
♦ 2 — podane zostały nieprawidłowe dane, czyli błędna nazwa lub hasło.
Wynik działania funkcji jest następnie przypisywany zmiennej val. W zależności od wartości tej zmiennej, w złożonej instrukcji warunkowej if.. .else.. .if są wykonywane dalsze czynności:
1. Jeśli val ma wartość 0, jest ustawiana zmienna sesji załogowany, jest jej przypisywana nazwa załogowanego użytkownika oraz następuje przekierowanie do głównej części serwisu (plik main.php').
2. Jeśli val ma wartość 1, jest ustawiana zmienna komunikat, której jest przypisywany ciąg znaków informujący o błędzie serwera, oraz następuje wczytanie formularza logowania (plik form.php).