skanuj0522

skanuj0522



Rozdział 21. ♦ Tworzenie sklepu internetowego 543

W przypadku wystąpienia problemów z połączeniem lub też odrzucenia zapytania przez serwer funkcja kończy działanie, zwracając wartość DB_C0NNECTI0N_ERR0R. Jeśli jednak zapytanie zostanie wykonane, w celu dodatkowej weryfikacji jest sprawdzane (za pomocą funkcji mysq_num_rows), czy w wyniku został zwrócony dokładnie jeden wiersz. Jeśli liczba zwróconych wierszy jest różna od jeden, oznacza to, że procedura logowania musi się zakończyć niepowodzeniem i funkcja zwraca wartość BAD_EMAIL_ 0R_PASS. Jeśli jednak w wyniku zapytania został zwrócony dokładnie jeden wiersz, będzie on zawierał identyfikator logującego się użytkownika. Ten identyfikator jest zatem przypisywany zmiennej sesji o nazwie Userld, a funkcja checkEmail And Pass zwraca wartość LOGINJDK, oznaczającą, że procedura logowania zakończyła się sukcesem.

Funkcja login jest wywoływana ze skryptu głównego mainphp, kiedy otrzyma on parametr action o wartości l ogin. Jej zadaniem jest przeprowadzenie procedur weryfikacyjnych. Wykorzystuje ona w tym celu omówioną powyżej funkcję checkEmail AndPass. Kod zaczyna się od sprawdzenia, czy jest ustawiona zmienna sesji o nazwie Userld. Jeśli jest ustawiona, oznacza to, że użytkownik jest już załogowany, jest więc wyświetlany stosowny komunikat i funkcja kończy działanie. W przeciwnym wypadku jest sprawdzane, czy skrypt otrzymał za pomocą metody POST parametry emai 1 i hasl 0. Jeśli nie otrzymał, na ekranie jest wyświetlany formularz logowania; jeśli otrzymał, wartość tych parametrów jest wykorzystywana w wywołaniu funkcji checkEmail AndPass. Wynik działania wymienionej funkcji jest przypisywany zmiennej val i w zależności od wartości tej zmiennej do przeglądarki jest wysyłany odpowiedni komunikat. Jeżeli logowanie nie zakończyło się sukcesem (czyli wartością val było BAD_EMAIL_OR_PASS, BAD_DATA_LENGTH, DB_C0NNECTI0N_ERR0R lub inna wartość nie rozpoznawana przez funk-cję), oprócz komunikatu jest dodatkowo ponownie wyświetlany formularz logowania.

Zadaniem funkcji register jest zarejestrowanie nowego użytkownika; jest ona wywoływana w odpowiedzi na przekazanie do skryptu main parametru action o wartości register. W pierwszej kolejności jest sprawdzane, podobnie jak w przypadku funkcji logi n, czy jest ustawiona zmienna sesji o nazwie Userld. Jeśli jest, oznaczałoby to, że próbuje się zarejestrować już załogowany użytkownik. Jest więc wyświetlany komunikat informujący o tym fakcie i funkcja kończy działanie.

Następnie jest sprawdzane, czy do skryptu zostały przekazane wszystkie dane z pól formularza rejestracyjnego, czyli czy występują parametry: imię, nazwisko, email, hasło, ulica, nrdomu, nrmieszkania, kod, miasto, kraj. Jeżeli brakuje któregokolwiek z wymienionych parametrów, jest wyświetlany komunikat o niepoprawności danych. Jeśli wszystkie wymagane dane są obecne, następuje przypisanie otrzymanych wartości do zmiennych o nazwach zgodnych z nazwami parametrów. W dalszej kolejności jest sprawdzane, czy tak powstałe zmienne nie zawierają pustych ciągów znaków. Pusty ciąg znaków (czyli niewypełnione pole formularza) jest dopuszczalny jedynie w przypadku pola nrmieszkania.

Po wstępnej weryfikacji danych rozpoczynają się operacje wykonywane na bazie danych. Za pomocą funkcji makeOBConnection jest nawiązywane połączenie, a następnie wykonywane zapytanie SQL w postaci:

SELECT COUNT(*) FROM Klienci WHERE email='$ema1l'


Wyszukiwarka

Podobne podstrony:
skanuj0540 Rozdział 21. ♦ Tworzenie sklepu internetowego 561 W przypadku gdy koszyk nie jest pusty,

więcej podobnych podstron