56459 skanuj0366 (2)

56459 skanuj0366 (2)



Rozdział 14. ♦ Autoryzacje 381

W jego wyniku zostanie zwrócony jeden wiersz, zawierający wartość określającą liczbę wierszy spełniających warunek zadanego zapytania. Ten wiersz jest pobierany za pomocą fiinkcji mysq1_fetch_row, której wynik jest przypisany zmiennej row. Tym samym w zmiennej row znajdzie się tablica zawierająca jedną komórkę z wynikiem zapytania. Logowanie będzie poprawne tylko wtedy, gdy wynikiem zapytania była wartość 1, czyli został odnaleziony dokładnie jeden wiersz spełniający warunek zapytania. Jeśli zatem row[0] ma wartość 1, pomocniczej zmiennej result jest przypisywana wartość (oznaczająca, że weryfikacja zakończyła się sukcesem). Jeśli natomiast row[0] ma wartość różną od 1, zmiennej result jest przypisywana wartość 2 (oznaczająca, że weryfikacja zakończyła się niepowodzeniem).

Na zakończenie połączenie z bazą jest zamykane za pomocą funkcji mysql_close, a wartość zmiennej result jest zwracana jako wartość działania funkcji, za pomocą instrukcji return. W kodzie funkcji zostały również umieszczone w komentarzach instrukcje echo; w' razie problemów z działaniem skryptu pozwolą one łatwo zorientować się (oczywiście po odkomentowaniu), w którym miejscu występuje problem.

Uwierzytelnianie z wykorzystaniem sesji

Skoro już wiemy, w jaki sposób użyć bazy danych do uwierzytelniania użytkowników, możemy napisać bardziej skompilowany system autoryzacji, wykorzystujący mechanizm sesji. Będzie to odpowiednik zestawu skryptów, które utworzyliśmy w rozdziale 8., gdzie dane były przechowywane w pliku tekstowym. Napiszemy zatem cztery skrypty:

♦    login.php — wykonujący weryfikację danych wprowadzonych przez użytkownika,

♦    form.php — wyświetlający formularz logowania,

♦    main.php — zawierający główną część serwisu, dostępną jedynie dla zarejestrowanych użytkowników,

♦    logout.php — pozwalający na wylogowanie użytkownika.

Treść skryptu login.php została przedstawiona na listingu 14.3.

Listing 14.3. Treść ski-ypiu login.php

<?PHP

function checkPass($user. Spass)

{

/♦sprawdzenie długości przekazanych ciągów*/

SuserNameLength = strlen(Suser);

SuserPassLength - strlen(Spass);

if(SuserNameLength < 3 11 SuserNameLength > 20 11 SuserPassLength < 6 j j SuserPassLength > 40){ return 2:

}


Wyszukiwarka

Podobne podstrony:
skanuj0368 (2) Rozdział 14. ♦ Autoryzacje 383 else if($vai — 1){ S_SESSI0N[ komunikat ] » "Błąd
skanuj0374 (3) Rozdział 14. ♦ Autoryzacje 389 Listing 14.8. Kod formularza umożliwiającego wprowadze
skanuj0376 (3) Rozdział 14. ♦ Autoryzacje 391 z parametrem type ustawionym na button. Do zdarzenia o
skanuj0378 (2) Rozdział 14. ♦ Autoryzacje $query - "INSERT INTO Users VAIUESC: $query .= "
13704 skanuj0364 (2) Rozdział 14. ♦ Autoryzacje 379 Rozdział 14. ♦ Autoryzacje 379 Listing 14.2. Skr
76696 skanuj0381 (2) Rozdział 14. ♦ Autoryzacje 395 Kod funkcji rejestruj rozpoczyna się od sprawdze
62981 skanuj0372 (2) Rozdział 14. ♦ Autoryzacje 387 ♦    nazwa użytkownika (konta), ♦
63897 skanuj0370 (2) Rozdział 14. ♦ Autoryzacje 385 zmienna załogowany jest ustawiona, do przeglądar

więcej podobnych podstron