Rozdział 14. ♦ Autoryzacje 391
z parametrem type ustawionym na button. Do zdarzenia onClick przycisku została przypisana procedura obsługi w postaci funkcji JavaScript o nazwie sprawdź1. Ta funkcja jest odpowiedzialna za wstępną weryfikację danych, nie ma bowiem sensu wysyłanie danych do serwera, jeśli są one niekompletne. Dlatego też sprawdzane jest:
♦ Czy liczba znaków wprowadzonych do pola nazwa zawiera się w przedziale 3-20?
♦ Czy liczba znaków wprowadzonych do pola hasło zawiera się w przedziale 6-40?
♦ Czy treść pól hasło oraz has1o2 jest identyczna?
♦ Czy wypełnione są pola imię, nazwisko i email?
Jeżeli dane są pełne, jest wywoływana funkcja submit obiektu formularza, która powoduje, że przeglądarka wysyła dane do serwera i skryptu określonego przez parametr action. Użyta w kodzie JavaScript zmienna f jest jedynie zmienną pomocniczą która umożliwia skrócenie zapisu. Można również stosować pełną konstrukcję odwołań do poszczególnych pól formularzy w postaci: document.forms.formularzl.nazwa_pola.vałue
Kod skryptu new_user.php, który na podstawie otrzymanych z formularza danych dokona rejestracji nowego użytkownika, został przedstawiony na listingu 14.9. Na początku zostało zdefiniowanych sześć stałych, określających kody powrotu funkcji rejestrującej. Zwiększy to przejrzystość skryptu. Wykorzystywać będziemy następujące stałe:
♦ OK — o wartości 0; określająca, że operacja dodania nowego użytkownika do bazy zakończyła się sukcesem;
♦ SERVER_ERR0R — o wartości 1; określająca, że wystąpił błąd serwera (np. nie można nawiązać połączenia z serwerem baz danych);
♦ BAD_USER_NAME_LENGTH — o wartości 2; określająca, że nazwa użytkownika ma nieprawidłową długość (mniej niż 3 lub więcej niż 20 znaków);
♦ BAD_USER_PASS_LENGTH — o wartości 3; określająca, że hasło użytkownika ma nieprawidłową długość (mniej niż 6 lub więcej niż 40 znaków);
♦ USER_NAME_ALREADY_EXI$TS — o wartości 4; określająca, że użytkownik o podanej nazwie już istnieje;
♦ EMPTY_FI ELDS — o wartości 5; określająca, że nie zostało wypełnione jedno z pól: imię, nazwisko lub emai ł.
Listing 14.9. Kod skryptu rejestracyjnego new_user.php <?php
defineCOK". 0): define(”SERVER ERR0R\ 1): defi ne C"BAD_USER_NAME_LENGTH ”. 2);
Alternatywną metodą jest zastosowanie przycisku typu submit i przejęcie obsługi zdarzenia onSubmit formularza.