428 PHP i MySQL dla każdego
♦ Userld — typu INTEGER, będąca kluczem obcym, określająca identyfikator użytkownika;
♦ Przywi 1 ej Id — typu INTEGER, będąca kluczem obcym, określająca identyfikator przywileju;
Obie kolumny będą tworzyły klucz podstawowy tabeli. Instrukcja CREATE TABLE zyska postać:
CREATE TABLE Użytkownicy Przywileje(
Userld INTEGER NOT NULL.
Przywilejld INTEGER NOT NULL,
PRIMARY KEY(UserId. Przywilejld)
Dodatkowo możemy wprowadzić do bazy więzy integralności ze względu na klucze obce. Czynność tę wykonamy za pomocą instrukcji:
ALTER TABLE Uzytkownicy_Przywileje AOD CONSTRAINT UzytkownicyFK FOREIGN KEY (Userld) REFERENCES Users(Id)
ALTER TABLE Użytkownicy Przywileje ADO CONSTRAINT PrzywilejeFK FOREIGN KEY (Przywilejld) REFERENCES Przywileje(Id)
Jeśli teraz chcielibyśmy nadać użytkownikowi o identyfikatorze 3 przywilej administratora (o identyfikatorze 1), musielibyśmy wprowadzić do tabeli Uzytkowni cy_Przywi 1 eje parę liczb 3. 1. Trzeba by więc wykonać instrukcję SQL w postaci:
INSERT INTO Uzytkownicy_Przywileje VALUES(3. 1)
Nasz system będzie działał w taki sposób, że po zalogowaniu na witrynie, o ile użytkownik będzie miał uprawnienia administracyjne (czyli przywilej o nazwie Admi ni -strator), na stronie głównej pojawi się odnośnik do skryptu zarządzającego kontami użytkowników (rysunek 16.1). Jak już wspomniano, system logowania będzie oparty na kodach powstałych w rozdziale 14. Będziemy jednak musieli dokonać niezbędnych modyfikacji, tak aby wprowadzić nową funkcjonalność. Skrypt logowania został przedstawiony na listingu 16.1. Zmianie uległa treść funkcji checkPass, która teraz dodatkowo musi sprawdzać, jakie przywileje przysługują logującemu się użytkownikowi.
0ik Edycja ffijdok Przejdź Zakia*i £jarz<;d2ia Pomoc
l\j3 ’ O ' £§7 '■'Jł 0) | U httpj/localhost/main.php ^ Rozpocznij przygód... i„j Aktualności U index.php
Jesteś załogowany jako: Administrator
Pamiętaj o wylogowaniu przed opuszczeniem strony!
Rysunek 16.1.
Po zalogowaniu użytkownika posiadającego przywilej administratora na stronie pojawił się dodatkowy odnośnik
Wylosowanie Zarządzanie kontami