запрос из файлового манипулятора, вызовите
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.
Сценарий CGI из примера 19.9 предназначен для заказа футболок и свитеров через Web. В нем использованы приемы, описанные в рецепте 19.12. Вывод не отличается особой элегантностью или красотой, но продемонстрировать многостраничную работу в короткой программе слишком сложно, чтобы заботиться об эстетике.
Подпрограммы shi rt и sweater проверяют значения соответствующих элементов формы. Если цвет или размер окажется неправильным, в элемент заносится первое значение из списка допустимых цветов или размеров.
Пример 19.9. chemiserie
#'/usr/bin/perl -w
# chemiserie - простой сценарий CGI для заказа футболок и свитеров
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий