Пособие по написанию WAP-сайтов

         

Подробнее о сценарии языка Perl PackageWML.pl



Подробнее о сценарии языка Perl PackageWML.pl

Как было сказано, каждый раз после ввода пользователем номера посылки, декаPtracker.wml загружает сценарий языка Perl, который и отображает информациюо текущем статусе посылки или отображает сообщение о том, что такой посылкине существует (ошибка). Исходный код сценария PackageWML.pl приведен ниже:

#!/usr/bin/perl

print "Content-type: text/vnd.wap.wml\n\n";

$Buffer = $ENV{'QUERY_STRING'};

if ($Buffer eq "AD12345") { $FileName = "../PackageTracker/AD12345.wml"; } else { $FileName = "../PackageTracker/BadID.wml"; }

open (PackageInfo, $FileName);

while (&ltPackageInfo&gt) { print; }

close (PackageInfo);

Первая строка сценария является всего лишь комментарием, сообщающим интерпретатору командной строки, где находится интерпретатор языка Perl. Втораястрока сообщает браузеру протокола WAP о том, что после окончания работысценария на выходе будет создан исходный код формата WML. Далее, в исходномкоде используется функция $ENV для определения номера посылки, который декаформата WML передает сценарию как параметр.

После этого в коде используется последовательность операторов if-else дляопределения введенного пользователем номера (номер может быть толькоAD12345, единственный распознаваемый нашим приложением). Если пользователем введен именно этот номер посылки, то загружается дека AD12345.wml, которая имеет следующий исходный код:

&lt?xml version="1.0"?&gt &lt!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"&gt

&ltwml&gt



&lthead&gt

&ltmeta http-equiv="Cache-Control" content="max-age=0" forua="true"/&gt

&lt/head&gt

&ltcard&gt

&ltdo type="accept"&gt &ltgo href="../PackageTracker/PTracker.wml"/&gt &lt/do&gt

&ltp align="center"&gt

Package&ltbr/&gt Tracker&ltbr/&gt &lt/p&gt




&ltp align="left" mode="nowrap"&gt

Package AD12345&ltbr/&gt Pickup LAS 11/13/99 12:30&ltbr/&gt Left LAS 11/13/99 15:00&ltbr/&gt Arrive HOU 11/13/99 21:00&ltbr/&gt Delivered 11/14/99 09:00&ltbr/&gt

&lt/p&gt

&lt/card&gt

&lt/wml&gt

В коде просто используются элементы <р> для отображения информации о посылке. В реальном приложении, в исходном его коде должен осуществляться поиск информации о посылке в базе данных, и дека, подобная описанной, создаваться в процессе работы сценария.

Если пользователь вводит неправильный номер посылки, приложение загружаетдеку BadlD.wml, имеющую приведенный ниже исходный код:

&lt?xml version="1.0"?&gt &lt!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"&gt

&ltwml&gt

&lthead&gt

&ltmeta http-equiv="Cache-Control" content="max-age=0" forua="true"/&gt

&lt/head&gt

&ltcard&gt

&ltdo type="accept"&gt &ltgo href="../PackageTracker/PTracker.wml"/&gt &lt/do&gt

&ltp align="center"&gt

Package&ltbr/&gt Tracker&ltbr/&gt

&ltbr/&gtUnknown Package ID. Try again. &ltbr/&gt&ltbr/&gtFor this demo the only valid Package ID is AD12345

&lt/p&gt

&lt/card&gt

&lt/wml&gt

Снова исходный код деки использует тег абзаца <р> для вывода сообщения обошибке.


Содержание раздела