W@PovΘ aplikace

Ji°φ Kosek


Obsah

Prvnφ kroky v PHP
P°edßvßnφ hodnot ze vstupnφch polφ
Ud∞lejme si vlastnφ chat
Co bude p°φÜt∞
Umφst∞nφ strßnek na web-hostingovΘm serveru zdarma
ZajφmavΘ odkazy

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.

Prvnφ kroky v PHP

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.

Obrßzek 1. Zobrazenφ aktußlnφho Φasu na strßnce

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.

⌐ Ji°φ Kosek 2000-2001