You are on page 1of 30

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE

505 praktycznych
skryptw dla webmastera
Autor: Marcin Lis
ISBN: 83-7361-749-3
Format: B5, stron: 944

ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Od dzi Twoje strony WWW bd bardziej funkcjonalne i atrakcyjne


Dynamiczny rozwj internetu zmieni rwnie oblicze stron WWW. Skoczya si epoka
statycznych stron WWW. Dzi niemal na kadej stronie WWW, zarwno korporacyjnej,
jak i prywatnej, wykorzystywane s technologie skryptowe, dziki ktrym mona
znacznie wzbogaci moliwoci standardowego jzyka HTML. Technologie skryptowe
nie tylko pomagaj w zwikszeniu atrakcyjnoci wizualnej strony, ale take w jej
zabezpieczaniu, zarzdzaniu ni i analizie ruchu odwiedzajcych. Poczenie skryptw
z bazami danych pozwala na stworzenie systemw dynamicznego generowania treci,
wymian informacji z osobami ogldajcymi stron i tworzenie statystyk.
Ksika 505 praktycznych skryptw dla webmastera to zbir skryptw, napisanych
w rnych jzykach skryptowych, dziki ktrym Twoja strona zyska na atrakcyjnoci
i funkcjonalnoci. Skrypty przedstawione w ksice to zarwno efekty graficzne
i tekstowe, wzbogacajce wygld strony, jak i zoone mechanizmy, ktre su do
tworzenia interakcji z uytkownikiem, generowania treci i odnonikw na podstawie
bazy danych oraz analizowania odwiedzin na witrynie. Ksika zawiera przykady
rozwiza, wykorzystujce wszystkie najpopularniejsze technologie skryptowe
DHTML, JavaScript, VBScript, Java, PHP, ASP oraz Perl.
Dynamiczny HTML
Wywietlanie daty i czasu
Interakcja z oknem przegldarki
Modyfikowanie wygldu czy
Zarzdzanie banerami w witrynie
Obsuga logowania i autoryzacji uytkownikw
Pobieranie i wysyanie plikw z poziomu strony WWW
Rozpoznawanie adresu IP oraz typu i wersji przegldarki
Statystyki i liczniki odwiedzin
Wsppraca z baz danych
Jeli chcesz, aby Twoje strony WWW wyrniay si spord innych, zastosuj w nich
skrypty. Wszystkie niezbdne informacje na ten temat znajdziesz w ksice.

Spis treci
Wstp ............................................................................................. 15
Rozdzia 1. Dynamiczny HTML............................................................................ 21
Skrypty rne .................................................................................................................. 21
Skrypt 1. Blokada prawego przycisku myszy............................................................ 21
Skrypt 2. Okno powitalne.......................................................................................... 23
Skrypt 3. Okno poegnalne ....................................................................................... 24
Skrypt 4. Rozpoznanie typu przegldarki.................................................................. 24
Skrypt 5. adowanie rnych stron w zalenoci od typu przegldarki.................... 26
Skrypt 6. adowanie rnych stron w zalenoci od systemu operacyjnego ............ 27
Skrypt 7. Zmiana wygldu kursora myszy ................................................................ 28
Skrypt 8. Sprawdzenie poprawnoci danych w formularzu....................................... 30
Skrypt 9. Kalkulator.................................................................................................. 33
Skrypt 10. Automatyczne przenoszenie kursora midzy polami formularza............. 38
Skrypt 11. Zablokowanie moliwoci wpisywania okrelonych znakw
w formularzu.......................................................................................................... 39
Skrypt 12. Pole tekstowe dopasowujce swj rozmiar do wprowadzanego tekstu.... 40
Skrypt 13. Zmiana obrazka po najechaniu mysz (dynamiczne przyciski) ............... 42
Skrypt 14. Weryfikacja adresu e-mail ....................................................................... 43
Skrypt 15. Ukrycie adresu e-mail (antyspam) ........................................................... 45
Skrypt 16. Podwietlenie komrki tabeli................................................................... 46
Odnoniki ........................................................................................................................ 48
Skrypt 17. Zmiana kolorw odnonikw .................................................................. 48
Skrypt 18. Akapit tekstowy udajcy odnonik .......................................................... 49
Skrypt 19. Odnoniki w polu Combo ........................................................................ 49
Skrypt 20. Odnoniki w polu Combo z automatyczn zmian strony ....................... 51
Skrypt 21. Odnoniki na licie zwykej ..................................................................... 52
Skrypt 22. Odnoniki w polach wyboru typu radio................................................... 53
Skrypt 23. Odnoniki na przyciskach........................................................................ 54
Skrypt 24. Odnoniki z dodatkowym opisem w polu tekstowym.............................. 55
Skrypt 25. Odnoniki z dodatkowym wyrnieniem................................................. 57
Okna ................................................................................................................................ 59
Skrypt 26. Automatyczne zaadowanie innej strony [JavaScript] ............................. 59
Skrypt 27. Automatyczne zaadowanie innej strony [HTML]................................... 60
Skrypt 28. Automatyczne wczytanie innej strony z regulowanym opnieniem ...... 61
Skrypt 29. Uniemoliwienie wczytania strony do ramki........................................... 62
Skrypt 30. Dodanie strony do listy Ulubione ............................................................ 62
Skrypt 31. Ustawianie strony jako startowej ............................................................. 64

505 praktycznych skryptw dla webmastera


Skrypt 32. Otworzenie dokumentu w nowym oknie ................................................. 65
Skrypt 33. Strona zalena od rozdzielczoci ekranu.................................................. 68
Skrypt 34. Modyfikacja wygldu suwakw okna...................................................... 69
Skrypt 35. Dynamiczna zmiana kolorw suwakw okna.......................................... 70
Skrypt 36. Modyfikacja wygldu suwakw w ramce................................................ 72
Skrypt 37. Potrznicie ekranem ............................................................................. 74
Skrypt 38. Zamknicie okna przegldarki................................................................. 74
Data i czas ....................................................................................................................... 75
Skrypt 39. Wywietlenie aktualnej daty .................................................................... 75
Skrypt 40. Zegar w polu tekstowym.......................................................................... 77
Skrypt 41. Zegar na pasku stanu ............................................................................... 79
Skrypt 42. Zegar w pasku tytuu ............................................................................... 79
Skrypt 43. Zegar na warstwie.................................................................................... 80
Skrypt 44. Zegar na przycisku................................................................................... 82
Skrypt 45. Okrelenie dnia tygodnia ......................................................................... 83
Skrypt 46. Wywietlenie daty, czasu oraz dnia tygodnia .......................................... 84
Skrypt 47. Ile dni do...? ............................................................................................. 86
Skrypt 48. Data aktualizacji strony ........................................................................... 88
Skrypt 49. Kalendarz................................................................................................. 89
Skrypt 50. Strona zalena od pory dnia..................................................................... 92
Banery ............................................................................................................................. 93
Skrypt 51. Losowo generowany baner ...................................................................... 93
Skrypt 52. Banery wywietlane w okrelonej kolejnoci .......................................... 94
Skrypt 53. Zmieniajce si losowo banery ................................................................ 96
Skrypt 54. Banery zmieniajce si w okrelonej kolejnoci...................................... 98
Skrypt 55. Baner zaleny od pory dnia ..................................................................... 99
Skrypt 56. Baner zaleny od dnia tygodnia............................................................. 100
Skrypt 57. Baner przenoszcy na losow stron ..................................................... 101
Przesuwanie tekstu ........................................................................................................ 102
Skrypt 58. Tekst pywajcy w polu tekstowym w lewo............................................... 102
Skrypt 59. Tekst pywajcy w polu tekstowym w prawo ........................................ 103
Skrypt 60. Tekst pywajcy w lewo uwzgldniajcy rozmiar pola tekstowego....... 104
Skrypt 61. Symulacja wprowadzania znakw z klawiatury .................................... 105
Skrypt 62. Tekst odbijajcy si od lewej i prawej krawdzi pola tekstowego......... 106
Skrypt 63. Zamiana tekstu przez losowe wstawianie znakw ................................. 108
Skrypt 64. Zamiana tekstw poprzez najazd od prawej strony................................ 110
Skrypt 65. Zamiana tekstw poprzez najazd od lewej strony.................................. 111
Skrypt 66. Tekst pywajcy po pasku stanu ............................................................ 113
Skrypt 67. Tekst pywajcy po pasku tytuu............................................................ 114
Skrypt 68. Pywajcy zegar ..................................................................................... 114
Skrypt 69. Zegar pywajcy w wierszu statusu ....................................................... 116
Uytkownicy i hasa ...................................................................................................... 117
Skrypt 70. Kod dostpu do strony ........................................................................... 117
Skrypt 71. Kod dostpu do strony ze zliczaniem bdnych prb............................. 119
Skrypt 72. Logowanie uytkownikw..................................................................... 120
Skrypt 73. Logowanie uytkownikw ze zliczaniem bdnych prb ...................... 122
Skrypt 74. Automatyczne logowanie uytkownikw .............................................. 123
Skrypt 75. Nazwa strony jako haso ........................................................................ 126
Skrypt 76. Zapamitanie danych uytkownika........................................................ 127
Skrypt 77. Zliczanie liczby odwiedzin .................................................................... 129
Skrypt 78. Ograniczenie liczby odwiedzin.............................................................. 131
Warstwy i animacje ....................................................................................................... 132
Skrypt 79. To pywajce w pionie.......................................................................... 132
Skrypt 80. To pywajce w poziomie ..................................................................... 133
Skrypt 81. To z cyklicznie zmieniajcych si obrazw.......................................... 134

