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

       

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



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

В реальном приложении сценарий языка Perl CatalogOrderWML.pl должен инициировать серию операций, таких, как подтверждение действительности номеракредитной карты, проверка списка базы данных (чтобы убедиться, что товардоступен), размещение текущего заказа в базе данных компании и так далее. Другими словами, сценарий должен взаимодействовать со средствами электроннойкоммерции компании. Таким образом, для большинства компаний создание подобного приложения, поддерживающего протокол WAP, заключается просто впостроении основанной на WML интерфейсной части для своего программногообеспечения электронной коммерции.

Сценарий CatalogOrderWML.pl просто анализирует переданные ему приложениемдля электронной коммерции параметры, создает новую деку формата WML, которую браузер использует для отображения транзакции. Исходный код сценарияCatalogOrderWML.pl приведен ниже:

#!/usr/bin/perl

require 'DeckUtils.pl';

%cgiVars = &AppUtils::ParseCGIVars();

$ItemNum = $cgiVars{"ItemNum"}; $ItemDesc = $cgiVars{"ItemDesc"}; $ShipName = $cgiVars{"ShipName"}; $ShipAddr1 = $cgiVars{"ShipAddr1"}; $ShipAddr2 = $cgiVars{"ShipAddr2"}; $ShipCity = $cgiVars{"ShipCity"}; $ShipState = $cgiVars{"ShipState"}; $ShipZip = $cgiVars{"ShipZip"};; $ShipPhone = $cgiVars{"ShipPhone"}; $BillName = $cgiVars{"BillName"}; $BillAddr1 = $cgiVars{"BillAddr1"}; $BillAddr2 = $cgiVars{"BillAddr2"}; $BillCity = $cgiVars{"BillCity"}; $BillState = $cgiVars{"BillState"}; $BillZip = $cgiVars{"BillZip"}; $BillPhone = $cgiVars{"BillPhone"}; $CardType = $cgiVars{"CardType"}; $CardNum = $cgiVars{"CardNum"};

#Do processing here...

$Deck = "Content-type: text/vnd.wap.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=\"../CatalogOrder/CatalogItem.wml\" /&gt &lt/do&gt

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

Input data:&ltbr/&gt&ltbr/&gt

\$ItemNum&ltbr/&gt \$ItemDesc&ltbr/&gt \$ShipName&ltbr/&gt \$ShipAddr1&ltbr/&gt \$ShipAddr2&ltbr/&gt \$ShipCity&ltbr/&gt \$ShipState&ltbr/&gt \$ShipZip&ltbr/&gt \$ShipPhone&ltbr/&gt \$BillName&ltbr/&gt \$BillAddr1&ltbr/&gt \$BillAddr2&ltbr/&gt \$BillCity&ltbr/&gt \$BillState&ltbr/&gt \$BillZip&ltbr/&gt \$BillPhone&ltbr/&gt \$CardType&ltbr/&gt \$CardNum

&lt/p&gt

&lt/card&gt

&lt/wml&gt";

print $Deck;

Первая строка сценария представляет собой комментарий, сообщающий интерпретатору командной строки, где находится интерпретатор языка Perl. Втораястрока сообщает интерпретатору языка, что сценарий использует в своей работедругой сценарий языка Perl DeckUtils.pl, в котором определены процедуры дляанализа параметров. После анализа параметров сценарий создает и печатаетпростую деку формата WML, перехватывая которую браузер отображает итоговуюинформацию по сделанному заказу. Как минимум, сценарий должен проверить,введены ли пользователем имя, адрес, номер товара, номер кредитной карты итак далее. Для выполнения этих действий он просто проверяет переменные наналичие нулевого значения, и если значение какой-либо из переменных равнонулю, передает управление обратно соответствующей карте, открывая и выводядеку формата WML:


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