На самом деле, можно не возится со всем этим, а использовать модуль CGI.pm (Имеется в поставке Perl 5.004 и более поздних. Если у вас perl версии 4 или 1, нужно срочно взять на CPAN новую версию perl)
Самый большой и последний пример
Предположим мы делаем поисковую систему, тогда у нас должен быть HTML с формой и программа, которая будет выполнять поиск.
#!/usr/bin/perl -- поменяйте, как надо use CGI qw(:standard);
print "Content-Type: text/html\n\n"; # Не забудьте про два "\n"
$string = param("string"); @searchin = param("searchin"); # searchin это checkbox и его значения # возвращаются списком
# Искать мы сегодня ничего не будем print "<html> <body> <h1>Мы сегодня ничего не ищем</h1> Но, если бы искали, то: <br> Искали бы строку <b>$string</b><br>\n"; print "В <b>" . join(" ", @searchin) . "</b>\n"; print " </body> </html> ";
Да, кстати, если вы собираетесь писать в файлы с помощью CGI-программ, не забывайте про file locking (См. часть C за подробностями).
4.2 Как заставить браузеры не кешировать выдаваемый результат?
Выдавайте заголовки в таком виде:
print "Content-Type: type/sub-type\n"; # Подставьте Ваш тип/подтип print "Pragma: no-cache\n"; # Для HTTP/1.0 клиентов print "Cache-Control: no-cache\n"; # Для HTTP/1.1 print "Expires: Thu Jan 1 00:00:00 1970\n\n"; # Это уже любой броузер должен # понять
4.3 Как перенаправить клиента на другой URL?
В заголовке напишите:
print "Status: 302\n"; # Или 301. Разница состоит в том, что по стандарту 301 значит "перемещён # навсегда", а 302 -- "перемещён временно" print "Location: ВАШ Новый URL\n"; # URL должен быть указан абсолютный print "URI: ВАШ новый URL\n\n"; # Для http/1.0
Подробности: см. rfc1945(http/1.0), rfc2068(http/1.1)
4.4 Как загрузить файл на сервер?
В поставку CGI.pm входит пример file_upload.cgi. За подробностями смотрите CGI(3).
Учтите, что если у вас система, которая разделяет бинарные и текстовые файлы -- вам понадобится использовать binmode.
Также, помните, что "Русский Apache" не будет производить перекодировку multipart форм.
4.5 Как получить файл по URL?
Возьмите на CPAN библиотеку libwww-perl и смотрите lwpcook(3), там написаны основы использования библиотеки и есть примеры.
Наверное тоже одним из часто встречающихся приложений CGI являются счетчики посещений. Они стоят практически на каждой страничке, возможно даже и у вас. Но иногда вас не устраивает тот факт, что счетчик лежит где-то в другом месте... подробнее
Вам иногда хотелось наверное узнать,кто же смотрит на вашу страничку,откуда и когда ваша страничка посещалась.
Бывают такие вопросы? Кто-то считает,что ответить на них нельзя. Но вы не верьте этому расхожему мнению... подробнее
Я так решил назвать эту часть,потому что это название больше всего соответствует.
Я вам в этой части расскажу о всяких тонких и неочевидных местах и о том как с этим боротся... подробнее
CGI-программы -не самые простые в отладке,по сложности отладки они способны сравнится лишь с отладкой драйверов. Вся сложность заключается в том,что скрипт выполняется не как обычная программа. Он выполняется в специальной среде сервера,которая создается при клиентском запросе... подробнее
Когда говорят о каком-то популярном сайте,то частенько к преимуществам относят и анимацию. Действительно,когда изображение изменяется (и особенно к месту ;)),то это смотрится и пользователю нравится... подробнее