Spis treci

5
Skrypt 82. Pulsujca warstwa (ciemnianie i rozjanianie) ..................................... 135
Skrypt 83. Pywajca warstwa................................................................................. 136
Skrypt 84. Zegar pywajcy na warstwie HTML .................................................... 137
Skrypt 85. Tekst pynnie zmieniajcy kolor............................................................ 139
Skrypt 86. Skalowanie obrazu................................................................................. 142
Skrypt 87. Padajcy nieg (prosty efekt) ................................................................. 144
Skrypt 88. Padajcy nieg (efekt zaawansowany) ................................................... 145
Skrypt 89. Spadajca pika ...................................................................................... 148

Rozdzia 2. Aplety ........................................................................................... 151


Graficzne napisy............................................................................................................ 151
Skrypt 90. Napis pywajcy w lewo ........................................................................ 151
Skrypt 91. Napis pywajcy w prawo...................................................................... 154
Skrypt 92. Napis pywajcy w poziomie odbijajcy si od brzegw apletu ............ 156
Skrypt 93. Teksty wpywajce raz z jednej, raz z drugiej strony apletu .................. 158
Skrypt 94. Teksty najedajce od prawej strony.................................................... 162
Skrypt 95. Rnokolorowe teksty nadjedajce od prawej strony......................... 165
Skrypt 96. Tekst pyncy w gr............................................................................. 168
Skrypt 97. Tekst pyncy w d............................................................................... 172
Skrypt 98. Pywajcy tekst pynnie zmieniajcy kolory.......................................... 174
Skrypt 99. Pulsowanie tekstu .................................................................................. 177
Skrypt 100. Wymiana tekstw przez ciemnianie i rozjanienie............................. 179
Skrypt 101. Kolory pynce przez tekst................................................................... 183
Skrypt 102. Kolory pynce przez przesuwajcy si tekst....................................... 187
Skrypt 103. Symulacja pisania na klawiaturze ........................................................ 189
Skrypt 104. Symulacja pisania na klawiaturze z losowym opnieniem ................ 192
Skrypt 105. Symulacja pisania na klawiaturze z wymian tekstw......................... 194
Skrypt 106. Prosty napis poruszajcy si po sinusoidzie......................................... 198
Skrypt 107. Litery taczce po sinusoidzie ............................................................. 201
Skrypt 108. Litery pynce po sinusoidzie .............................................................. 204
Skrypt 109. Napisy pojawiajce si w losowych punktach ..................................... 208
Skrypt 110. Napisy pojawiajce si w losowych punktach II ................................. 210
Skrypt 111. Napis odbijajcy si od brzegw apletu............................................... 214
Banery ........................................................................................................................... 217
Skrypt 112. Zmieniajce si losowo banery ............................................................ 217
Skrypt 113. Banery zmieniajce si w okrelonej kolejnoci.................................. 219
Skrypt 114. Baner nadjedajcy z prawej strony................................................... 221
Skrypt 115. Baner nadjedajcy z lewej strony ..................................................... 225
Skrypt 116. Baner nadjedajcy z gry ................................................................. 228
Skrypt 117. Baner nadjedajcy z dou ................................................................. 231
Skrypt 118. Baner zaleny od dnia miesica ........................................................... 234
Skrypt 119. Baner zaleny od dnia tygodnia........................................................... 235
Skrypt 120. Baner zaleny od pory dnia ................................................................. 237
Skrypt 121. Baner przenoszcy na wybran witryn............................................... 238
Hasa dostpowe............................................................................................................ 242
Skrypt 122. Haso dostpu ...................................................................................... 242
Skrypt 123. Szyfrowane haso dostpu ................................................................... 244
Skrypt 124. Aplet szyfrujcy hasa.......................................................................... 247
Skrypt 125. Wiele hase dostpu ............................................................................. 248
Skrypt 126. Wiele szyfrowanych hase dostpu ...................................................... 250
Skrypt 127. Szybkie szyfrowanie wielu hase ......................................................... 252
Skrypt 128. Nazwa pliku jako haso dostpu .......................................................... 254
Skrypt 129. Zabezpieczenie hasem ze zliczaniem bdnych prb.......................... 256
Skrypt 130. Oddzielna nazwa i haso dla kadego uytkownika I........................... 258

505 praktycznych skryptw dla webmastera


Skrypt 131. Oddzielna nazwa i haso dla kadego uytkownika II ......................... 261
Skrypt 132. Szyfrowana nazwa i haso uytkownika .............................................. 264
Skrypt 133. Nazwa i haso ze zliczaniem bdnych prb ........................................ 267
Skrypt 134. Indywidualna strona dla kadego uytkownika ................................... 269
Odnoniki ...................................................................................................................... 271
Skrypt 135. Odnoniki na etykietach....................................................................... 271
Skrypt 136. Dynamicznie wyrniane odnoniki na etykietach .............................. 275
Skrypt 137. Odnoniki z opisami ............................................................................ 278
Skrypt 138. Odnoniki na etykietach ze zmieniajcymi si opisami ....................... 281
Skrypt 139. Odnoniki na etykietach z opisami w wierszu statusu ......................... 285
Skrypt 140. Odnoniki na przyciskach .................................................................... 289
Skrypt 141. Odnoniki na przyciskach dynamicznie zmieniajcych kolor.............. 292
Skrypt 142. Przyciski dynamicznie zmieniajce kolor ta ....................................... 295
Skrypt 143. Odnoniki otwierane w nowym oknie.................................................. 298
Skrypt 144. Menu.................................................................................................... 300
Skrypt 145. Wielopoziomowe menu ....................................................................... 302
Skrypt 146. Menu kontekstowe............................................................................... 304
Skrypt 147. Wielopoziomowe menu kontekstowe .................................................. 306
Skrypt 148. Obrazy jako odnoniki......................................................................... 308
Skrypt 149. Obrazy zmieniajce si po najechaniu mysz ...................................... 311
Data i czas ..................................................................................................................... 314
Skrypt 150. Wywietlenie aktualnej daty ................................................................ 314
Skrypt 151. Data pynca po ekranie w poziomie ................................................... 317
Skrypt 152. Data pynca po ekranie w pionie ........................................................ 319
Skrypt 153. Data pywajca w obszarze apletu ....................................................... 322
Skrypt 154. Zegar cyfrowy...................................................................................... 325
Skrypt 155. Zegar cyfrowy pyncy w poziomie..................................................... 327
Skrypt 156. Zegar cyfrowy pyncy w pionie ......................................................... 330
Skrypt 157. Zegar cyfrowy pywajcy w obszarze apletu ....................................... 333
Skrypt 158. Zegar analogowy ................................................................................. 335
Skrypt 159. Zegar analogowy pywajcy w obszarze apletu................................... 339
Skrypt 160. Ile pozostao dni do...?......................................................................... 342
Skrypt 161. Zegar odmierzajcy czas do wybranego zdarzenia .............................. 345
Skrypt 162. Zegar odmierzajcy czas do wybranego zdarzenia II........................... 349
Skrypt 163. Aplet obliczajcy liczb dni midzy dwiema datami ........................... 352
Efekty graficzne ............................................................................................................ 354
Skrypt 164. Generowanie kolorowego ta z pynnymi przejciami tonalnymi ........ 354
Skrypt 165. Animacja wielokolorowego ta ............................................................ 356
Skrypt 166. Pywajce wielokolorowe to............................................................... 358
Skrypt 167. Animacja poklatkowa .......................................................................... 360
Skrypt 168. Padajcy nieg ..................................................................................... 362
Skrypt 169. Obraz odbijajcy si od brzegw apletu .............................................. 366
Skrypt 170. Obraz pyncy po sinusoidzie .............................................................. 368
Skrypt 171. Przycisk samoczynnie zmieniajcy kolor ta ....................................... 370
Skrypt 172. Przycisk samoczynnie zmieniajcy kolor tekstu.................................. 373
Skrypt 173. Przycisk samoczynnie zmieniajcy kolor tekstu i ta........................... 375
Skrypt 174. Etykieta samoczynnie zmieniajca kolor tekstu................................... 377
Skrypt 175. Falowanie obrazu w pionie .................................................................. 379
Skrypt 176. Falowanie obrazu w pionie
z moliwoci definiowania kierunku ruchu........................................................ 384
Skrypt 177. Obraz falujcy w poziomie .................................................................. 387
Skrypt 178. Obraz falujcy w poziomie
z moliwoci definiowania kierunku ruchu........................................................ 390

Spis treci

7
Skrypt 179. Gwiazdy pynce po ekranie................................................................ 394
Skrypt 180. Gwiazdy warstwowe............................................................................ 396
Skrypt 181. Gwiazdy parametryczne ...................................................................... 399

Rozdzia 3. VBScript........................................................................................ 403


