Форма - Почтой
| |
|
Данный скрипт предназначен для обработки
результатов работы HTML формы и отправки их по
почте. На основе этого скрипта можно сделать
много интересных приложений. В их числе:
- Регистрация посетителей вашего сервера
- Заявка на покупку некоторого товара
- Комментарии о работе сервера
Скрипт написан на языке perl5 и использует
технологию шаблонов.
Для создания полноценного приложения необходимо
создать:
- html документ с формой
- шаблон положительного ответа
- шаблон отрицательного ответа
- шаблон письма, отправляемого по email
html документ должен лежать в www пространстве. Для
остальных файлов нужно создать специальную
директорию в вашем домашнем каталоге (например
templates). Все шаблоны одного приложения должны
лежать в одной директории, иметь единое базовое
имя, и специфические расширения:
- *.ok - положительный ответ
- *.err - отрицательный ответ
- *.mes - шаблон письма
Скрипт вызывается из формы (поле action) как
/cgi/f2m.pl/templates/app
В этой строке "templates" указывает директорию
с шаблонами, "app" задает базовое имя шаблонов
данного приложения.
Скрипт работает следующим образом:
- получает результаты работы формы
- если не заполнено хоть одно обязательное поле,
то производит подстановку переменных в файле с
расширением ".err" и показывает сгенеренный
html текст.
- если заполнены все обязательные поля, то
подстановка производится в файле с расширением
".ok", сгенеренный текст показывается, плюс к
этому производится подстановка в файле с
расширением ".mes" и сгенеренный текст
отправляется почтой. Адресат письма указывается
в первой строке шаблона. Подмена переменных в
этой строке не производится.
Отличительной особенностью этого приложения является
сквозная передача параметров и использования файла
*.err для текста формы. Последний прием удобно использовать
в больших и сложных формах для сохранения и повторного
использования уже введенных значений.
Простой пример
Исходные файлы от этого примера. Вы можете
сохранить их на локальном диске, исправить по
желанию, и положить на свой сервер.