33370 skanuj0414 (2)

33370 skanuj0414 (2)



Rozdział 16. ♦ Zarządzanie kontami użytkowników 431

Zapytanie jest wysyłane do serwera MySQL za pomocą funkcji mysql_query, a jego wynik pobierany przy użyciu funkcji mysql_fetch_row. W przypadku gdy w tabeli Users nie ma użytkownika spełniającego warunki zapytania, mysq1_fetch_row zwróci wartość false. Jeśli jednak użytkownik został odnaleziony, wynikiem działania mysql_fetch_row będzie tablica, w której w komórce o indeksie 0 znajdzie się identyfikator odnalezionego użytkownika. W tym miejscu upewniamy się też (ze względów bezpieczeństwa), że zapytanie zwróciło w wyniku jeden i tylko jeden wiersz (wywołanie funkcji mysql_ num_rows).

Odczytany identyfikator jest zapisywany w zmiennej, która jest wykorzystywana do stwierdzenia, jakie przywileje ma dany użytkownik. W tym celu jest wykonywane zapytanie w postaci:

SELECT Przywilejld FROM Uzytkownicy_Przywileje WHERE Userld=$userld

Wynikiem wykonania tego zapytania będzie tablica zawierająca wszystkie przywileje dane użytkownikowi o identyfikatorze userld. Przywileje te będziemy musieli uwzględniać we wszystkich skryptach składowych naszej witryny. Dlatego też jest tworzona zmienna sesji o nazwie Przywileje i jest jej przypisywana pusta tablica:

$_SESSION['Przywileje’] - arrayO:

Kluczami w tej tablicy będą nazwy przywilejów, dzięki czemu łatwo stwierdzić, które z nich dotyczą danego użytkownika. W pętli whi 1 e są więc odczytywane wyniki zapytania. Przywileje rozpoznawane są na podstawie ich identyfikatorów w instrukcji switch. W naszym przypadku jest tylko jeden przywilej — Administrator — zatem po stwierdzeniu, że w tablicy row znajduje się komórka zawierająca wartość 1, w tablicy Przywi 1 eje jest tworzony klucz Administrator i jest mu przypisywana wartość true: $_SESSION['Przywileje']['Administrator'] = true:

Na końcu kodu połączenie z serwerem MySQL jest zamykane za pomocą instrukcji mysql_close i funkcja kończy działanie zwracając wartość 0, oznaczającą, że logowanie zakończyło się sukcesem.

Niezbędne zmiany należy również wprowadzić do pliku main.php, w którym znajdzie się główna część serwisu. Jego treść została zaprezentowana na listingu 16.2. Zmiany w stosunku do wersji z rozdziału 14. znajdują się na końcu kodu. Została tam wprowadzona tabela HTML, w której komórkach wpisane zostały odnośniki do skryptu logout.php, pozwalającego na wylogowanie, oraz skryptu user adm.php realizującego funkcje administracyjne. Oczywiście odnośnik do skryptu user-adm.php jest wyświetlany jedynie wtedy, gdy załogowany użytkownik ma uprawniania administracyjne. Sprawdzane jest zatem, czy w tablicy Przywi 1 eje znajduje się klucz Admi ni strator. Jeśli tak, odnośnik jest wyświetlany; jeśli nie, odnośnik nie pojawi się na witrynie.

Listing 16.2. Kod skryptu main.php <?php

session_start():

i f(!i sSet($_SESSI0N['załogowany'])){

$_SESSI0N['komunikat'] - "Nie jesteś załogowany!":

incłudeOform.php');

exit():


Wyszukiwarka

Podobne podstrony:
skanuj0530 Rozdział 21. ♦ Tworzenie sklepu internetowego 551 Zapytanie jest wysyłane do serwera za p
skanuj0412 (3) Rozdział 16. ♦ Zarządzanie kontami użytkowników 429 Rozdział 16. ♦ Zarządzanie kontam
skanuj0420 Rozdział 16. ♦ Zarządzanie kontami użytkowników 437 Jeśli wartość argumentu id nie jest c
skanuj0422 Rozdział 16. ♦ Zarządzanie kontami użytkowników 439} else{ Saction - $_POST[ action ]: /*
skanuj0424 Rozdział 16. ♦ Zarządzanie kontami użytkowników 441} else{ Skomunikat - "Brak parame
skanuj0428 (2) Rozdział 16. ♦ Zarządzanie kontami użytkowników
29213 skanuj0426 (2) Rozdział 16. ♦ Zarządzanie kontami użytkowników 443 <£> - I_ ż ■ rfj y &n
48658 skanuj0418 (2) Rozdział 16. ♦ Zarządzanie kontami użytkowników 435 $query = "SELECT C0UNT
26903 skanuj0416 (2) Rozdział 16. ♦ Zarządzanie kontami użytkowników 433 <html> <head> &

więcej podobnych podstron