Rozmaitoci................................................................................................................... 403
Skrypt 182. Okno ostrzegawcze .............................................................................. 403
Skrypt 183. Okno poegnalne ................................................................................. 404
Skrypt 184. Wykrycie typu systemu operacyjnego ................................................. 405
Skrypt 185. Wybr wygldu kursora myszy z listy................................................. 406
Skrypt 186. Przetwarzanie formularzy .................................................................... 407
Skrypt 187. Kalkulator ............................................................................................ 411
Skrypt 188. Automatyczne ustawianie kursora w formularzu................................. 415
Skrypt 189. Uniemoliwienie wprowadzania liter w polu tekstowym .................... 416
Skrypt 190. Automatyczna zmiana rozmiaru pola tekstowego................................ 417
Skrypt 191. Dynamiczne obrazy ............................................................................. 419
Skrypt 192. Sprawdzenie poprawnoci adresu e-mail ............................................. 420
Skrypt 193. Ukrycie adresu e-mail przed robotami skanujcymi witryny............... 421
Odnoniki ...................................................................................................................... 422
Skrypt 194. Odnoniki na licie rozwijalnej............................................................ 422
Skrypt 195. Odnoniki na licie rozwijalnej z automatyczn zmian strony........... 423
Skrypt 196. Odnoniki na licie zwykej ................................................................. 424
Skrypt 197. Odnoniki umieszczone w polach wyboru typu radio.......................... 426
Skrypt 198. Odnoniki z opisem w polu tekstowym ............................................... 427
Skrypt 199. Odnoniki z opisem na pasku stanu ..................................................... 429
Skrypt 200. Dodatkowe wyrnienie odnonikw .................................................. 430
Skrypt 201. Odnoniki na przyciskach z dodatkowym wyrnieniem .................... 432
Okna .............................................................................................................................. 434
Skrypt 202. Przekierowanie uytkownika na inn witryn [VBScript]................... 434
Skrypt 203. Przekierowanie z opnieniem ............................................................ 434
Skrypt 204. Uniemoliwienie wczytania strony do ramki....................................... 435
Skrypt 205. Dodanie wpisu do zakadki Ulubione .................................................. 436
Skrypt 206. Rne wersje witryny w zalenoci od rozdzielczoci ekranu............. 437
Skrypt 207. Otworzenie nowego okna przegldarki................................................ 438
Skrypt 208. Dynamiczna zmiana kolorw suwakw okna...................................... 439
Skrypt 209. Potrznicie ekranem ......................................................................... 441
Data i czas ..................................................................................................................... 442
Skrypt 210. Okrelenie biecej daty ...................................................................... 442
Skrypt 211. Wywietlenie daty systemowej............................................................ 443
Skrypt 212. Zegar cyfrowy w polu tekstowym ....................................................... 444
Skrypt 213. Zegar cyfrowy w wierszu statusu ........................................................ 446
Skrypt 214. Zegar cyfrowy umieszczony na pasku tytuu....................................... 447
Skrypt 215. Aktualny czas wywietlany na przycisku ............................................ 448
Skrypt 216. Zegar cyfrowy na niezalenej warstwie HTML................................... 449
Skrypt 217. Jaki dzi dzie tygodnia? ..................................................................... 450
Skrypt 218. Jednoczesne okrelenie daty, czasu i dnia tygodnia............................. 451
Skrypt 219. Obliczenie liczby dni do wybranej daty............................................... 454
Skrypt 220. Wywietlenie daty aktualizacji strony ................................................. 455
Skrypt 221. Uzalenienie wywietlanej strony od pory dnia................................... 456
Skrypt 222. Strona zalena od dnia tygodnia .......................................................... 457
Skrypt 223. Dynamiczny kalendarz ........................................................................ 458
Banery ........................................................................................................................... 461
Skrypt 224. Losowanie numeru banera ................................................................... 461
Skrypt 225. Okrelenie kolejnoci wywietlania banerw ...................................... 462
Skrypt 226. Zmieniajcy si losowo baner.............................................................. 465

505 praktycznych skryptw dla webmastera


Skrypt 227. Banery zmieniajce si w okrelonej kolejnoci.................................. 466
Skrypt 228. Wywietlanie rnych banerw w zalenoci od pory dnia................. 468
Skrypt 229. Wywietlanie rnych banerw w zalenoci od dnia tygodnia .......... 469
Skrypt 230. Baner przenoszcy na losow stron ................................................... 470
Pywajce napisy ........................................................................................................... 471
Skrypt 231. Przewijanie napisu w lewo................................................................... 471
Skrypt 232. Przewijanie napisu w prawo ................................................................ 472
Skrypt 233. Przewijanie napisu z uwzgldnieniem rozmiaru pola tekstowego ....... 473
Skrypt 234. Wywietlanie napisu z opnieniem przy kadym znaku .................... 475
Skrypt 235. Pywajcy napis odbijajcy si od brzegw pola tekstowego .............. 476
Skrypt 236. Losowa zamiana znakw w napisie ..................................................... 477
Skrypt 237. Napisy wjedajce do pola tekstowego z prawej strony..................... 479
Skrypt 238. Napisy wjedajce do pola tekstowego z lewej strony....................... 481
Skrypt 239. Przewijanie napisu na pasku statusu .................................................... 483
Skrypt 240. Przewijanie tekstu na pasku tytuu....................................................... 484
Skrypt 241. Zegar pywajcy w polu tekstowym .................................................... 485
Skrypt 242. Zegar pywajcy na pasku stanu .......................................................... 487
Uytkownicy i hasa ...................................................................................................... 488
Skrypt 243. Strona dostpna po podaniu hasa........................................................ 488
Skrypt 244. Haso dostpu do strony ze zliczaniem bdnych prb ........................ 490
Skrypt 245. Logowanie uytkownikw................................................................... 491
Skrypt 246. Logowanie uytkownikw ze zliczaniem bdnych prb .................... 493
Skrypt 247. Automatyczne logowanie uytkownikw ............................................ 494
Skrypt 248. Nietypowe haso .................................................................................. 497
Skrypt 249. Rozpoznawanie uytkownika .............................................................. 498
Skrypt 250. Zliczanie liczby odwiedzin .................................................................. 501
Skrypt 251. Ograniczenie liczby odwiedzin............................................................ 503
Efekty graficzne ............................................................................................................ 505
Skrypt 252. Pywajce to........................................................................................ 505
Skrypt 253. To z cyklicznie zmieniajcych si obrazw........................................ 506
Skrypt 254. Pulsujce to......................................................................................... 507
Skrypt 255. ciemnianie koloru warstwy................................................................ 508
Skrypt 256. Rozjanianie koloru warstwy ............................................................... 509
Skrypt 257. Pulsujca warstwa................................................................................ 510
Skrypt 258. Warstwa pywajca w oknie przegldarki............................................ 511
Skrypt 259. Zegar pywajcy w oknie przegldarki ................................................ 513
Skrypt 260. Pynne powikszanie obrazu................................................................ 515
Skrypt 261. Pulsowanie obrazu ............................................................................... 516
Skrypt 262. Symulacja odbijajcej si piki ............................................................ 517

Rozdzia 4. PHP............................................................................................... 521


Globalna sie ................................................................................................................. 521
Skrypt 263. Pobranie pliku z serwera ftp ................................................................ 521
Skrypt 264. Wysanie pliku do serwera ftp ............................................................. 522
Skrypt 265. Wysanie pliku przez formularz (upload pliku) ................................... 524
Skrypt 266. Wysanie pliku ze strony WWW do serwera ftp.................................. 526
Skrypt 267. Przekierowanie przy uyciu znacznika META .................................... 527
Skrypt 268. Przekierowanie na inn witryn przy uyciu nagwka HTTP ............ 527
Skrypt 269. Przekierowanie na losow witryn ...................................................... 528
Skrypt 270. Inna strona dla uytkownikw o znanych IP ....................................... 529
Skrypt 271. Walidacja adresu e-mail....................................................................... 529
Skrypt 272. Pobranie pliku (download pliku) ......................................................... 530
Skrypt 273. Pobieranie plikw z listy I ................................................................... 531
Skrypt 274. Pobieranie plikw z listy II .................................................................. 534

Spis treci

