450 PHP i MySQL dla każdego
@mysql_close(); return 0:
}
session_start():
i f(i sSet($_SESSI0N[1 załogowany'])){ headerCLocation: main.php"):
}
else if(!isSet($_POST["haslo"]) || !1sSet($_P0ST[”user"])){
$_SESSI0N['komunikat'] = "Wprowadź nazwę i hasło użytkownika:": includeOform.php');
else{
$val = checkPass($_POST["user"]. $ P0ST["haslo"]): if($val — 0){
$_SESSI0N[’zalogowany’] - $_P0ST["user"]: headerCLocation: main.php''):
else if($val — 1){
t_SESSI0N['komunikat'] = "Błąd serwera. Zalogowanie nie było możliwe.'': includeCform.php'):
else if($val -- 2){
$_SESSI0N['komunikat'] = "Nieprawidłowa nazwa lub hasło użytkownika.'1: includeCform.php’);
el se{
$_SESSI0N['komunikat'] = "Błąd serwera. Zalogowanie nie było możliwe.'': includeCform.php');
Zasada działania skryptu logowania pozostaje taka sama jak w rozdziałach 14. i 15. Wprowadzone przez użytkownika do formularza logowania nazwa i hasło Są weryfikowane przez funkcję checkPass. Funkcja ta otrzymuje dane w postaci argumentów: user, określającego nazwę użytkownika, oraz pass, określającego hasło użytkownika, i wykonuje zapytanie SQL w postaci:
SELECT Id FROM Users WHERE Nazwa-'$user' AND Haslo='$pass'
Jeśli tak określone zapytanie zwróci w wyniku dokładnie jeden wiersz, oznacza to, że dane były prawidłowe i użytkownik może zostać załogowany. Odczytany identyfikator jest więc przypisywany zmiennej user Id, jest również tworzona zmienna sesji o nazwie Userld i jej również jest przypisywany odczytany identyfikator użytkownika.
Następnie jest wykonywane zapytanie pobierające z tablicy Uzytkownicy_Przywileje przywileje przysługujące logującemu się użytkownikowi. Ma ono postać:
SELECT Przywilejld FROM Uzytkownicy_Przywileje WHERE llserld-Śuserld
Wyniki tego zapytania są przetwarzane w pętli whi 1 e, a rozpoznane przywileje są zapisywane w zmiennej sesji o nazwie Przywileje. Ta zmienna to, tak jak w przypadku przykładu z rozdziału 15., tablica przywilejów, w której kluczami są nazwy przywilejów.