[ Pobierz całość w formacie PDF ]
.Aby to zrobić wywołuje ona zdefiniowaną przez użytkownika funkcję auth_validatelogin().Na wydruku 8.11pokazujemy funkcję użytą w naszym przykładzie.Wydruk 8.11.Funkcja auth_validatelogin()function auth_validatelogin(){global $FirstName, $SurName, $Password;$aDB = new MySQLDB;$aSQL = "select * from MyAuth where ( FirstName = ";$aSQL.= "'$FirstName' ) and ( SurName = '$SurName' )";$aSQL.= "and ( Password = '$Password' )";$aDB->query( $aSQL );if ( $aDB->num_rows() > 0 ){return $FirstName;}else{return False;}}Funkcja odwołuje się do zmiennych globalnych $FirstName, $SurName i $Password, zdefiniowanych wformularzu logowania.Ich wartości są wyszukiwane w tabeli MySQL zawierającej trzy kolumny: FirstName,SurName i Password.Jeżeli odnaleziony zostanie rekord w tabeli opisujący bieżącego użytkownika, funkcjaauth_validatelogin() zwraca imię użytkownika (oczywiście użycie imienia jako identyfikatora użytkownika niebyło by zbyt dobrym pomysłem).Jeżeli nie ma pasującego rekordu, zwracana jest wartość False.Na wydruku 8.12 pokazana została typowa strona WWW wykorzystująca o autoryzacji klasę Auth.Wprzykładzie wyświetlane są cztery łącza do innych podobnych stron, wymagających autoryzacji.Ostatnia strona zlisty zapewnia wylogowanie użytkownika.Wydruk 8.12.Prosta strona wykorzystująca klasę Auth"MySqlSession","auth" => "Sample_Auth" ) );header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");header ("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");header ("Cache-Control: no-cache");header ("Pragma: no-cache");?>Przykład użycia klasy PHPLIB AuthStrona głównaPosiadasz uprawnienia do oglądania tej strony!Strona głównaStrona drugaStrona trzeciaWylogowaniePHP Kompendium wiedzy103Pierwsza strona dołącza prosty plik uwierzytelniania a następnie wywołuje funkcję PHPLIB page_open(),która uaktywnia sesję i mechanizm uwierzytelniania.Na końcu strony wywoływana jest funkcja page_close(),która zapisuje dane sesji.Zmienne uwierzytelniania są przesyłane pomiędzy stronami przy pomocy mechanizmusesji.Druga i trzecia strona jest funkcjonalnie identyczna z pierwszą.Strona Wylogowanie, zawiera na dole stronynastępujący kod wymuszający wylogowanie użytkownika:logout();page_close();?>Funkcja $auth->logout() może być wywołana w dowolnym momencie, a wymusza ona ponownewywołanie autoryzacji użytkownika na następnej stronie.Kilka wierszy w tym przykładzie nie jest związane z mechanizmem uwierzytelniania.Wywołania funkcjiheader() oraz znaczniki zapewniają, że przeglądarka nie będzie przechowywała strony w buforze.Kod tenjest dosyć ważny, ponieważ buforowane strony mogą mylić użytkowników, którzy nie będą wiedzieli, czy są jużzalogowani.Szczególne kłopoty sprawia Microsoft Internet Explorer, więc podjęto szczególne środkizapewniające prawidłowe działanie przykładów.Podczas testowania tego przykładu nie stwierdziliśmy żadnychproblemów w IE 5.5, wszystkich wersjach Netscape, WebTV i Opera.Jak wcześniej wspomnieliśmy, PHPLIB jest niezwykle elastycznym narzędziem, pozwalającym nastworzenie własnego mechanizmu uwierzytelniania.Można stworzyć skomplikowane lub proste schematyuwierzytelniania, w zależności od wymagań aplikacji.Zaletą tego podejścia jest możliwość tworzenia własnychformularzy logowania, porównywanie wpisanych danych z danymi przechowywanymi na dowolnym nośnikuinformacji, oraz możliwość łatwego wylogowania użytkownika.Umieszczenie w aplikacji systemu zabezpieczeńwydaje się bardziej efektywne, szczególnie dla początkujących użytkowników, którzy mogą być zaskoczenisystemowymi oknami dialogowymi.PodsumowanieW tym rozdziale zostało omówionych wiele aspektów uwierzytelniania użytkowników w aplikacjachPHP.Pierwsze kilka omówionych metod jest mocno zależne od platformy, ale są łatwe do implementacji [ Pobierz całość w formacie PDF ]