9
Skrypt 275. Generowanie listy plikw do pobrania ................................................ 537
Skrypt 276. Wysanie ze strony WWW listu elektronicznego ................................ 537
Skrypt 277. Wysanie listu z walidacj adresw ..................................................... 540
Skrypt 278. Wysanie listu z ograniczeniem rozmiaru ............................................ 541
Skrypt 279. Odczytanie adresu IP komputera ......................................................... 543
Skrypt 280. Lista plikw z opisami......................................................................... 544
Skrypt 281. Lista plikw z identyfikatorami i opisami ........................................... 546
Skrypt 282. Sortowana lista plikw......................................................................... 548
Rozmaitoci................................................................................................................... 551
Skrypt 283. Strona zalena od adresu IP ................................................................. 551
Skrypt 284. Rozpoznanie typu przegldarki............................................................ 552
Skrypt 285. Strona zalena od typu przegldarki .................................................... 553
Skrypt 286. Strona zalena od systemu operacyjnego............................................. 555
Skrypt 287. Ochrona adresu e-mail przed spamem ................................................. 556
Skrypt 288. Ochrona adresu e-mail z wykorzystaniem pliku graficznego .............. 557
Skrypt 289. Lista odwiedzin strony......................................................................... 559
Skrypt 290. Ocenzurowanie tekstu.......................................................................... 561
Skrypt 291. Ocenzurowanie tekstu z wykorzystaniem zewntrznego sownika...... 562
Skrypt 292. Lista odnonikw................................................................................. 562
Skrypt 293. Lista odnonikw z opisami................................................................. 564
Skrypt 294. Sortowana lista odnonikw ................................................................ 565
Uytkownicy i hasa ...................................................................................................... 566
Skrypt 295. Haso dostpu do strony....................................................................... 566
Skrypt 296. Wiele hase dostpu ............................................................................. 568
Skrypt 297. Wiele hase dostpu II ......................................................................... 569
Skrypt 298. Strona zalena od kodu dostpu........................................................... 569
Skrypt 299. Logowanie uytkownikw................................................................... 571
Skrypt 300. Logowanie uytkownikw z kodowaniem danych .............................. 574
Skrypt 301. Zarzdzanie hasami ............................................................................ 575
Skrypt 302. Logowanie uytkownikw z danymi w kodzie skryptu ....................... 579
Skrypt 303. Generowanie losowego hasa............................................................... 580
Skrypt 304. Zablokowanie wybranych adresw IP ................................................. 580
Skrypt 305. Zablokowanie wybranych adresw IP z danymi w pliku..................... 581
Skrypt 306. Dopuszczenie jedynie wybranych adresw IP ..................................... 582
Skrypt 307. Dopuszczenie jedynie wybranych adresw IP II ................................. 583
Skrypt 308. Automatyczne logowanie..................................................................... 584
Skrypt 309. Strona zalena od nazwy uytkownika ................................................ 587
Skrypt 310. Powizanie nazwy uytkownika z adresem IP..................................... 589
Skrypt 311. Zliczanie liczby odwiedzin kadego uytkownika............................... 590
Skrypt 312. Ograniczenie liczby odwiedzin ze wzgldu na adres IP ...................... 592
Data i czas ..................................................................................................................... 594
Skrypt 313. Wywietlenie biecej daty i czasu...................................................... 594
Skrypt 314. Wywietlenie daty ostatniej modyfikacji strony .................................. 596
Skrypt 315. Wywietlenie dnia tygodnia................................................................. 597
Skrypt 316. Strona zalena od pory dnia................................................................. 598
Skrypt 317. Strona zalena od dnia tygodnia .......................................................... 599
Skrypt 318. Odliczanie dni...................................................................................... 600
Skrypt 319. Rnica midzy datami........................................................................ 601
Skrypt 320. Czas generowania strony ..................................................................... 603
Skrypt 321. Kalendarz............................................................................................. 604
Banery ........................................................................................................................... 607
Skrypt 322. Losowy baner ...................................................................................... 607
Skrypt 323. Losowy baner II (dane w tablicy) ........................................................ 608
Skrypt 324. Baner losowany z plikw z wybranego katalogu................................. 608

10

505 praktycznych skryptw dla webmastera


Skrypt 325. Zapamitanie kolejnoci wywietlania banerw.................................. 609
Skrypt 326. Losowe banery bez powtrze............................................................. 610
Skrypt 327. Baner zaleny od pory dnia ................................................................. 612
Skrypt 328. Baner zaleny od dnia tygodnia........................................................... 612
Skrypt 329. Baner zaleny od adresu IP.................................................................. 613
Liczniki, ksigi goci itp. .............................................................................................. 614
Skrypt 330. Prosty licznik tekstowy ........................................................................ 614
Skrypt 331. Licznik graficzny ................................................................................. 615
Skrypt 332. Licznik filtrujcy adresy IP.................................................................. 616
Skrypt 333. Licznik uwzgldniajcy dat pocztkow............................................ 617
Skrypt 334. Licznik uwzgldniajcy tylko jedno odwoanie z jednego adresu IP... 618
Skrypt 335. Ksiga goci......................................................................................... 619
Skrypt 336. Ksiga goci z nawigacj ..................................................................... 623
Skrypt 337. Ksiga goci z filtrowaniem znacznikw HTML................................. 627
Skrypt 338. Ankieta ................................................................................................ 630
Skrypt 339. Porada dnia .......................................................................................... 635
Skrypt 340. Porada dnia z hasami w pliku ............................................................. 635
Bazy danych .................................................................................................................. 636
Skrypt 341. Licznik................................................................................................. 636
Skrypt 342. Ankieta ................................................................................................ 638
Skrypt 343. Liczba osb obecnych na stronie ......................................................... 640
Skrypt 344. Liczba osb przegldajcych stron z rnych adresw IP ................. 643
Skrypt 345. Ksiga goci......................................................................................... 644
Skrypt 346. Logowanie uytkownikw................................................................... 648
Skrypt 347. Logowanie z filtrowaniem danych i kodowaniem hase ...................... 650
Skrypt 348. Zarzdzanie hasami ............................................................................ 652
Skrypt 349. Zapamitanie danych uytkownika...................................................... 654
Skrypt 350. Statystyka odwiedzin ........................................................................... 660
Skrypt 351. Liczba osb obecnych na stronie II ..................................................... 662
Skrypt 352. Pobieranie plikw ................................................................................ 664
Skrypt 353. Ranking plikw.................................................................................... 667
Skrypt 354. Wprowadzenie plikw do bazy danych ............................................... 671
Skrypt 355. Porada dnia .......................................................................................... 672
Skrypt 356. Lista odnonikw................................................................................. 674
Skrypt 357. Lista odnonikw z opisami................................................................. 675
Skrypt 358. Ograniczenie liczby odwiedzin dla tych samych adresw IP............... 677
Skrypt 359. Ograniczenie liczby odwiedzin dla wybranych uytkownikw ........... 679
Skrypt 360. Zliczanie liczby odwoa z kadego adresu IP .................................... 682
Skrypt 361. Statystyka przegldarek ....................................................................... 684
Skrypt 362. Statystyka przegldarek na podstawie statystyki strony ...................... 686
Skrypt 363. Statystyka systemw na podstawie statystyki strony ........................... 689
Grafika........................................................................................................................... 691
Skrypt 364. Galeria plikw graficznych.................................................................. 691
Skrypt 365. Galeria z podpisami ............................................................................. 693
Skrypt 366. Galeria z miniaturami obrazw............................................................ 696
Skrypt 367. Przeskalowanie obrazu ........................................................................ 697
Skrypt 368. Obracanie obrazu................................................................................. 699
Skrypt 369. Przeskalowanie serii obrazw.............................................................. 700

Rozdzia 5. ASP Active Server Pages ........................................................... 703


Internet .......................................................................................................................... 703
Skrypt 370. Odczytanie adresu IP komputera osoby odwiedzajcej stron............. 703
Skrypt 371. Zablokowanie wybranych adresw IP ................................................. 704
Skrypt 372. Zablokowanie wybranych adresw IP II (dane w pliku) ..................... 705

Spis treci

11
Skrypt 373. Zablokowanie wybranych adresw IP z symulacj braku dokumentu........706
Skrypt 374. Dopuszczenie jedynie wybranych adresw IP ..................................... 708
Skrypt 375. Dopuszczenie jedynie wybranych adresw IP II
(dane w pliku tekstowym) .................................................................................... 709
Skrypt 376. Przekierowanie na inn witryn........................................................... 710
Skrypt 377. Przekierowanie z opnieniem ............................................................ 711
Skrypt 378. Rozpoznanie typu przegldarki............................................................ 712
Skrypt 379. Rne wersje strony zalene od typu przegldarki .............................. 713
Skrypt 380. Rozpoznanie systemu operacyjnego klienta ........................................ 714
Skrypt 381. Rne wersje strony zalene od typu systemu operacyjnego............... 715
Skrypt 382. Inna wersja strony dla wybranych adresw IP..................................... 715
Skrypt 383. Rne wersje strony w zalenoci od adresu IP uytkownika ............. 716
Skrypt 384. Wysanie danych z formularza na adres e-mail.................................... 717
Skrypt 385. Wysanie listu elektronicznego ............................................................ 720
Skrypt 386. Wysanie wiadomoci e-mail z ograniczeniem rozmiaru listu............. 723
Skrypt 387. Wysanie listu elektronicznego z wykorzystaniem obiektu CDONTS........724
Skrypt 388. Sprawdzenie poprawnoci adresu e-mail ............................................. 726
Skrypt 389. Proste wysanie pliku do przegldarki ................................................. 727
Skrypt 390. Wysanie pliku do przegldarki z wykorzystaniem ADODB .............. 729
Skrypt 391. System pobierania plikw.................................................................... 730
Skrypt 392. System pobierania plikw z filtrowaniem danych ............................... 733
Skrypt 393. Pobieranie plikw z danymi w pliku tekstowym ................................. 735
Skrypt 394. Pobieranie plikw z opisami................................................................ 738
Skrypt 395. Pobieranie plikw z identyfikatorami .................................................. 741
Skrypt 396. Pobieranie plikw z identyfikatorami i opisami................................... 745
Skrypt 397. Pobieranie plikw z tabelarycznym wywietlaniem danych................ 747
Skrypt 398. Sortowana lista plikw do pobrania..................................................... 751
Systemy logowania (z danymi w systemie plikw)....................................................... 755
Skrypt 399. Strona zabezpieczona kodem dostpu (z przekierowaniem) ................ 755
Skrypt 400. Strona zabezpieczona kodem dostpu (bez przekierowania) ............... 756
Skrypt 401. Strona akceptujca wiele kodw dostpu ............................................ 757
Skrypt 402. Rne wersje strony w zalenoci od kodu dostpowego.................... 758
Skrypt 403. System logowania uytkownikw ....................................................... 759
Skrypt 404. System logowania uytkownikw
z danymi zapisanymi w pliku tekstowym ............................................................ 761
Skrypt 405. System logowania zapamitujcy stron startow ............................... 762
Skrypt 406. Tworzenie losowego hasa................................................................... 764
Skrypt 407. System logowania uwzgldniajcy adres IP uytkownika ................... 765
Skrypt 408. System logowania blokujcy wybrane adresy IP ................................. 767
Skrypt 409. System logowania dopuszczajcy jedynie wybrane adresy IP............. 769
Skrypt 410. Zliczanie liczby odwiedzin pojedynczego uytkownika...................... 771
Skrypt 411. Ograniczenie liczby logowa............................................................... 774
Data i czas ..................................................................................................................... 776
Skrypt 412. Wywietlanie aktualnej daty ................................................................ 776
Skrypt 413. Wywietlenie daty uwzgldniajce ustawienia systemowe serwera .... 778
Skrypt 414. Wywietlenie nazwy aktualnego dnia tygodnia ................................... 778
Skrypt 415. Pene okrelenie daty ........................................................................... 779
Skrypt 416. Rne wersje strony I (w zalenoci od pory dnia).............................. 780
Skrypt 417. Rne wersje strony II (w zalenoci od dnia tygodnia)...................... 782
Skrypt 418. Dynamicznie generowany kalendarz ................................................... 782
Skrypt 419. Obliczenie czasu generowania strony .................................................. 786
Skrypt 420. Odliczanie............................................................................................ 787
Skrypt 421. Okrelenie daty aktualizacji strony ...................................................... 789

