PERL: БИБЛИОТЕКА ПРОГРАММИСТА



              

PERL: БИБЛИОТЕКА ПРОГРАММИСТА - стр. 665


param("_timestamp",   scalar  localtime); param("_environs",   %ENV);

После сохранения формы в файле дальнейшая работа с ней ведется через объект­но-ориентированный интерфейс.

Чтобы загрузить объект-запрос из файлового манипулятора, вызовите метод new с аргументом-манипулятором. При каждом вызове возвращается закончен­ная форма. При достижении конца файла будет возвращена форма, не имеющая параметров. Следующий фрагмент показывает, как это делается. Он накаплива­ет сумму всех параметров "items requested", но лишь в том случае, если форма поступила не с сайтаperl.com. Напомним, что параметры _environs и _timestamp были добавлены при записи файла.

use CGI;

open(FORMS, "< /tmp/formlog")     or die "can't read formlog: $!";
flock(FORMS, 1)           or die "can't lock formlog: $!";

while ($query = CGI->new(*FORMS)) {

last unless $query->param();   # Признак конца файла

%his_env = $query->param('_environs');

Scount    += $query->param('items requested')

unless $his_env{REMOTE_HOST} =* /("|\.)perl\.com$/ } print  "Total orders:   $count\n";

Как всегда при создании файлов в сценариях CGI, важную роль играют права доступа и права владельца файла.

> Смотри также — Рецепты 18.3; 19.3.


698   Глава 19 • Программирование CGI

19.14. Программа: chemiserie

Сценарий CGI из примера 19.9 предназначен для заказа футболок и свитеров через Web. В нем использованы приемы, описанные в рецепте 19.12. Вывод не от­личается особой элегантностью или красотой, но продемонстрировать много­страничную работу в короткой программе слишком сложно, чтобы заботиться об эстетике.

Подпрограммы shi rt и sweater проверяют значения соответствующих элемен­тов формы. Если цвет или размер окажется неправильным, в элемент заносится первое значение из списка допустимых цветов или размеров.

Пример 19.9. chemiserie

#'/usr/bin/perl -w

# chemiserie - простой сценарий CGI для заказа футболок и свитеров




Содержание  Назад  Вперед