Пособие по написанию 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 (<PackageInfo>) { print; } close (PackageInfo);
Первая строка сценария является всего лишь комментарием, сообщающим интерпретатору командной строки, где находится интерпретатор языка Perl. Втораястрока сообщает браузеру протокола WAP о том, что после окончания работысценария на выходе будет создан исходный код формата WML. Далее, в исходномкоде используется функция $ENV для определения номера посылки, который декаформата WML передает сценарию как параметр.
После этого в коде используется последовательность операторов if-else дляопределения введенного пользователем номера (номер может быть толькоAD12345, единственный распознаваемый нашим приложением). Если пользователем введен именно этот номер посылки, то загружается дека AD12345.wml, которая имеет следующий исходный код: <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <head>

<meta http-equiv="Cache-Control" content="max-age=0" forua="true"/> </head> <card> <do type="accept"> <go href="../PackageTracker/PTracker.wml"/> </do> <p align="center"> Package<br/> Tracker<br/> </p> <p align="left" mode="nowrap"> Package AD12345<br/> Pickup LAS 11/13/99 12:30<br/> Left LAS 11/13/99 15:00<br/> Arrive HOU 11/13/99 21:00<br/> Delivered 11/14/99 09:00<br/> </p> </card> </wml>
В коде просто используются элементы <р> для отображения информации о посылке. В реальном приложении, в исходном его коде должен осуществляться поиск информации о посылке в базе данных, и дека, подобная описанной, создаваться в процессе работы сценария.
Если пользователь вводит неправильный номер посылки, приложение загружаетдеку BadlD.wml, имеющую приведенный ниже исходный код: <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <head> <meta http-equiv="Cache-Control" content="max-age=0" forua="true"/> </head> <card> <do type="accept"> <go href="../PackageTracker/PTracker.wml"/> </do> <p align="center"> Package<br/> Tracker<br/> <br/>Unknown Package ID. Try again. <br/><br/>For this demo the only valid Package ID is AD12345 </p> </card> </wml>
Снова исходный код деки использует тег абзаца <р> для вывода сообщения обошибке.



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