12

505 praktycznych skryptw dla webmastera


Liczniki, statystyki itp. .................................................................................................. 791
Skrypt 422. Licznik odwiedzin ............................................................................... 791
Skrypt 423. Licznik graficzny ................................................................................. 792
Skrypt 424. Licznik odrzucajcy poczenia z wybranych adresw IP I................. 793
Skrypt 425. Licznik odrzucajcy poczenia z wybranych adresw IP II ............... 795
Skrypt 426. Licznik zliczajcy odwoania jedynie z wybranych adresw IP I........ 797
Skrypt 427. Licznik zliczajcy odwoania jedynie z wybranych adresw IP II....... 798
Skrypt 428. Licznik uwzgldniajcy tylko rne adresy IP .................................... 800
Skrypt 429. Lista odwiedzin strony......................................................................... 802
Skrypt 430. Lista odwiedzin strony z ograniczeniem liczby
wywietlanych wpisw ........................................................................................ 804
Skrypt 431. Lista odwiedzin strony uwzgldniajca jedynie wybrane adresy IP .... 805
Skrypt 432. Lista odwiedzin strony odrzucajca odwoania
z wybranych adresw IP ...................................................................................... 807
Skrypt 433. Lista odwiedzin uwzgldniajca tylko rne adresy IP ....................... 809
Skrypt 434. Statystyka przegldarek ....................................................................... 812
Skrypt 435. Statystyka systemw operacyjnych ..................................................... 814
Skrypt 436. Ksiga goci......................................................................................... 816
Skrypt 437. Ksiga goci odrzucajca wybrane adresy IP ...................................... 820
Skrypt 438. Ksiga goci filtrujca znaczniki HTML ............................................. 822
Skrypt 439. Porada dnia .......................................................................................... 823
Bazy danych .................................................................................................................. 824
Skrypt 440. Licznik................................................................................................. 824
Skrypt 441. Licznik umoliwiajcy ustawienie daty pocztkowej .......................... 826
Skrypt 442. Licznik odrzucajcy poczenia z wybranych adresw IP ................... 827
Skrypt 443. Licznik zliczajcy odwoania jedynie z wybranych adresw IP .......... 829
Skrypt 444. Licznik uwzgldniajcy tylko rne adresy IP .................................... 831
Skrypt 445. Zliczanie liczby odwoa z kadego adresu IP .................................... 832
Skrypt 446. Statystyka strony.................................................................................. 834
Skrypt 447. Statystyka przegldarek ....................................................................... 836
Skrypt 448. Statystyka przegldarek na podstawie statystyki strony ...................... 839
Skrypt 449. Statystyka systemw operacyjnych ..................................................... 841
Skrypt 450. Statystyka systemw na podstawie statystyki strony ........................... 843
Skrypt 451. Ksiga goci......................................................................................... 845
Skrypt 452. Ksiga goci z ograniczeniem wpisw z pojedynczego adresu IP ....... 849
Skrypt 453. Liczba osb obecnych na stronie ......................................................... 851
Skrypt 454. Zablokowanie wybranych adresw IP ................................................. 852
Skrypt 455. Dopuszczenie jedynie wybranych adresw IP ..................................... 854
Skrypt 456. Wysyanie e-mali z ograniczeniem czasowym .................................... 855
Skrypt 457. Ankieta ................................................................................................ 858
Skrypt 458. Ankieta ograniczajca gosowanie z pojedynczego adresu IP ............. 861
Skrypt 459. Ankieta czasowo ograniczajca oddawanie gosw
z jednego adresu IP .............................................................................................. 864

Rozdzia 6. Perl ............................................................................................... 867


Internet .......................................................................................................................... 867
Skrypt 460. Adres IP ............................................................................................... 867
Skrypt 461. Typ przegldarki.................................................................................. 868
Skrypt 462. Typ systemu operacyjnego .................................................................. 869
Skrypt 463. Przekierowanie z opnieniem ............................................................ 870
Skrypt 464. Przekierowanie ze wzgldu na adres IP ............................................... 871
Skrypt 465. Przekierowanie ze wzgldu na typ przegldarki .................................. 871
Skrypt 466. Blokada uytkownikw I ..................................................................... 872
Skrypt 467. Blokada uytkownikw II.................................................................... 873

Spis treci

13
Skrypt 468. Ograniczenie dostpu dopuszczajce jedynie wybrane adresy IP........ 874
Skrypt 469. Wysyanie poczty................................................................................. 875
Skrypt 470. Walidacja adresu e-mail....................................................................... 878
Skrypt 471. Wysyanie poczty z walidacj adresw................................................ 879
Skrypt 472. Wysyanie poczty z ograniczeniem dugoci listu ............................... 880
Skrypt 473. Wysyanie pliku................................................................................... 882
Skrypt 474. Pobieranie plikw I.............................................................................. 883
Skrypt 475. Pobieranie plikw II ............................................................................ 885
Skrypt 476. Pobranie pliku z serwera ftp ................................................................ 887
Skrypt 477. Wysanie pliku do serwera................................................................... 889
Data i czas ..................................................................................................................... 891
Skrypt 478. Wywietlenie aktualnej daty ................................................................ 891
Skrypt 479. Wywietlenie aktualnego dnia tygodnia .............................................. 892
Skrypt 480. Czas generowania strony ..................................................................... 893
Skrypt 481. Obliczenie liczby dni pozostaych do wybranej daty ........................... 894
Skrypt 482. Obliczanie rnicy dni pomidzy dwoma datami ................................ 896
Skrypt 483. Strona zalena od pory dnia................................................................. 898
Skrypt 484. Strona zalena od dnia tygodnia .......................................................... 899
Liczniki ......................................................................................................................... 899
Skrypt 485. Licznik tekstowy.................................................................................. 899
Skrypt 486. Licznik graficzny ................................................................................. 900
Skrypt 487. Licznik odrzucajcy niektre odwoania I ........................................... 901
Skrypt 488. Licznik odrzucajcy niektre odwoania II.......................................... 903
Skrypt 489. Licznik zliczajcy tylko jedno odwoanie z jednego adresu IP............ 904
Skrypt 490. Licznik przechowujcy dat pocztkow............................................. 906
Banery ........................................................................................................................... 907
Skrypt 491. Losowy baner ...................................................................................... 907
Skrypt 492. Losowy baner II................................................................................... 907
Skrypt 493. Baner losowany z wybranego katalogu................................................ 908
Skrypt 494. Baner zaleny od pory dnia ................................................................. 909
Skrypt 495. Baner zaleny od dnia tygodnia........................................................... 910
Skrypt 496. Wywietlanie banera w zalenoci od adresu IP.................................. 911
Autoryzacje ................................................................................................................... 912
Skrypt 497. Pojedyncze haso dostpu do strony .................................................... 912
Skrypt 498. Wiele hase dostpu do strony I ........................................................... 913
Skrypt 499. Wiele hase dostpu do strony II.......................................................... 914
Skrypt 500. Rne witryny w zalenoci od hasa dostpu ..................................... 915
Skrypt 501. Logowanie uytkownikw I ................................................................ 916
Skrypt 502. Logowanie uytkownikw II ............................................................... 917
Skrypt 503. Logowanie uwzgldniajce adres IP uytkownika .............................. 919
Skrypt 504. Rne witryny w zalenoci od nazwy uytkownika........................... 920
Skrypt 505. Logowanie blokujce niektre adresy IP ............................................. 921

