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