Сегодня такие вещи как гостевая
книга, поиск по серверу, форма для отправки сообщений -
неотъемлемый атрибут практически любого серьезного сайта.
Проблема внедрения этих и других прибамбасов, разумеется,
всячески возбуждает воображение начинающего вебмастера, лишая
его сна, аппетита и тяги к пиву. К сожалению, изучение HTML-исходников
страниц конкурентов ничего, кроме ссылок на некий "cgi-bin", не
дает, да еще в телеконференциях иногда встречается упоминание о
каких-то cgi-скриптах. Эта сатья и посвящена основам
использования этих самых cgi-скриптов во славу и процветание
вашего сайта.
Для начала, думаю, надо разобраться с понятиями (вообще разборки
и понятия - сегодня очень актульно :-)). CGI-скрипт - это
программа, которая выполняется на Web-сервере по запросу клиента
(то есть посетителя Web-сайта). Программа эта принципиально
ничем не отличается от обычных программ, которые установлены на
вашем компьютере - будь то MS Word или игра Quake. CGI - это не
язык программирования, на котором написан скрипт, а Common
Gateway Interface - специальный интерфейс, с помощью которого и
происходит запуск скрипта и взаимодействие с ним.
Правда есть один довольно неприятный момент. На сервере, где
находится ваш сайт, должно быть разрешено выполнение
cgi-скриптов. Дело в том, что скрипт, как и любая другая
программа, может выполнять системные команды на сервере, что
представляет потенциальную угрозу безопасности. Как сказал один
мой знакомый админ: "Одними cgi-скриптами я могу взломать
систему за 5 минут". Так что если вы разместили свой сайт на
бесплатном сервере, например, Xoom или Chat.Ru, то вы не сможете
запускать скрипты. Впрочем, некоторые бесплатные сервера
допускают использование CGI, например, I-Connect. Ну, а если вы
платите за размещение страницы, то, как правило, использование
cgi-скриптов разрешено (если нет - то и платить провайдеру за
поддержку страницы, на мой взгляд, не стоит).
Как работает CGI-скрипт? Я, конечно, могу процитировать
какое-нибудь техническое руководство, но пользы от этого будет
мало. Поэтому расскажу, как все происходит, своими словами. Итак,
посетитель вашей страницы заполняет поля формы, например, для
записи в гостевую книгу. После этого он нажимает кнопку
"Submit", которая и запускает cgi-скрипт. Скрипт выполняет
запрограммированные действия - в данном случае считывает данные
из формы и пишет их в файл гостевой книги - и посылает в броузер
посетителя обычный HTML-код, например, сообщение "Спасибо, что
вы оставили запись в гостевой книге".
Преимуществ CGI-скриптов перед JavaScript и Java на мой взгляд,
три, и они весьма значительны:
" так как программа выполняется сервером, нет никакого значения,
какой у посетителя броузер - древний Lynx или новейший Internet
Explorer. Нет никаких глюков и сообщений об ошибках;
" cgi-скрипты позволяют реализовать гораздо более широкий набор
функций;
" код cgi-скрипта закрыт для конкурентов :-)
На каком же языке может быть написана CGI-программа? Ответ вас
приятно удивит: практически на любом. Главное, чтобы сервер мог
выполнить эту программу, то есть на сервере должен быть
установлен компилятор или интерпертатор соответствующего языка
программирования. Для систем на базе Unix это обычно C/С++, Perl,
Shell; для серверов под управлением Windows NT - те же Perl,
С/С++ и любая Windows-система программирования, поддерживающая
написание cgi-приложений, например, Visual Basic или Delphi.
Лично я предпочитаю язык Perl. Он является интерпретируемым, то
есть программы на Perl не требуют компиляции. Это очень удобно:
вы отлаживаете программу на своей домашней машине (где, к
примеру, установлена Windows), а затем просто копируете ее на
сервер (где, скорее всего, установлен один из клонов Unix -
FreeBSD, Linux, Sun Solaris, HP-UX и т.п.). При смене провайдера
проблем с переносом скриптов также не будет.
Если же вы решите использовать компилятор, например, C/C++, то
вам нужно будет компилировать исходный текст программы на
сервере, для чего необходим telnet-доступ к серверу, который
провайдеры давать очень не любят.
"Да, но я не знаю Perl" - скажете вы. Ха! Для того, чтобы
наладить работу скриптов на вашем сайте, знания языка
программирования особенно не нужно. В Сети лежит просто
немеренное количество абсолютно бесплатных скриптов на любой
вкус - от гостевых книг до сложных баз данных. Все, что вам
нужно - хотя бы начальные знания английского языка. Скачать
любой скрипт можно с сайта CGI-Resources.Com. Это
специализированный каталог, содержащий ссылки на тысячи скриптов
на самых разных языках программирования.
Предположим, вы решили использовать скачанный из Сети скрипт.
Чтобы он у вас нормально работал, нужно сделать следующее:
" в начале скрипта вам нужно будет указать некоторые данные,
необходимые для запуска скрипта, например, путь к интерпретатору
Perl (обычно /usr/local/bin/perl/ или просто /usr/bin/perl/),
URL вашего сайта, имя файла, в который будут записываться
результаты выполнения скрипта и т.п. Все строки, которые нужно
заменить, обычно выделены комментариями, так что вы их легко
найдете
" В зависимости от конфигурации Web-сервера, имя скрипта должно
иметь определенное расширение и/или скрипт должен находиться в
определенном каталоге. Например, имя скрипта должно иметь
расширение .cgi и скрипт должен лежать в каталоге cgi-bin.
Проконсультируйтесь у администратора вашего сервера о
требованиях, предъявляемых к скриптам.
" Так как скрипт - это программа, нужно присвоить ему атрибут "исполняемый".
" Если скрипт пишет данные в какой-нибудь файл (например, файл
гостевой книги), то этот файл должен быть доступен для записи.
Статья Станислава Жаркова
Pro.Net.ru
Если у Вас не коммерческий проект, что и подразумевается для
начинающнго вебмастера, то Вы можете воспользвоваться бесплатным
CGI-хостингом. То есть, получить быстро и бесплатно гостевые
книги, доски объявлений, чаты и прочее... (*Предупреждение!
Не удалите эту ссылку: любопытные статьи, шокирующие факты,
развлечении: http://tebea.ru
*).
Быстро и легко создайте себе, что хотите 14 CGI Scripts. X Point
CGI
Велеколепное место, если Вы не знаете CGI или у вас нет доступа
к CGI. Вы сможете создать себе WWWBoard, Free For All Links,
Polls, Counters, Guestbooks, Clocks, Postcards, Search Engines,
and LOTS more! CGI For Me
http://www.cgiforme.com/
Еще один отличный сервис включает random images, browser
redirections, random links, random quotes, and a few other
things. CGI Free
http://www.cgi-free.com/