Skorowidz...................................................................................... 923

Rozdzia 2.

Aplety

Graficzne napisy
Skrypt 90. Napis pywajcy w lewo
Wykorzystujc jzyk programowania Java, moemy napisa aplet, ktry bdzie realizowa efekt pynnego przewijania tekstu w poziomie. Tekst ten bdzie mg mie dowoln wielko, kolor czy krj czcionki. Takie zadanie realizuje klasa 
przedstawiona na listingu 90B. Aplet powinien zosta osadzony w kodzie HTML za pomoc
znacznika  przedstawionego na listingu 90A. W tym znaczniku powinny zosta
uwzgldnione nastpujce parametry:
  napis, ktry bdzie przewijany, warto domylna: Brak parametru text!
   wielko czcionki, warto domylna: 36.
  liczba pikseli, o ktr ma zosta przesunity tekst w kadym

ruchu, warto domylna: 1.


Listing 90A. Kod HTML z zagniedonym znacznikiem <APPLET>

 

 
 

 !!
"#$%& $%!
'!#()
!*!*+
,-.)
,,+))


 



152

505 praktycznych skryptw dla webmastera

Listing 90B. Poziomy napis przesuwany w lew stron

/**,##%!01%2)2!%$*3 45 ! /

/ 67 !,*7

5 !5/

5*8 9  /:
5*8 9  **/:
*64
 !!"!**5*5!;6 4
<
"=$=!**:
 **>,= **,:
!>,=!,:
 *!:
'5!;5 :
?5 5:
@ *,! A=5 A:
4 !**' !:
*649BC
<
'BB *!  5B"CC6C
 *!  %*  56"D:
!#:
'#:
'BB!#  5B'!#CC6C
!#(-:
$<
'#?* !?B!#C:
E
 ,B"*C<
'#(-:
E
!**:
'BB!**  5B!*!*CC6C
!**+:
$<
!** , 4!B?* !?B!**CC:
E
 ,B"*C<
!**+:
E
 **>,>,BC:
 **,,BC:
'5!;5 B5!;5 =  ='#C:
5 ?5 B **>,= **,C:
5 A5@ *,!BC:
 A@ *,!BC:
 A!B'5!;5 C:
!'5 A!BC:
!,'5,BC:

Rozdzia 2. Aplety

153

!>,'5!>,B *!C:
" **>,:
$BCBB **,F!,C
GC:
E
*649! BC
<
, , , B,!C:
, ! BC:
E
*649!*BC
<
!**6:
E
*6496BC
<
,BD!**C<
'B"H!>,C<
" **>,:
E
$<
, !*B+C:
E
 ,B?6*"*C<
E
"H!**:
5 A!ABA>?C:
5 A';B)=)= **>,= **,C:
5 A!ABA46C:
5 A!B'5!;5 C:
5 A B *!="=$C:
 A ?5 B5=)=)=,!C:
E
E
E

W przypadku, gdyby zabrako ktregokolwiek parametru, w aplecie zostanie przyjta


odpowiadajca temu parametrowi warto domylna. Oprcz tego znacznik  powinien zawiera standardowe argumenty:
  nazwa klasy zawierajcej kod apletu,
  szeroko apletu,
 
 wysoko apletu.

Wykonywanie kodu rozpoczyna si od metody  , ktra odczytuje wszystkie argumenty i przypisuje je odpowiadajcym im zmiennym. W razie koniecznoci s wykorzystywane wymienione wyej wartoci domylne. Oprcz tego w metodzie   s wykonywane wstpne obliczenia oraz tworzone niezbdne obiekty. Za pomoc metod obiektu
klasy   jest pobierana wysoko (metoda

) i szeroko (metoda

) napisu, jest take obliczane jego pooenie w pionie, tak aby znalaz si on
po rodku apletu w tym celu jest wykorzystywany wzr:
*#$8 *B$!%IJ *6F$!%IJ *!6C
G

154

505 praktycznych skryptw dla webmastera

Jest take tworzony nowy font, ktry bdzie wykorzystywany do rysowania napisu.
Korzystamy z czcionki z rodziny TimesRoman, ktra powinna by dostpna w wikszoci systemw. Mona si rwnie pokusi o przekazywanie nazwy czcionki w postaci
parametru apletu (tak jak np. jej rozmiar). W kodzie z listingu 90B pozostawiamy jednak t warto zapisan na stae w kodzie. W metodzie   jest rwnie tworzony, za
pomoc metody  
, obraz buforowy, ktry jest przypisywany zmiennej o nazwie 
. Wszystkie operacje rysowania bd wykonywane na tym obrazie, a dopiero
po ich cakowitym zakoczeniu obraz ten bdzie wywietlany na powierzchni apletu.
Kod wtku realizujcego procedur animacji napisu jest zawarty w metodzie ! . Znajduje si tam ptla , ktra dziaa non stop, a do zakoczenia pracy apletu, co jest sygnalizowane zmian stanu zmiennej  z  na !. W kadym przebiegu ptli
wsprzdna  napisu jest zmniejszana o warto zapisan w zmiennej , kontrolujcej szybko i pynno ruchu. Nastpnie jest wykonywane wyczyszczenie obszaru
rysowania ( "#$%&'()'()()
*+), ustawienie koloru i czcionki,
narysowanie napisu ( "#$
) & () () ,*+) oraz przeniesienie obrazu na
obszar apletu (
"#$ 
) &
() '() '() *+). W kadym przebiegu jest rwnie sprawdzane, czy wsprzdna  napisu nie jest mniejsza od wartoci -,
co by oznaczao, e napis w caoci znalaz si za lewym brzegiem obszaru apletu.
W takiej sytuacji zmieniamy wsprzdn , tak aby napis zosta przesunity cakowicie
za prawy brzeg apletu, co jest rwnoznaczne z ponownym rozpoczciem przesuwania
napisu od prawej strony do lewej.

Skrypt 91. Napis pywajcy w prawo


Opierajc si na kodzie apletu z przykadu 90., ktry wykonywa animacj napisu pyncego w lew stron, moemy utworzy aplet, w ktrym animacja bdzie si odbywaa
w przeciwnym kierunku. Zmiany nie bd due. W procedurze   musimy zmieni
pocztkow pozycj napisu, kontrolowan przez zmienn . W przypadku przykadu
z listingu 90B bya to pozycja za prawym brzegiem apletu (czyli wsprzdna o wartoci
).)), tym razem pocztkowa pozycja musi si znale za lewym brzegiem apletu, czyli bdzie to po prostu -. Kolejne zmiany musz nastpi w metodzie ! . Obecnie pozycja napisu, czyli wsprzdna , musi by w kadym ruchu zwikszana o warto zapisan w zmiennej , czyli dziaanie bdzie miao posta:
)./)+. W inny sposb trzeba take kontrolowa wyjcie napisu poza obszar
apletu. Napis zniknie bowiem cakowicie z ekranu z prawej strony, kiedy zostanie speniony warunek ))).). Po wprowadzeniu wszystkich niezbdnych
zmian otrzymamy kod widoczny na listingu 91.
Listing 91. Poziomy napis przesuwany w praw stron

/**,##%!01%2)2!%$*3 45 ! /

/ 67 !,*7

5 !5/

5*8 9  /:
5*8 9  **/:
*64
 !!"!**5*5!;6 4

Rozdzia 2. Aplety
<
"=$=!**:
 **>,= **,:
!>,=!,:
 *!:
'5!;5 :
?5 5:
@ *,! A=5 A:
4 !**' !:
*649BC
<
'BB *!  5B"CC6C
 *!  %*  56"D:
!#:
'#:
'BB!#  5B'!#CC6C
!#(-:
$<
'#?* !?B!#C:
E
 ,B"*C<
'#(-:
E
!**:
'BB!**  5B!*!*CC6C
!**+:
$<
!** , 4!B?* !?B!**CC:
E
 ,B"*C<
!**+:
E
 **>,>,BC:
 **,,BC:
'5!;5 B5!;5 =  ='#C:
5 ?5 B **>,= **,C:
5 A5@ *,!BC:
 A@ *,!BC:
 A!B'5!;5 C:
!'5 A!BC:
!,'5,BC:
!>,'5!>,B *!C:
"H!>,:
$BCBB **,F!,C
GC:
E
*649! BC
<
, , , B,!C:
, ! BC:

155

156

505 praktycznych skryptw dla webmastera


E
*649!*BC
<
!**6:
E
*6496BC
<
,BD!**C<
'B" **>,C<
"H!>,:
E
$<
, !*B+C:
E
 ,B?6*"*C<
E
"F!**:
5 A!ABA,C:
5 A';B)=)= **>,= **,C:
5 A!ABA46C:
5 A!B'5!;5 C:
5 A B *!="=$C:
 A ?5 B5=)=)=,!C:
E
E
E

Skrypt 92. Napis pywajcy w poziomie


