Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
Flash i PHP5.
Podstawy
Autor: David Powers
Tumaczenie: Jarosaw Dobrzaski, Renata Wjcicka
ISBN: 83-246-0185-6
Tytu oryginau: Foundation PHP5 for Flash
Format: B5, stron: 744
Przykady na ftp: 2520 kB
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
O autorze ......................................................................................... 9
O recenzencie technicznym ............................................................. 10
Podzikowania ................................................................................ 11
Wstp ............................................................................................ 13
Rozdzia 1. Przygotowania do pracy z PHP ........................................................ 21
Dostp filmu Flasha do danych zewntrznych .................................................................22
Wybr waciwej technologii ....................................................................................22
Co oferuje PHP, Apache oraz MySQL? ....................................................................24
Wsppraca wszystkich elementw ...........................................................................25
PHP i ActionScipt: dalecy kuzyni ....................................................................................28
Instalowanie potrzebnego oprogramowania .....................................................................29
Instalacja w systemie Windows .................................................................................30
Instalacja w systemie Mac OS X ...............................................................................48
Konfiguracja rodowiska ..................................................................................................60
Poznawanie moliwoci PHP ...........................................................................................66
Spis treci
5
Budowanie czytnika wiadomoci RSS ...........................................................................229
Do czego suy kana RSS? .....................................................................................230
Analiza kanau RSS .................................................................................................231
Przetwarzanie kodu RSS w MagpieRSS ..................................................................233
Wywietlenie w filmie Flasha poczonych kanaw RSS ......................................244
Usuwanie elementw HTML, ktrych Flash nie potrafi zinterpretowa ................250
Opublikowanie czytnika wiadomoci w internecie .................................................251
Raport postpw .............................................................................................................252
Spis treci
7
Projektowanie tabeli przechowujcej dane o ksikach ..........................................539
Projektowanie tabel reprezentujcych autorw i wydawnictwa ..............................542
Poczenie wszystkiego w cao tabela wyszukiwania .....................................542
Przygotowania do budowy bazy danych ksigarni ........................................................543
Tworzenie bazy i nadawanie uprawnie uytkownikom .........................................543
Oglny przegld projektu ...............................................................................................547
Wypenianie bazy przykadowymi danymi .............................................................547
Szybki test systemu CMS ........................................................................................547
Tworzenie struktury bazy danych ..................................................................................549
Definiowanie tabeli books .......................................................................................550
Definiowanie tabel authors i publishers ...................................................................553
Tworzenie tabeli wyszukiwania ...............................................................................554
Tworzenie systemu zarzdzania zawartoci bazy ........................................................555
Ustalanie podstawowej struktury .............................................................................555
Budowanie prostych formularzy w XHTML ...........................................................557
Uaktywnienie formularzy za pomoc kodu PHP .....................................................571
Wstawianie danych o nowych autorach i wydawnictwach ......................................572
Tworzenie listy autorw ..........................................................................................576
Tworzenie listy wydawnictw ...................................................................................579
Edycja danych autorw i wydawnictw ....................................................................580
Wstawianie danych o nowych ksikach .................................................................587
Pobieranie danych przechowywanych w kilku tabelach ................................................596
Unikanie niejednoznacznych odwoa do kolumn ..................................................597
Stosowanie zczenia penego ..................................................................................597
Zastosowanie zczenia lewego do szukania niepenych trafie .............................601
Prace wykoczeniowe nad systemem CMS ...................................................................602
Zarzdzanie informacjami o ksikach w bazie ......................................................602
Usuwanie rekordw z wicej ni jednej tabeli ........................................................613
Zachowywanie integralnoci odwoa przy operacjach usuwania rekordw ..........615
Aktualizacja kilku rekordw ....................................................................................622
Zastosowanie SimpleXML do odczytu danych XML .............................................624
Wywietlanie zawartoci bazy danych we Flashu .........................................................630
Przygotowywanie bazy danych ................................................................................630
Komunikacja z baz danych poprzez PHP ..............................................................630
Tworzenie interfejsu we Flashu ...............................................................................637
Tworzenie kodu ActionScript adujcego rezultaty z bazy .....................................638
Duga droga za nami ......................................................................................................644
Dodatek A Gdy PHP i MySQL nie chc ze sob wsppracowa ....................... 645
Dodatek B Dostosowanie skryptw do wersji 1.0 ActionScriptu ...................... 669
Dodatek C Instalacja starszych wersji MySQL w systemie Windows ................ 675
Dodatek D Stosowanie innych jzykw w MySQL ............................................ 685
Dodatek E
Rozdzia 2.
danych;
t blisza analiza skadni PHP;
t potwierdzenie odebrania zmiennych z Flasha przez skrypty PHP;
t sprawdzenie danych z wyjcia PHP przed wysaniem wynikw do Flasha;
t sprawdzenie poprawnoci danych wejciowych;
t uycie PHP do wysania formularza we Flashu poczt e-mail.
Filmy Flasha stanowi zamknite w sobie wiaty. Mimo e mona do nich zaadowywa pliki JPG, pliki dwikowe oraz sekwencje wideo, to jedyna komunikacja klipw z zewntrznym rodowiskiem polega na zaadowywaniu strony w oknie przegldarki. Dziki poczeniu pliku Flasha z kodem PHP zyskasz bardzo wiele nowych
moliwoci, midzy innymi czenie si z baz danych, jednak najpierw musisz pozna podstawy skadni PHP.
Przede wszystkim musisz zna zasady przesyania danych do filmw Flasha, a take
sposb ich uzyskiwania z plikw flashowych. Rwnie istotna jest kontrola danych
wejciowych i wyjciowych w programie. Jak si przekonasz podczas pracy z zewntrznymi danymi, nie zawsze mona wykorzysta polecenie trace do sprawdzenia
wartoci zmiennych. Poka kilka metod ominicia tego problemu.
69
70
Pod koniec tego rozdziau przedstawi, w jaki sposb mona wykorzysta zdobyt
wiedz do utworzenia we Flashu i PHP formularza, ktry po wypenieniu zostanie wysany poczt elektroniczn do wskazanej skrzynki pocztowej.
Komunikacja
z zewntrznymi rdami danych
Istnieje kilka sposobw na komunikowanie si filmw Flasha z zewntrznymi rdami
danych. Do najwaniejszych nale:
1. LoadVars: umoliwia atwe eksportowanie i importowanie zmiennych.
70
71
71
72
72
73
6. Nad warstw title utwrz dwie nowe warstwy jedn nazwij date, drug
actions. Zwr uwag, eby przez przypadek nie umieci grafik w warstwie
actions.
73
74
kod:
//utwrz i zastosuj format tekstowy do daty:
var dateDisplay:TextFormat = new TextFormat();
dateDisplay.font = "Georgia,Times,_serif";
theDate_txt.setNewTextFormat(dateDisplay);
theDate_txt.autoSize = "left";
74
75
75
76
Jeli strona zawiera doczony arkusz stylw, bdzie moga wyglda nastpujco
(peny kod oraz arkusz stylw mona znale w pliku copyright.php, znajdujcym si
w kodach rdowych doczonych do ksiki):
Jeli zegar na serwerze jest prawidowo ustawiony, druga liczba zawsze bdzie numerem biecego roku, ktry bdzie si zmienia o pnocy 31 grudnia. Gdy spojrzysz
na kod rdowy strony w oknie przegldarki, zauwaysz, e cay kod rdowy PHP
znikn:
76
77
Mechanizm PHP analizuje kod strony i wysya ju przetworzony z powrotem do dynamicznie tworzonej strony kod XHTML. Rwnie Flash podczas publikowania filmu dynamicznie tworzy stron HTML (lub take XHTML, poczwszy od wersji MX
2004). Lini pokazan wyej mgby bez problemu doda do zwykej strony HTML
przed koczcym znacznikiem </body>. Wystarczyoby tylko zmieni rozszerzenie
z .html na .php.
Pracujc z przykadami znajdujcymi si w ksice przez wikszo czasu bdziesz
wykorzystywa PHP do formatowania danych, wysyanych nastpnie do filmu Flasha,
jednak warto doda, e techniki omawiane w ksice stosuj si take do stron XHTML.
Od momentu wydania wersji 4.3.0 PHP, technologia ta moe by uywana take jako
jzyk polece, jakkolwiek w tej ksice nie bdziemy si zajmowa tym aspektem.
Jeli chcesz dowiedzie si czego wicej o zastosowaniu PHP w pisaniu skryptw
powoki, zapoznaj si z zawartoci strony z dokumentacj PHP (www.php.net/manual/
pl/features.commandline.php).
77
78
Niestandardowe znaczniki PHP. Istnieje kilka innych metod osadzania kodu PHP
na stronie. Mimo wszystko nie polecam stosowania ktrejkolwiek z nich, jednak dla
cisoci omwi je pokrtce.
t Krtkie znaczniki: pierwotnie kod PHP oznaczano poprzez <? oraz ?>. Mimo
sposb doczania kodu PHP zaleca si jedynie wtedy, gdy dany edytor HTML
nie obsuguje adnej z poprzednich metod.
Komentowanie kodu
Jeli posiadasz dowiadczenie w programowaniu w ActionScripcie, zapewne rozumiesz konieczno dodawania komentarzy do kodu. Najkrcej mwic, komentarze
po prostu opisuj zadania poszczeglnych czci kodu. Podczas pracy zespoowej
umoliwiaj rozeznanie si w wykonanej ju pracy, natomiast indywidualnym programistom komentarze uatwiaj debugowanie i modyfikowanie programw, szczeglnie gdy powracaj do nich po kilku miesicach przerwy.
W PHP istnieje kilka metod dodawania komentarzy wszystkie zostay zaczerpnite
z innych jzykw programowania. Pierwsze dwa s takie same jak w ActionScripcie.
Komentarze w stylu C++. Pocztek komentarza jest oznaczony przez dwa prawe
ukoniki.
//To jest komentarz: nastpna linia wywietli biecy rok
echo date('Y'); //To take jest komentarz
78
79
Komentarze w stylu C. Parser PHP bdzie ignorowa kod, ktry pojawi si pomidzy znakami /* oraz */, bez wzgldu na liczb linii zawartych midzy tymi symbolami. Dziki temu mona nie tylko dodawa komentarz do kodu, ale take w razie
potrzeby uniemoliwia wykonywanie wybranych fragmentw skryptu.
/* To jest komentarz,
ktry si rozcignie
na wiele linii.
Mona take w ten sposb
chwilowo wycza
fragmenty kodu. */
Komentarze w stylu powoki systemu. PHP traktuje znak (#) tak samo jak dwa prawe ukoniki (//). Ten typ komentarza zosta zapoyczony z jzykw skryptowych.
Poniewa znak ten jest atwo dostrzegalny w kodzie, dobrze si nadaje do oznaczania
pewnych fragmentw programu.
#To jest komentarz
echo date('Y'); #To take jest komentarz
####################
# Sekcja baz danych
####################
79
80
Polecenia PHP mog by grupowane wewntrz nawiasw klamrowych ({}), przykadowo, w instrukcjach warunkowych, ptlach lub funkcjach. Mimo e w ActionScripcie powinno si umieszcza rednik po zamykajcym nawiasie funkcji anonimowych,
to w podobnej sytuacji w PHP nie mona ju tego robi.
80
81
Poprawno
Przyczyna
myVar
Niepoprawna
$myVar
Poprawna
$my Var
Niepoprawna
Zawiera spacj
$myVar1
Poprawna
$1myVar
Niepoprawna
$_1myVar
Poprawna
$my_Var
Poprawna
Unikanie sw kluczowych
PHP nie pozwala na nadpisywanie nazw wbudowanych funkcji jzyka. Ze wzgldu na
ich liczb niekiedy trudno bdzie unikn wykorzystywania sw zastrzeonych. Warto
wwczas poprzedza nazwy funkcji przedrostkami my, the lub na przykad wasnymi
inicjaami.
W tabeli 2.2 zostay przedstawione wszystkie sowa kluczowe PHP nie mona ich
stosowa do nazywania wasnych zmiennych, funkcji, klas ani staych.
81
82
Tabela 2.2. Sowa kluczowe PHP nie powinny by stosowane do nazywania funkcji i zmiennych
tworzonych przez uytkownika
Sowo kluczowe PHP
and
array()
as
breab
case
cfunction
class
const
continue
declare
default
die()
do
echo()
else
elseif
empty()
enddeclare
endfor
endforeach
endif
endswitch
endwhile
eval()
exception
exit()
extends
for
foreach
function
global
if
include()
include_once()
isset()
list()
new
old_function
or
php_user_filter
print()
require()
require_once()
return()
static
switch
unset()
use
var
while
xor
__CLASS__
__FILE__
__FUNCTION__
__LINE__
__METHOD__
Oznacza to, e jeli przez przypadek zamiast $myVar programista napisze $myvar, zmienna nie zostanie poprawnie rozpoznana. Z drugiej strony, wbudowane funkcje tego jzyka mog ju by zapisywane na wiele sposobw np. nazwy echo, Echo lub eCHo
bd w PHP traktowane tak samo.
Spraw jeszcze bardziej komplikuje fakt, e cho w przypadku ActionScript 1.0 wielko liter nie bya istotna, to ju w wersji 2.0 wprowadzono nowe, sztywne reguy
dotyczce tej kwestii.
W tej sytuacji najlepiej jest przyj, e w ActionScript oraz w PHP wielko liter jest istotna. Dlatego te w przypadku nazw zoonych konsekwentnie korzystaj z jednej konwencji nazewniczej albo uywajc tzw. notacji wielbdziej
(ang. camel case) np. myVar, albo znaku podkrelenia np. $my_var.
Sprawisz sobie duo kopotw, jeli bdziesz jednoczenie korzysta z dwch
osobnych zmiennych nazwanych $myVar oraz $myvar. Prdzej czy pniej uyjesz niewaciwej zmiennej. Ze wzgldu na fakt, e w przypadku nazw funkcji
i klas wielko liter nie ma znaczenia, tworzenie dwch zmiennych rnicych
si tylko wielkoci liter jest od pocztku skazane na niepowodzenie.
82
83
Na luzie z PHP
PHP, podobnie jak JavaScript oraz pierwotnie ActionScript, zosta zaprojektowany
w celu uatwienia programowania. Programista kodujcy w tym jzyku zosta zwolniony z obowizku pamitania o typach zmiennych. Innymi sowy, moe on najpierw zadeklarowa zmienn jako cig znakowy, a nastpnie przypisa do niej warto cakowit byoby to niemoliwe w jzykach kontrolujcych typy zmiennych
(np. w Javie).
Ta swoboda zostaa powanie ograniczona w ActionScripcie 2.0, w ktrym znalazo
si ju zalecenie deklarowania typu dla kadej zmiennej oraz funkcji. Mimo e statyczne (bd cise) deklarowanie typw moe si wyda zbyt duym ograniczeniem
elastycznoci ActionScriptu 1.0, to i tak ostatecznie oszczdza si sporo czasu, poniewa kompilator automatycznie bdzie ostrzega o jakichkolwiek potencjalnych bdach w dopasowaniu do typw zmiennych. Poza tym zyskuje si dokadn wiedz,
w ktrym miejscu popeniono bd, co oznacza, e nie trzeba przeszukiwa caego
kodu w poszukiwaniu usterek. Z drugiej strony, programici PHP5 s generalnie
przeciwni statycznemu definiowaniu typw. Szczliwie typ zmiennych nie stanowi
gwnego rda problemw, gwnie dziki zastosowaniu w PHP odrbnych operatorw dodawania oraz czenia cigw znakowych (tak jak to opisano w nastpnym
podrozdziale).
Mimo e dziki statycznemu okrelaniu typw mona unikn wielu bdw
w programie, to naley zauway, e taka kontrola jest przeprowadzana jedynie
w czasie kompilacji kodu ActionScript, czyli w czasie publikowania pliku SWF.
Kod Flasha jest tworzony dopiero w momencie uruchomienia programu i nie
mona zagwarantowa, e program zasygnalizuje bd wywoany przez zmiany
wprowadzone przez fragment PHP. Gdy pojawi si nieoczekiwane wyniki, by
moe trzeba bdzie dokona konwersji cigw znakowych otrzymanych z klasy
LoadVars na waciwy typ zmiennych. Skoro wszystkie zmienne, ktre zostay
pobrane poprzez LoadVars s zmiennymi znakowymi, niekiedy moe si okaza,
e w przypadku nieoczekiwanych wynikw bdziesz musia dokona konwersji
do waciwego typu danych.
PHP posiada osiem typw zmiennych, ktre s mocno zblione do odpowiednich typw danych znanych z ActionScriptu. Ponisza lista zawiera krtk charakterystyk
kadego z nich:
83
84
tego typu nie zapisuje si w cudzysowie. Liczby cakowite mog mie posta
dziesitn, semkow lub szesnastkow. Liczby semkowe rozpoczynaj si
od 0, natomiast szesnastkowe od 0x. Powoduje to istotne konsekwencje
w przypadku liczb, ktre mog si rozpoczyna od 0 (numery telefonw lub
identyfikatory). Aby unikn problemw, warto przechowywa takie wartoci
jako cigi znakowe.
2. Liczby zmiennopozycyjne (double): Ten typ moe by zapisany albo przy
uyciu kropki dziesitnej (np. 2.1 lub 98.6), albo wykorzystujc notacj
matematyczn (np. 0.314E1). Podobnie jak liczby cakowite, liczby
zmiennopozycyjne nie s umieszczane w cudzysowach. W rozdziale 3.
omwimy dokadniej ten typ liczb.
3. String: ten typ jest sekwencj znakw, ktr umieszcza si albo midzy
liczba cakowita 0;
pusty cig znakowy ('' lub "", bez adnych spacji w rodku);
t NULL.
84
85
variables.php.
2. Wpisz nastpujcy kod:
<?php
$myVar = '12';
$type = gettype($myVar);
echo "Warto: $myVar Typ: $type ";
?>
85
86
w nastpujcy sposb:
$myVar = '12' + 1;
zaskakujcy. Wywietlon wartoci jest 13, jednak oznaczon jako typ double.
Dzieje si tak dlatego, e dodalimy liczb z kropk dziesitn. W takich
sytuacjach, jeli po kropce dziesitnej wystpuje zero, wwczas cz
dziesitna jest pomijana, niemniej jednak typ danych nadal pozostaje double.
86
87
11. Tym razem poka, w jaki sposb spowodowa, by zmienna $myVar przyja
typ Boolean. Niekiedy bdziesz chcia wykona fragment kodu jedynie po
13. Teraz zmie drug lini kodu, aby wygldaa nastpujco (upewnij si,
e dokadnie j skopiowae):
$myVar = 'false';
87
88
w drugiej linii. W ten sposb cig znakowy sta si sowem kluczowym jzyka
i wszystko powinno ju zadziaa poprawnie.
Zauwa, e PHP, podobnie jak ActionScript, nie dodaje adnych spacji pomidzy
cigami znakowymi podczas ich czenia. Liczba biaych znakw pomidzy cigiem
znakowym a operatorem konkatenacji jest ignorowana, tote jeli pomidzy nimi ma
si znale spacja, naley j doda albo do prawego, albo do lewego cigu.
Jedn z zalet korzystania z osobnego operatora zczenia dla cigw znakowych w PHP
jest unikanie problemu zwizanego z dodawaniem liczby do cigu znakowego (problem wystpowa w ActionScripcie 1.0). Jeli korzysta si z operatora +, ActionScript
przypisze pierwszestwo cigom znakowym, jednak PHP po prostu zamienia cigi
znakowe na odpowiadajce im wartoci liczbowe.
88
89
PHP pjdzie nawet dalej. Jeli jest w stanie wydoby liczb z pocztku cigu znakowego, to zwyczajnie doda j do drugiego skadnika sumy.
'10 zielonych buteleb' 1 //PHP zwrci 9
'zielonych buteleb 10' 1 //PHP zwrci -1
Zauwa, e w tym przykadzie tekst wewntrz cigu znakowego jest tak naprawd
ignorowany. W pierwszym przypadku PHP zwrci po prostu 9, zamiast 9 zielonych
butelek, natomiast w drugim przykadzie liczba 10 zostanie pominita, gdy nie rozpoczyna ona cigu znakw, ktry w tym wypadku jest zamieniany na liczb 0.
Pewnym problemem w PHP moe by fakt, e operator zczenia jest tak niewielki,
e niekiedy mona go nieumylnie pomin (zarwno podczas przegldania kodu, jak
i podczas jego kopiowania). Czsto te mona si pomyli jednoczenie kodujc
w ActionScripcie oraz w PHP. Dlatego te zwracaj uwag, z ktrego operatora konkatenacji korzystasz, w przeciwnym przypadku mog powstawa trudne do wykrycia bdy.
Apostrofy czy cudzysowy? Moge zauway, e w wikszoci przykadw w tym
rozdziale wykorzystywaem apostrofy, mimo e w czwartej linii poprzedniego fragmentu kodu zastosowaem cudzysw. Istnieje ku temu kilka powodw, cho programici PHP nie zawsze przestrzegaj tych zasad:
t To, co jest zawarte pomidzy apostrofami jest traktowane jako staa znakowa
(string literal).
t Cudzysw wskazuje parserowi PHP, e przechowuje elementy, ktre naley
przetworzy.
Prosty przykad poniej powinien nieco uatwi zrozumienie tej reguy. Jeli chcesz
przetestowa dowolny z poniszych przykadw w swojej przegldarce, nie zapominaj, e cay kod PHP musi by zawarty midzy otwierajcym i zamykajcym znacznikiem (<?php oraz ?>):
$name= 'David';
echo 'Cze, $name'; //Wywietla 'Cze, $name'
echo "Cze, $name"; //Wywietla 'Cze, David'
89
90
Powodem, dla ktrego w drugim przypadku zostanie wygenerowany komunikat o bdzie, jest fakt, e interpreter PHP traktuje drugi znak apostrofu (pomidzy t a s) jako
znak zamykajcy cig znakowy. Mona te zaradzi temu w inny sposb poprzez
uycie znakw specjalnych, ktre spowoduj, e parser PHP potraktuje dany cig liter
w szczeglny sposb. Wszystkie znaki specjalne rozpoczynaj si od lewego ukonika (tzw. znaku sterujcego). Gdy umiecisz taki ukonik przed apostrofem, parser PHP
nie potraktuje tego apostrofu jako znaku zamykajcego i cig znakowy zostanie wywietlony tak jak zaplanowano.
echo 'It\'s fine'; //wywietli si prawidowo
\"
Cudzysw
\n
Nowa linia
\r
Powrt kursora
\t
Tabulator
\\
Lewy ukonik
\$
Znak dolara
\{
\}
\[
\]
90
91
Konstruowanie formularza
Formularz mona utworzy albo samodzielnie, na podstawie podanych niej wskazwek, albo jeli chcesz si skoncentrowa na PHP i ActionScripcie wzorujc
si na pliku biodiverse05.fla, dostpnym w materiaach rdowych tego rozdziau.
Utworzenie takiego formularza jest doskona okazj do wyprbowania wersji 2.
komponentw TextInput oraz TextArea, po raz pierwszych uwzgldnionych we Flashu
MX 2004. Niemniej jednak nie bd z nich tutaj korzysta, gdy zapewne cz Czytelnikw nadal uywa Flasha MX. Co wicej, Macromedia ogosia, e kolejne istotne
zmiany w architekturze komponentu zostan wprowadzone dopiero wraz z now wersj Flasha. Dlatego te, zamiast gotowych komponentw wolaem tutaj uy zwykych pl statycznych oraz dynamicznych. Gdy ju podstawowe funkcje PHP i Flasha
bd dziaay poprawnie, moesz dostosowa aplikacj do wykorzystania odpowiednich komponentw.
91
92
Umiejscowienie plikw FLA zaley wycznie od Ciebie. Radz jednak, aby przechowywa je w osobnym folderze w katalogu gwnym serwera. W tym celu
kliknij File/Publish Settings (CTRL+SHIFT+F12 w Windows lub OPT+SHIFT+F12
w systemie Mac OS), a nastpnie ustaw ciek do plikw SWF oraz HTML
w katalogu gwnym serwera. W przypadku systemu Windows katalogiem tym
bdzie C:\htdocs\phpflash\ch02, natomiast w systemie Mac OS bdzie to
analogiczny folder Sites.
Jeli korzystasz z plikw rdowych, zapisz kady z nich pod nazw biodiverse.fla.
W ten sposb zawsze w razie jakichkolwiek problemw bdziesz mg odzyska poprzedni wersj.
1. Wykorzystaj opisany na pocztku tego rozdziau dokument Flasha, sucy
92
93
strony, tote dla tego pola naley zarezerwowa szczeglnie duo miejsca.
Aplikacja ta jest jedynie pewnym przykadem, wic uyem jednoliniowego
pola dla adresu uytkownika. W rzeczywistej aplikacji naleaoby uwzgldni
osobne pola na nazw miasta, kod pocztowy itd.
5. Utwrz przycisk, za pomoc ktrego uytkownik bdzie zatwierdza dane
wprowadzone do formularza, nazwij go submit_btn i umie go na dole
93
94
Rysunek 2.2.
Rozmieszczenie
trzech dynamicznych
pl tekstowych,
wywietlajcych
wiadomoci
o bdach
w klatkach 5. oraz 15. Dziki temu zarwno pola formularza, jak i sam tekst
zostan skopiowane do obu klatek. Wszystkie elementy powinny znale si
w klatce 5., natomiast w klatce 15. nie powinno by adnych pl, usu wic
oprcz logo, tytuu i pola z dat ca zawarto z klatki 15.
94
95
95
96
}
if (email_txt.text.indexOf("@") == -1) {
error2_txt.text = "Podaj waciwy adres e-mail";
missing = true;
}
if (comments_txt.text = "") {
error3_txt.text = "Nie wpisae adnych bomentarzy";
missing = true;
}
//jeli missing jest rwne true zwr false
//w przeciwnym razie zwr true
return missing ? false : true;
Kod ActionScript przedstawiony w ksice stosuje statyczne (cise) wpisywanie daty za pomoc skadni uwzgldnionej po raz pierwszy w ActionScripcie 2.0. Jeli korzystasz z Flasha MX lub po prostu wolisz wpisywa dat
w klasyczny sposb, nie podawaj typw zmiennych. W dodatku B znajduj si
wskazwki, w jaki sposb dostosowywa skrypty do wersji MX Flasha.
Aby uzyska wicej informacji na temat definiowania typw zmiennych, zajrzyj do
ksiki Foundation ActionScript for Flash MX 2004 autorstwa Shama Bhangala
(wyd. friends of ED).
96
97
97
98
11. Jeszcze raz przetestuj plik filmowy. Wpisz dowolne sowo w polu Imi,
a nastpnie kliknij przycisk Wylij. Nad polem Imi nie powinno by adnej
98
99
14. W warstwie static text oraz form elements zaznacz klatk 35. (t, ktr
nazwae failure w kroku 2.) i wstaw klatki kluczowe. Utwrz podobny
15. Zaznacz 35. klatk warstwy actions i wstaw klatk kluczow. Otwrz panel
Actions, a nastpnie przypisz funkcj backToForm przyciskowi Powrt, tak jak
(tu koo linii 36.). W ten sposb sterowanie dziaaniem programu zostanie
przekazane do klatki nazwanej theForm.
function bacbToForm():Void {
//przejcie do gwnego formularza
gotoAndStop ("theForm");
}
Moesz teraz porwna swj kod oraz stron graficzn klipu filmowego
z plikiem biodiverse04.fla, znajdujcym si w materiaach rdowych
ksiki. W nastpnym podrozdziale zajmiemy si istotnym zagadnieniem
wysyania i otrzymywania danych z PHP za pomoc klasy LoadVars.
99
100
przesyanie danych jest szybsze. Mona take tworzy rne instancje klasy LoadVars
w odpowiedzi na rne zdarzenia dziki temu, jak si okae podczas pracy z bazami
danych, o wiele atwiej postpowa z duymi ilociami danych wejciowych. Tote
zalety korzystania z LoadVars s znacznie wiksze od potencjalnej niedogodnoci kadorazowego wpisywania wywoania funkcji w kodzie.
Przed wykorzystaniem metod klasy LoadVars naley utworzy nowy obiekt. Dobr
praktyk jest tworzenie osobnych instancji sucych do wysyania i otrzymywania danych. Dziki temu atwiej kontrolowa wejcie i wyjcie programu.
1. Nadal moesz pracowa z tym samym plikiem lub te po prostu wykorzysta
100
};
101
} else {
gotoAndStop("failure");
failure_txt.text = this.reason;
}
Jeli warto zmiennej sent nie jest rwna OK, dziaanie pliku filmowego
przejdzie do ujcia oznaczonego failure i ustawi zawarto failure_txt
na dowoln warto otrzyman ze zmiennej reason.
3. Do tej pory zajmowalimy si odpowiedzi ze skryptu, jednak najpierw
101
102
102
103
103
104
(opcjonalne).
Teraz jedynie trzeba zebra odpowiednie informacje i przekaza je do funkcji mail(),
tote zabierzmy si do pracy!
1. Teoretycznie, mona by bezporednio w nawiasie za nazw funkcji umieci
104
105
fragment:
$message .= 'Email: '.$_POST['email']."\n\n";
105
106
106
107
107
108
108
109
11. Zanim umiecisz plik SWF na zdalnym serwerze, zmie ciek do pliku, tak
Zakada si tutaj, e plik SWF oraz kod PHP zostanie umieszczony w tym
samym folderze na zdalnym serwerze, tote jeli pragniesz umieci skrypty
w innym folderze, dostosuj adres do odpowiedniego katalogu.
12. Po wysaniu testowej wiadomoci sprawd swoj poczt. Twoja skrzynka
109
110
znakowych.
t PHP oprcz dwch identycznych z ActionScriptem metod wstawiania
komentarzy (// oraz /* */) stosuje jeszcze trzeci sposb (#).
t Zmienne, ktre zostay wysane przez klas LoadVars, mona pobra poprzez
Mimo e zaszlimy ju tak daleko, nadal pozostaj pewne rzeczy do zrobienia. W nastpnym rozdziale dowiesz si czego wicej o operatorach arytmetycznych, funkcjach matematycznych oraz instrukcjach warunkowych PHP. Z pewnoci ucieszysz
si na wie, e wikszo z nich bdzie dziaa tak samo jak w ActionScripcie.
110