Сегодня
такие вещи как гостевая книга, поиск
по серверу, форма для отправки
сообщений - неотъемлемый атрибут
практически любого серьезного сайта.
Проблема внедрения этих и других
прибамбасов, разумеется, всячески
возбуждает воображение начинающего
веб-мастера, лишая его сна, аппетита и
тяги к пиву. К сожалению, изучение 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. Проконсультируйтесь у
администратора вашего сервера о
требованиях, предъявляемых к
скриптам.
- Так как скрипт -
это программа, нужно присвоить ему
атрибут "исполняемый".
- Если скрипт пишет
данные в какой-нибудь файл (например,
файл гостевой книги), то этот файл
должен быть доступен для записи.
Если
у Вас не коммерческий проект, что и
подразумевается для начинающего веб-мастера,
то Вы можете воспользоваться
бесплатным CGI-хостингом. То есть,
получить быстро и бесплатно гостевые
книги, доски объявлений, чаты и
прочее...