Professional Documents
Culture Documents
z wykorzystaniem Ajaksa.
Projekty
Autor: Larry Ullman
Tumaczenie: Radosaw Meryk
ISBN: 978-83-246-1553-7
Tytu oryginau: Building a Web Site
with Ajax: Visual QuickProject Guide
Format: 170x230, stron: 168
Stwrz interaktywny serwis WWW, korzystajcy z technologii AJAX!
Jakich narzdzi potrzebujesz, by stworzy stron WWW?
Jak wzbogaci witryn dziki technologii AJAX?
Jak obsugiwa dane w formacie XML?
AJAX jest skrtem od Asynchronous JavaScript and XML. Technologia ta staa si trzonem
rewolucji Web 2.0. Dzi trudno sobie wyobrazi nowoczesn aplikacj WWW, ktra
nie korzystaaby z dobrodziejstw tego rozwizania. Nie bez powodu! Intuicyjny interfejs
uytkownika, wysoki poziom interaktywnoci, wygoda oraz dynamika serwisw
korzystajcych z tego rozwizania gwarantuj, e jeszcze dugo bdzie ono na topie
technik tworzenia stron WWW.
Dziki ksice Tworzenie stron WWW z wykorzystaniem AJAKSA. Projekty poznasz proces
tworzenia strony WWW, korzystajcej z tej technologii. Autor krok po kroku wyjania zasad
dziaania oraz sposb tworzenia serwisu i kadego z elementw projektowanych dla niego
aplikacji. Pierwsze zadanie, ktre stawia on przed Tob, to zbudowanie bazy danych. Pniej
nauczysz si implementowa funkcjonalnoci takie, jak przegldanie danych, dodawanie
nowych wpisw czy te wyszukiwanie informacji. Po przeczytaniu niniejszej ksiki nie
bdzie dla Ciebie problemem poczenie na przykad technologii HTML, JavaScript, CSS,
XML i PHP w celu uzyskania dynamicznego, interaktywnego oraz efektownego serwisu
WWW. Zobaczysz take, jak poszczeglne funkcjonalnoci aplikacji WWW dziaaj
bez wykorzystania technologii AJAX, a nastpnie jak zyskuj na atrakcyjnoci po dodaniu
tej technologii. Teraz wszystko zaley tylko od Twojej wyobrani!
Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
spis treci
wprowadzenie
jak dziaa ajax?
czego mona nauczy si z tej ksiki?
jak zorganizowana jest ta ksika?
potrzebne narzdzia
9
10
11
12
14
witryna internetowa
towarzyszca ksice
nastpny krok
19
20
21
23
2. przegldanie pracownikw
co bdziemy robi?
utworzenie strony HTML
utworzenie formularza HTML
utworzenie skryptu PHP
wywietlenie listy pracownikw
zgaszanie bdw
25
27
29
30
31
32
33
34
35
17
18
46
47
48
49
50
52
36
37
38
39
40
45
53
55
56
57
58
59
5
Ajax_00.indd 5
2008-09-12 08:54:06
spis treci
4. dodawanie rekordw
co bdziemy robi?
utworzenie strony HTML
utworzenie formularza
utworzenie elementw formularza
rozpoczcie strony PHP
63
64
65
66
67
69
80
82
83
84
85
86
87
88
79
6. wyszukiwanie
co bdziemy robi?
utworzenie strony HTML
utworzenie formularza
rozpoczcie strony PHP
zapytanie do bazy danych
6
Ajax_00.indd 6
70
73
74
75
77
92
93
95
96
97
99
100
102
107
108
109
111
112
113
wywietlenie wynikw
wywietlenie komunikatw o bdach
testowanie wersji niajaksowej
informacje dodatkowe
114
115
116
117
spis treci
2008-09-12 08:54:06
120
122
123
125
126
127
128
129
130
131
119
przygotowanie strony
obsuga danych w formacie XML
wywietlenie wynikw
obsuga nazwisk
obsuga wydziaw
obsuga adresw e-mail
wywietlenie komunikatu
o braku wynikw
dokoczenie funkcji
testowanie warstwy Ajaksa
informacje dodatkowe
skorowidz
spis treci
Ajax_00.indd 7
132
133
134
136
137
139
141
142
143
144
149
150
151
152
154
156
157
zasoby w internecie
zestawy Framework
dla jzyka JavaScript
biblioteki PHP-Ajax
debugowanie kodu JavaScript
informacje dodatkowe
159
160
161
162
166
169
7
2008-09-12 08:54:06
dodawanie
rekordw
63
Ajax_04.indd 63
2008-09-08 17:41:19
co bdziemy robi?
1 Najpierw, na stronach 65 68,
utworzymy stron HTML z formularzem.
W formularzu s elementy reprezentujce wszystkie dane dotyczce pracownikw zapisane w bazie
danych.
2 Na stronach 69 74 napiszemy
skrypt PHP, ktry obsuguje formularz HTML. Skrypt dokonuje
walidacji danych formularza,
a nastpnie zwraca wyniki.
W przypadku nieprawidowego
wypenienia dowolnego pola skrypt
PHP wywietla komunikat o bdzie.
3 Na koniec, tak jak wczeniej,
przetestujemy napisane elementy aplikacji, aby uzyska pewno,
e wszystko dziaa poprawnie.
64
Ajax_04.indd 64
dodawanie rekordw
2008-09-08 17:41:19
dodawanie rekordw
Ajax_04.indd 65
65
2008-09-08 17:41:20
utworzenie formularza
1 Zdefiniuj komunikat informujcy
o tym, do czego suy formularz i jak naley
z niego korzysta.
...
<body>
<p>Ten formularz suy do wprowadzania danych dotyczcych pracownika
(wszystkie pola s obowizkowe):</p>
<form action="dodaj_pracownika.php" method="post" id="prac_form">
</form>
</body>
...
66
Ajax_04.indd 66
dodawanie rekordw
2008-09-08 17:41:20
...
<form action="dodaj_pracownika.php" method="post" id="prac_form">
<p><label class="tytul" id="imie_etykieta">Imi<input type="text"
id="imie" name="imie"/></label> </p>
<p><label class="tytul" id="nazwisko_etykieta">Nazwisko<input
type="text" id="nazwisko" name="nazwisko" /></label> </p>
<p><label class="tytul" id="email_etykieta">Adres e-mail<input
type="text" id="email" name="email" /></label>
</p>
dodawanie rekordw
Ajax_04.indd 67
67
2008-09-08 17:41:20
68
Ajax_04.indd 68
dodawanie rekordw
2008-09-08 17:41:20
dodawanie rekordw
Ajax_04.indd 69
69
2008-09-08 17:41:20
...
require_once('mysql.inc.php');
$bledy = array();
if (!empty($_POST['imie'])) {
$fn = mysql_real_escape_string($_POST['imie'], $dbc);
} else {
$bledy[] = 'imi';
}
if (!empty($_POST['nazwisko'])) {
$ln = mysql_real_escape_string($_POST['nazwisko'], $dbc);
} else {
$bledy[] = 'nazwisko';
}
70
Ajax_04.indd 70
dodawanie rekordw
2008-09-08 17:41:20
if (!empty($_POST['email'])) {
$e = mysql_real_escape_string($_POST['email'],$dbc);
} else {
$bledy[] = 'adres email';
}
dodawanie rekordw
Ajax_04.indd 71
71
2008-09-08 17:41:20
72
Ajax_04.indd 72
dodawanie rekordw
2008-09-08 17:41:20
dodawanie rekordw
Ajax_04.indd 73
73
2008-09-08 17:41:20
2 Druga klauzula else uruchamia si, jeli dane nie przejd pomylnie przez wszystkie
testy walidacji.
3 Poniewa bdy s zapisane w tablicy, najatwiejszym
sposobem uzyskania dostpu
do wszystkich bdw jest przetwarzanie ich w ptli.
74
Ajax_04.indd 74
dodawanie rekordw
2008-09-08 17:41:20
dodawanie rekordw
Ajax_04.indd 75
75
2008-09-08 17:41:20
4 Powr do formularza,
wypenij go cakowicie i kliknij
Dodaj.
76
Ajax_04.indd 76
dodawanie rekordw
2008-09-08 17:41:20
informacje dodatkowe
utworzenie formularza str. 66
Metody POST, oglnie rzecz biorc,
powinno si uywa w przypadku, gdy
operacja przesyania formularza oddziauje na witryn. Na przykad uycie
formularza Nowy pracownik dodaje
nowy rekord do bazy danych.
Metod GET zazwyczaj wykorzystuje si w celu zadania informacji.
Na przykad powinno si j zastosowa
przy daniu informacji o pracownikach w okrelonym wydziale.
utworzenie elementw
formularza str. 67
Etykiety formularza speniaj dwa cele.
Po pierwsze, informuj uytkownikw
o przeznaczeniu okrelonych elementw. Po drugie, bd modyfikowane
z wykorzystaniem JavaScript w celu
wskazania bdw w ajaksowej wersji
formularza.
dodawanie rekordw
Ajax_04.indd 77
str. 70
Sposb walidacji danych formularza
zaley od typu danych (liczby, cigi znakw itp.) oraz spodziewanych wartoci
(liczba dodatnia, adres e-mail itp). Dla
potrzeb walidacji nazwiska osoby czsto wystarczy si upewni, czy wprowadzono jakkolwiek warto.
Dokadniejsza walidacja adresu e-mail
obejmuje potwierdzenie, e spenia
on wzorzec wyraenia regularnego.
Tego rodzaju walidacj naley przeprowadza znacznie czciej dla adresw
e-mail ni dla nazwisk, poniewa adresy
e-mail musz spenia cise reguy.
Aby poprawi bezpieczestwo tego
systemu, mona by zastosowa funkcj
strip_tags() dla operacji wprowadzania danych tekstowych. Wykorzystanie tej funkcji pozwala zapobiega
atakom za pomoc skryptw krzyowych (ang. cross-site scripting attacks
XSS).
Funkcja mysql_real_escape_
string() zapewnia specyficzn dla
jzyka ochron dotyczc wartoci
tekstowych wykorzystywanych w zapytaniach.
77
2008-09-08 17:41:20
78
Ajax_04.indd 78
wywietlenie komunikatw
o bdach str. 74
Aby debugowa problemy dotyczce
PHP i MySQL, naley wywietli zapytanie w celu przeanalizowania jego
skadni. Naley rwnie wywoa funkcj mysql_error(), aby przekona si,
jakie problemy zgasza baza danych.
Witryny produkcyjne nigdy nie
powinny ujawnia szczegowych
komunikatw o bdach, na przykad
uruchamianych zapyta lub bdw
bazy MySQL. Informacje te mona
wykorzystywa dla potrzeb debugowania, ale potem naley je ukry
w wersji produkcyjnej (ktra powinna
by pozbawiona bdw).
dodawanie rekordw
2008-09-08 17:41:20