odbijajcy si od brzegw apletu
Aplet z przykadu 90. pozwala na pynn animacj przewijania napisu w lew stron,
natomiast aplet z przykadu 91. na przewijanie napisu w praw stron. Jeli przedstawione w tych przykadach techniki poczymy ze sob, moemy uzyska efekt, w ktrym
napis bdzie przesuwa si raz jedn, raz w drug stron, odbijajc si od brzegw obszaru
apletu. Takie zadanie realizuje kod zaprezentowany na listingu 92.
Listing 92. Napis pywajcy w poziomie odbijajcy si od brzegw ekranu

/**,##%!01%2)2!%$*3 45 ! /

/ 67 !,*7

5 !5/

5*8 9  /:
5*8 9  **/:
*64
 !!"!**5*5!;6 4
<
"=$=!**:
 **>,= **,:
!>,=!,:
 *!:
'5!;5 :
?5 5:

Rozdzia 2. Aplety
@ *,! A=5 A:
4 !**' !:
*649BC
<
'BB *!  5B"CC6C
 *!  %*  56"D:
!#:
'#:
'BB!#  5B'!#CC6C
!#(-:
$<
'#?* !?B!#C:
E
 ,B"*C<
'#(-:
E
!**:
'BB!**  5B!*!*CC6C
!**+:
$<
!**?* !?B!**C:
E
 ,B"*C<
!**+:
E
 **>,>,BC:
 **,,BC:
'5!;5 B5!;5 =  ='#C:
5 ?5 B **>,= **,C:
5 A5@ *,!BC:
 A@ *,!BC:
 A!B'5!;5 C:
!'5 A!BC:
!,'5,BC:
!>,'5!>,B *!C:
"):
$BCBB **,F!,C
GC:
E
*649! BC
<
, , , B,!C:
, ! BC:
E
*649!*BC
<
!**6:
E
*6496BC
<

157

158

505 praktycznych skryptw dla webmastera


,BD!**C<
'BB" **>,H!>,CKKB")CC<
!**H!**:
E
$<
, !*B+C:
E
 ,B?6*"*C<
E
"F!**:
5 A!ABA,C:
5 A';B)=)= **>,= **,C:
5 A!ABA46C:
5 A!B'5!;5 C:
5 A B *!="=$C:
 A ?5 B5=)=)=,!C:
E
E
E

W stosunku do poprzednich przykadw nie musimy wprowadza wielu zmian. Procedura


  pozostanie w swej dotychczasowej postaci, jedyn zmian bdzie pocztkowa warto przypisywana zmiennej  kontrolujcej pooenie napisu. Tym razem bdzie to zero,
czyli po uruchomieniu apletu napis bdzie wywietlony przy jego lewym brzegu. W metodzie ! trzeba nieco zmieni sposb przesuwania napisu ot w kadym przebiegu
do zmiennej  bdzie dodawana warto zmiennej . Kierunek ruchu bdzie
kontrolowany przez znak wartoci zapisanej w zmiennej , tzn. kiedy warto
bdzie dodatnia, napis bdzie przesuwa si w prawo, natomiast kiedy warto bdzie
ujemna, napis bdzie przesuwa si w lewo. Zmiana znaku, a tym samym kierunku ruchu,
bdzie odbywaa si po kadorazowym osigniciu prawego lub lewego brzegu apletu,
czyli kiedy bdzie speniony jeden z warunkw: )))-) lub ) )'.

Skrypt 93. Teksty wpywajce raz z jednej,


raz z drugiej strony apletu
Skrypty 90. 92. pokazyway rne efekty pywajcego tekstu, w kadym przypadku do
dyspozycji by jednak tylko jeden napis. Jeli tekstw miaoby jednak by wicej, co jest
czsto spotykanym efektem, trzeba by zastosowa nieco inn realizacj apletu. Przykad
widoczny na listingu 93B pozwala na zastosowanie dowolnej liczby tekstw (nie mniej
ni dwch), przekazywanych jako parametry apletu, ktre pywaj naprzemiennie, raz
w lew, raz w praw stron.
Niezbdne jest w tym przypadku zastosowanie dodatkowych argumentw znacznika
, jego przykadowy kod jest widoczny na listingu 93A. Znaczenie argumentw
, , 
,  ,  zostao wyjanione w opisie apletu z przykadu 90. Argumentem dodatkowym jest 0, ktry definiuje liczb tekstw,
oraz argumenty w postaci 0, gdzie 0 to liczba okrelajca kolejny numer tekstu.
Wartoci argumentw s odczytywane w metodzie  , a odczytane teksty s zapisywane w tablicy  .

Rozdzia 2. Aplety
Listing 93A. Kod HTML ze znacznikiem #22.'6 z dodatkowymi parametrami

 

 
 

 !!
"+#$%& $%!
"GL!##8%!
"(M8$*#$%& %!6
"!N(
'!#()
!*!*+
,-.)
,,+))


 



Listing 93B. Teksty wypywajce naprzemiennie z lewej i prawej strony apletu

/**,##%!01%2)2!%$*3 45 ! /

/ 67 !,*7

5 !5/

5*8 9  /:
5*8 9  **/:
5*8 9 6/:
*64
 !!"!**5*5!;6 4
<
5O=$=!**=6"):
 **>,= **,:
!>,=!,=! " !:
):
PQ"!:
!"=5":
'5!;5 :
?5 5:
@ *,! A=5 A:
4 !**' !:
*649BC
<
!"!N:
"!N:
'BB!"!N  5B"!NCC6C
!"!NG:
$<
"!N?* !?B!"!NC:
E
 ,B"*C<
"!NG:
E

159

160

505 praktycznych skryptw dla webmastera


"!P"!NQ:
!:
'B+:"!N:FFC<
'BB!  5B"FCC6C
!  %*  56"FFD:
"!PH+Q!:
E
!#:
'#:
'BB!#  5B'!#CC6C
!#(-:
$<
'#?* !?B!#C:
E
 ,B"*C<
'#(-:
E
!**:
'BB!**  5B!*!*CC6C
!**+:
$<
!** , 4!B?* !?B!**CC:
E
 ,B"*C<
!**+:
E
5""!P)Q:
 **>,>,BC:
 **,,BC:
'5!;5 B5!;5 =  ='#C:
5 ?5 B **>,= **,C:
5 A5@ *,!BC:
 A@ *,!BC:
 A!B'5!;5 C:
!"BC:
E
*649! BC
<
, , , B,!C:
, ! BC:
E
*649!*BC
<
!**6:
E
*649!"BC
<

Rozdzia 2. Aplety

161

!'5 A!BC:
!,'5,BC:
!>,'5!>,B5"C:
! " !'5 " !BC:
'B)C<
5O **>,:
E
!'B+C<
5OH!>,:
E
$BCBB **,F!,C
GC:
E
*6496BC
<
,BD!**C<
'B)C<
'B5OH!>,C<
'BFF6""!,C
6"):
5""!P6"Q:
+:
!"BC:
E
5OH!**:
E
!'B+C<
'B5O **>,C<
'BFF6""!,C
6"):
5""!P6"Q:
):
!"BC:
E
5OF!**:
E
$<
, !*B+C:
E
 ,B?6*"*C<
E
5 A!ABA,C:
5 A';B)=)= **>,= **,C:
5 A!ABA46C:
5 A!B'5!;5 C:
5 A B5"=5O=$C:
 A ?5 B5=)=)=,!C:
E
E
E

Poniewa kady tekst moe mie inn dugo, przy kadej jego zmianie bd musiay
by modyfikowane rwnie wartoci zmiennych okrelajcych parametry animacji. Dlatego te obliczenia te zostay przeniesione do nowej metody o nazwie . Aktualny kierunek ruchu jest kontrolowany przez zmienn  , warto 0 oznacza

162

505 praktycznych skryptw dla webmastera

ruch w lew stron, natomiast warto 1 ruch w praw stron. Aktualnie poruszajcy
si po ekranie tekst jest zawarty w zmiennej , natomiast wsprzdna  tego tekstu
w zmiennej o nazwie 1.
Kod wtku wykonujcego animacj jest zawarty, podobnie jak we wczeniejszych
przykadach, w metodzie ! . Cz rysujca tekst na ekranie ma budow bardzo podobn
do wykorzystywanej w poprzednich przykadach, cho s wykorzystywane inne zmienne,
a pozostaa cz kodu jest rwnie zbudowana inaczej. Przede wszystkim s wykonywane rne fragmenty w zalenoci od kierunku ruchu, czyli od stanu zmiennej  . Jeeli warto tej zmiennej jest rwna 0, a zatem ruch odbywa si w lewo, w kadym
przebiegu ptli  warto zmiennej 1 jest zmniejszana o warto zmiennej .
Kiedy natomiast warto zmiennej  jest rwna 1, czyli ruch odbywa si w prawo,
w kadym przebiegu ptli do zmiennej 1 jest dodawana warto zmiennej .
Jeeli ruch odbywa si w lewo i zostanie wykryte, e tekst znalaz si poza lew krawdzi ekranu (czyli prawdziwy jest warunek 1) )-), nastpuje wymiana tekstu.
Zmiennej 1 jest przypisywany kolejny tekst z tablicy  . Numer aktualnego tekstu
jest kontrolowany przez zmienn !. Jeeli ruch odbywa si w prawo, wymiana
tekstu nastpi dopiero wtedy, kiedy cakowicie zniknie on za praw krawdzi apletu,
czyli kiedy warunek 1))).) bdzie prawdziwy.

