Obsah
Nejv∞tÜφ v²hodou wapov²ch slu₧eb je jejich dostupnost z libovolnΘho mφsta v libovolnΘ situaci. Mobilnφ telefon m∙₧eme mφt u sebe tak°ka neustßle û zφskßme tak p°φstup k elektronickΘ poÜt∞, informaΦnφmu systΘmu podniku, jφzdnφm °ßd∙m Φi kurz∙m akciφ na burze. VÜechny tyto slu₧by vÜak vy₧adujφ, aby se WML strßnky generovaly dynamicky podle po₧adavk∙ u₧ivatele. Dnes se podφvßme na to, jak se dajφ takovΘ aplikace vytvß°et.
V p°edchozφch dφlech jsme se zab²vali v²hradn∞ tvorbou statick²ch strßnek. V jazyce WML jsme vytvo°ili strßnku a tu ulo₧ili na disk webovΘho serveru. Kdy₧ si cht∞l n∞kdo informace ze strßnky p°eΦφst, spojil se jeho mikroprohlφ₧eΦ se serverem, a ten mu zp∞t poslal p°φsluÜnou strßnku. P°i tvorb∞ wapov²ch aplikacφ nejsou serverem odesφlßny p°edem p°ipravenΘ strßnky. Pro ka₧d² po₧adavek mikroprohlφ₧eΦe se na serveru spustφ program, kter² vygeneruje WML k≤d.
Program p°itom m∙₧e reagovat na parametry zadanΘ u₧ivatelem. U₧ivatel nap°φklad zadß hledanΘ jmΘno a aplikace se pokusφ nalΘzt toto jmΘno v databßzi telefonnφch Φφsel. Vygeneruje pak WML strßnku s p°ehlednou tabulkou v²sledk∙. Tento p°φstup musφme pou₧φt u vÜech aplikacφ, kterΘ se majφ chovat interaktivn∞ a p°φpadn∞ reagovat na n∞jakΘ v Φase prom∞nlivΘ ·daje.
N∞kterΘ z t∞chto po₧adavk∙ lze samoz°ejm∞ zajistit pomocφ WMLScriptu, ten vÜak na mnoho ·kol∙ nestaΦφ. Neumo₧≥uje nßm nap°φklad p°istupovat k databßzφm nebo odesφlat e-mailovΘ zprßvy, co₧ jsou ·kony, kterΘ musφ b∞₧et na stran∞ serveru a ne p°φmo v mikroprohlφ₧eΦi.
Pro vytvß°enφ program∙, kterΘ spouÜtφ webov² server, lze dnes vyu₧φt mnoho technologiφ. Mezi dnes nejpou₧φvan∞jÜφ pat°φ jednoduchΘ skriptovacφ jazyky PHP a ASP (Active Server Pages), p°φpadn∞ JSP (Java Server Pages) nebo CGI skripty. My si ukß₧eme, jak pro psanφ aplikacφ vyu₧φt skriptovacφ jazyk PHP. Nevybrali jsme ho nßhodou. PHP je velice jednoduchΘ, rychle se uΦφ a jeho schopnosti v mnoha ohledech p°edΦφ ostatnφ technologie.
Vytvß°enφ wapov²ch aplikacφ nenφ ₧ßdnß velkß v∞da, ale p°ece jen je o poznßnφ slo₧it∞jÜφ ne₧ tvorba statick²ch strßnek. Prvnφ, co si musφme zajistit, je podpora PHP na serveru, kam umis¥ujeme WML strßnky a skripty, kterΘ je generujφ. V∞tÜina web-hostingov²ch firem mß PHP ve svΘ nabφdce, tak₧e zde nenφ problΘm. PHP je podporovßno i na n∞kter²ch web-hostingov²ch serverech, kterΘ jsou zdarma. Ve vlo₧enΘm Φlßnku se m∙₧ete doΦφst, jak jednu z t∞chto slu₧eb vyu₧φt.
Zßkladnφ myÜlenka PHP je velice jednoduchß û na libovolnΘ mφsto HTML nebo WML strßnky m∙₧eme vlo₧it p°φkazy, kterΘ webov² server provede a nahradφ jejich v²sledkem. Tyto p°φkazy se od okolnφho textu odd∞lujφ pomocφ znaΦek `<?' a `?>'. Chceme-li nap°φklad do strßnky vlo₧it aktußlnφ Φas, m∙₧eme k tomu pou₧φt nßsledujφcφ p°φkaz:
Aktualni cas: <?echo Date("H:i:s")?>
P°φkaz echo slou₧φ prßv∞ pro vypsßnφ n∞jakΘ hodnoty p°φmo do textu strßnky. Funkce Date() pak vracφ informaci o aktußlnφm datu a Φase na zßklad∞ formßtovacφho °et∞zce.
P°i generovßnφ WML strßnek pomocφ PHP musφme na zaΦßtku ka₧dΘho skriptu (programu) vygenerovat sprßvnou HTTP hlaviΦku identifikujφcφ, ₧e nßsledujφcφ data budou k≤d ve WML. Skript generujφcφ WML k≤d by proto m∞l v₧dy vyhovovat nßsledujφcφ kost°e:
<? Header("Content-Type: text/vnd.wap.wml"); echo '<?xml version="1.0"?>'; ?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.dtd"> <wml> ... </wml>
Vyu₧itφ funkce Date() ukazuje nßsledujφcφ p°φklad, kdy se do strßnky automaticky vlo₧φ informace o aktußlnφm datu a Φase.
P°φklad 1. Vlo₧enφ informace o datu a Φase do strßnky û datum.php
<? Header("Content-Type: text/vnd.wap.wml"); echo '<?xml version="1.0"?>'; ?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.dtd"> <wml> <card> <p align="center"> Dnes je: <?echo Date("d.m.Y")?><br/> Aktualni cas: <?echo Date("H:i:s")?> </p> </card> </wml>
Skript musφme ulo₧it do souboru s p°φponou .php nebo .php3, aby v n∞m webov² server hledal p°φkazy PHP.
P°i ka₧dΘm po₧adavku na strßnku se v₧dy skript znovu spustφ a provedou se v n∞m vÜechny p°φkazy. Na brßnu mobilnφho operßtora pak v₧dy dorazφ ji₧ jen Φist² WML k≤d, kter² se zkompiluje do binßrnφ podoby. Strßnka proto v₧dy ukazuje aktußlnφ datum a Φas.