Date: Mon, 23 Oct 2000 12:18:57 +0400 (MSD)
From: MailList: Perl в примерах
Subject: Обработка HTML форм в CGI
Обработка форм
Николай Матковский (matkovsky@ukrpost.net)
Существуют два метода отправки данных на сервер - GET и POST.
Вот как работает метод GET. После подтверждения пользователем данных
(нажатием кнопки submit), броузер обращается к требуемому CGI-скрипту
- его URL указан в параметре action тега <FORM>, при этом дописывая к
нему строку запроса - несколько пар вида имя=значение; каждое имя -
это имя элемента формы, а значение - эначение этого поля. Для
текстового поля значение - это его текст, для группы переключателей,
объединенных одним именем - значение value активного переключателя,
аналогично для выпадающего списка - значение value активного элемента
<OPTION>. Флажки включаются в список добавляемых в URL пар только в
случае, если он активен: при этом его значение будет on. После этого
броузер обращается к данному URL, при этом строка запроса доступна
скрипту через глобальную переменную QUERY_STRING.
Браузер дописывает все данные из формы к URL CGI-скрипта, которому эти
данные отправляются - URL, указанные в параметре action тега <FORM>. В
нашем примере будет составлен приблизительно такой URL:
Пару слов о тех символах, что вы видите в это URL. Вопросительным
знаком отделяется собственно URL скрипта от строки запроса - пар с
именами и значниями. Амперсанды (&) отделяют одну пару от другой.
Плюсами заменяются все пробелы в значениях полей.
Метод POST для отправки данных скрипту пользуется его стандартным
вводом (STDIN). При этом web-сервер устанавливает значение глобальной
переменной CONTENT_LENGTH в число байт в строке запроса - количество
данных, переданных скрипту.
Функция get_parameters()
Рассмотрим функцию get_parameters, которая принимает и сортирует
данные, отправленные из HTML-формы.
sub main::get_parameters {
local (*in) = shift;
local ($i, $key, $val);