Linux и UNIX: программирование в shell. Руководство разработчика
вернуться

Тейнсли Дэвид

Шрифт:

Рис. 29.11. Форма cgi, в которой используется метод post

Сценарий опрашивает различные переменные для того, чтобы установить факт ввода информации. Затем будет выполнена дальнейшая обработка, позволяющая убедиться в том, что все поля имеют значения. Если значения имеются не для всех полей, форма возвращается пользователю и отображается запрос на повторный ввод информации. Как только форма будет корректно заполнена, ее можно добавить в файл. Таким образом можно создавать небольшие базы данных.

Рис. 29.12. Данные формы были полностью декодированы с помощью метода post

Практическое применение сценария cgi

Создадим сценарий, который будет выполнять некоторую полезную обработку. Пусть это будет отчет какой-то фиктивной компании, именуемой Wonder Gifts.

Файл отчета содержит номера различных товаров, проданных в каждом квартале 1998 г. Номера товаров соответствуют отделам Stationery, Books и Gifts.

Наша задача -cоздать отчет, который основан на запросе Пользователя. Пользователь может делать выборку по номеру квартала либо по названию отдела. Необходимо выполнить дополнительную обработку, которая заключается в суммировании месячных продаж товаров по кварталам. Результаты могут выводиться на экран, принтер либо на экран и принтер одновременно.

В данном случае форма будет содержать два раскрывающихся меню и переключатель. Одно меню предназначено для выборки по кварталам, второе — для выборки по отделам. Переключатель служит для выбора устройства вывода. В нашем примере отчет выводится только на экран; переключатели выполняют демонстрационную роль.

Ниже приводится файл данных, содержащий сведения о продаже по кварталам. В нем имеются следующие поля: отдел, год, квартал, и количество различных товаров.

$ pg qtr_1998.txt

STAT

1998

1st

7998

4000

2344

2344

BOOKS

1998

1st

3590

1589

2435

989

GIFTS

1998

1st

2332

1489

2344

846

STAT

1998

2nd

8790

4399

4345

679

BOOKS

1998

2nd

889

430

2452

785

GIFTS

1998

2nd

9822

4822

3555

578

STAT

1998

3rd

8911

4589

2344

8690

BOOKS

1998

3rd

333

1489

6322

889

GIFTS

1998

3rd

2310

1483

3443

778

STAT

1998

4th

9883

5199

2344

6456

BOOKS

1998

4th

7333

3892

5223

887

GIFTS

1998

4th

8323

4193

2342

980

Сценарий формы.

$ pg gifts.cgi

t!/bin/sh

# сценарий gifts.cgi …. используется POST

echo "Content-type: text/html"

echo ""

echo "<HTML>"

echo "<BODY>"

# gifts_result.cgi используется для обработки вывода этой формы

echo "<FORM action="/cgi-bin/gifts_result.cgi" METHOD=POST>"

echo ""

echo "<HR>"

echo "<H1><CENTER>GIFTS Inc <BR>"

echo "QUARTERLY REPORT</H1></CENTER>"

echo "<HR>"

echo "Department: <SELECT NAME=dept>"

echo "<OPTION>GIFTS"

echo "<OPTION>STATIONERY"

echo "<OPTION>BOOKS"

echo "</SELECT>"

echo "Quarter End:<SELECT NAME=qtr>"

echo "<OPTION>1st"

echo "<OPTION>2nd"

echo "<OPTION>3rd"

echo "<OPTION>4th"

echo "</SELECT>"

echo "<BR><BR>"

echo "Report To Co To:<BR>"

echo "<INPUT TYPE="radio" NAME=stdout VALUE=Printer>Printer"

echo "<INPUT TYPE="radio" NAME=stdout VALUE=Screen CHECKED>Screen"

  • Читать дальше
  • 1
  • ...
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • ...

Private-Bookers - русскоязычная библиотека для чтения онлайн. Здесь удобно открывать книги с телефона и ПК, возвращаться к сохраненной странице и держать любимые произведения под рукой. Материалы добавляются пользователями; если считаете, что ваши права нарушены, воспользуйтесь формой обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • help@private-bookers.win