Skrypt 94. Teksty najedajce od prawej strony


Skrypt przedstawiony na listingu 94. prezentuje jeszcze jeden efekt pywajcych napisw,
tym razem teksty nadjedaj od prawej strony ekranu, poruszajc si w lewo. Kiedy
tekst osignie lewy brzeg apletu, zatrzymuje si, a wdrwk rozpoczyna kolejny napis.
Nowy napis najeda na stary, przesaniajc coraz wiksz jego cz (rysunek 2.1), a
w kocu sam dotrze do lewego brzegu apletu, wtedy proces powtarza si z kolejnym
tekstem. Znacznik  musi oczywicie posiada wszystkie parametry okrelajce
teksty i ich liczb, tak jak zostao to pokazane w przykadzie 93. (listing 93A).
Rysunek 2.1.
Przykadowy efekt
dziaania apletu 94

Listing 94. Teksty nadjedajce z prawej strony

/**,##%!01%2)2!%$*3 45 ! /

/ 67 !,*7

5 !5/

5*8 9  /:
5*8 9  **/:
*64
 !!"!**5*5!;6 4

Rozdzia 2. Aplety
<
!O=5O=$=!**=6"):
 **>,= **,:
!>,=!,=! " !:
PQ"!:
!"=5":
'5!;5 :
?5 5:
@ *,! A=5 A:
4 !**' !:
*649BC
<
! %6BA,C:
!"!N:
"!N:
'BB!"!N  5B"!NCC6C
!"!NG:
$<
"!N?* !?B!"!NC:
E
 ,B"*C<
"!NG:
E
"!P"!NQ:
!:
'B+:"!N:FFC<
'BB!  5B"FCC6C
!  %*  56"FFD:
"!PH+Q!:
E
!#:
'#:
'BB!#  5B'!#CC6C
!#(-:
$<
'#?* !?B!#C:
E
 ,B"*C<
'#(-:
E
!**:
'BB!**  5B!*!*CC6C
!**+:
$<
!** , 4!B?* !?B!**CC:
E
 ,B"*C<

163

164

505 praktycznych skryptw dla webmastera


!**+:
E
!":
5""!P)Q:
 **>,>,BC:
 **,,BC:
'5!;5 B5!;5 =  ='#C:
5 ?5 B **>,= **,C:
5 A5@ *,!BC:
 A@ *,!BC:
 A!B'5!;5 C:
!'5 A!BC:
!,'5,BC:
!>,'5!>,B5"C:
! " !'5 " !BC:
!O):
5O **>,:
$BCBB **,F!,C
GC:
E
*649! BC
<
, , , B,!C:
, ! BC:
E
*649!*BC
<
!**6:
E
*6496BC
<
,BD!**C<
'B5O)C<
!"5":
'BFF6""!,C
6"):
5""!P6"Q:
!'5 A!BC:
!,'5,BC:
!>,'5!>,B5"C:
! " !'5 " !BC:
!O):
5O **>,:
$BCBB **,F!,C
GC:
E
$<
, !*B+C:
E
 ,B?6*"*C<
E
5OH!**:

Rozdzia 2. Aplety

165

5 A ;B)=)= **>,= **,C:


5 A!ABA46C:
5 A!B'5!;5 C:
5 A B!"=!O=$C:
5 A ;B5O=$H!,F! " != **>,H5O=!,C:
5 A B5"=5O=$C:
 A ?5 B5=)=)=,!C:
E
E
E

Technika animacji jest podobna, jak w poprzednio wykorzystywanych przykadach.


Aktualna pozycja poruszajcego si tekstu jest kontrolowana przez zmienn 1, ktra
w kadym przebiegu ptli  jest zmniejszana o warto zapisan w zmiennej
. Naley jednak pamita, e na ekranie znajduj si jednoczenie dwa napisy: jeden statyczny umieszczony u lewego brzegu apletu i drugi poruszajcy si w lewo.
Oba musz by rysowane w kadym przebiegu ptli. Tekst pierwszy, statyczny, jest zapisany w zmiennej , natomiast tekst drugi, poruszajcy si, w zmiennej . Kiedy
tekst poruszajcy si osignie lewy brzeg ekranu, a tym samym cakowicie zasoni tekst
statyczny, nastpuje zamiana, tzn. tekst, ktry si porusza (zapisany w zmiennej ),
staje si tekstem statycznym (zapisanym w zmiennej ), a ruch zaczyna kolejny napis
z tablicy  .
Podczas rysowania napisw naley dodatkowo zwrci uwag na dwie rzeczy. Pierwsza
to kolejno wyprowadzania napisw, oczywicie najpierw trzeba narysowa napis
statyczny, a dopiero potem napis poruszajcy si. Druga wana sprawa to konieczno
wyczyszczenia obszaru (prostokta), w ktrym bdzie narysowany napis poruszajcy si.
Jeli tego nie zrobimy, oba teksty po prostu nao si na siebie, tworzc nieczytelny wzr.
Oczywicie trzeba odpowiednio obliczy wsprzdne tego prostokta. Lewy grny rg
bdzie znajdowa si we wsprzdnych: x = mX, y = ystrHeight+strMaxDescent,
natomiast prawy dolny rg we wsprzdnych: x = appWidthmX, y = strHeight.

Skrypt 95. Rnokolorowe teksty


nadjedajce od prawej strony
Aplet 94. pokazywa sposb realizacji efektu napisw nadjedajcych od prawej strony
i zatrzymujcych si przy lewej krawdzi obszaru apletu. Efekt ten mona urozmaici,
zmieniajc kolor kadego napisu. Zmiany takie mog by losowe bd te kolory mog
by z gry ustalone. Kod zaprezentowany na listingu 95. zakada losowy dobr kolorw,
oddzielny dla kadej animacji, tzn. kady napis bdzie zachowywa swj kolor tylko tak
dugo, jak dugo bdzie widoczny na ekranie.
Listing 95. Rnokolorowe teksty pynce w lewo

/**,##%!01%2)2!%$*3 45 ! /

/ 67 !,*7

5 !5/

5*8 9  /:
5*8 9  **/:

166

505 praktycznych skryptw dla webmastera


5*8 9 6/:
*64
 !!"!**5*5!;6 4
<
!O=5O=$=!**=6"):
 **>,= **,:
!>,=!,=! " !:
PQ"!:
!"=5":
'5!;5 :
A!A=5A:
; 5:
?5 5:
@ *,! A=5 A:
4 !**' !:
*649BC
<
!"!N:
"!N:
'BB!"!N  5B"!NCC6C
!"!NG:
$<
"!N?* !?B!"!NC:
E
 ,B"*C<
"!NG:
E
"!P"!NQ:
!:
'B+:"!N:FFC<
'BB!  5B"FCC6C
!  %*  56"FFD:
"!PH+Q!:
E
!#:
'#:
'BB!#  5B'!#CC6C
!#(-:
$<
'#?* !?B!#C:
E
 ,B"*C<
'#(-:
E
!**:
'BB!**  5B!*!*CC6C
!**+:

Rozdzia 2. Aplety
$<
!** , 4!B?* !?B!**CC:
E
 ,B"*C<
!**+:
E
!":
5""!P)Q:
 **>,>,BC:
 **,,BC:
! %6BA,C:
'5!;5 B5!;5 =  ='#C:
5 ?5 B **>,= **,C:
5 A5@ *,!BC:
 A@ *,!BC:
 A!B'5!;5 C:
!'5 A!BC:
!,'5,BC:
!>,'5!>,B5"C:
! " !'5 " !BC:
!O):
5O **>,:
$BCBB **,F!,C
GC:
; 5BC:
5AAB"?B+-RRRG+2CC:
!AAB"?B+-RRRG+2CC:
E
*649! BC
<
, , , B,!C:
, ! BC:
E
*649!*BC
<
!**6:
E
*6496BC
<
,BD!**C<
'B5O)C<
!"5":
!A5A:
5AAB"?B+-RRRG+2CC:
'BFF6""!,C
6"):
5""!P6"Q:
!'5 A!BC:
!,'5,BC:
!>,'5!>,B5"C:
! " !'5 " !BC:

167

168

505 praktycznych skryptw dla webmastera


!O):
5O **>,:
$BCBB **,F!,C
GC:
E
$<
, !*B+C:
E
 ,B?6*"*C<
E
5OH!**:
5 A ;B)=)= **>,= **,C:
5 A!AB!AC:
5 A!B'5!;5 C:
5 A B!"=!O=$C:
5 A!AB5AC:
5 A ;B5O=$H!,F! " != **>,H5O=!,C:
5 A B5"=5O=$C:
 A ?5 B5=)=)=,!C:
E
E
E

Kolor tekstu statycznego jest przechowywany w zmiennej #, natomiast kolor


tekstu poruszajcego si w zmiennej #. Losowanie koloru odbywa si za pomoc obiektu klasy %  i jego metody  , zwracajcej losow liczb typu   z
zadanego przedziau. Pierwsze losowanie odbywa si w metodzie  , natomiast
kolejne losowania odbywaj si w ptli  realizujcej animacj za kadym razem,
kiedy poruszajcy si tekst dotrze do lewego brzegu ekranu.

You might also like