Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #27, ФЕВРАЛЬ 2003 г.

ЖЕМЧУЖНЫЙ САЙТ - cкриптинг на перле

Леха ББ ака Alexys

Спецвыпуск Xakep, номер #027, стр. 027-026-1


(alex-sun@mtu.ru)

В результате долгой муторной работы типа сканирования и распознавания книжки оказалась у тебя куча интересных статей, которыми ты не прочь поделиться с другими. Ходить и спрашивать, кому надо, кому нет, - не пойдет, вариант спам-рассылки всем подряд неплохой, но за это можно и люлей неплохих схватить. Остается вариант выкладывания всего этого хозяйства на сайте. А как его сделать так, чтобы и не слишком долго париться с созданием сайта, но при этом чтобы он симпатично смотрелся и, может, даже принес немного денег? Заинтригован? Тогда читай об одном из таких методов - методе написания cgi-скрипта на языке Перл.

Нахрена учить чего-то еще?

Да, я точно так же спрашивал одного друга, который меня надоумил заняться перлингом :). К тому моменту я владел HTML уже почти в совершенстве и знал, что любую страницу по готовому шаблону смогу сделать за минуту-другую. Но как-то раз приперло меня немного поменять дизайн на сайте, который состоял на тот момент из страниц эдак ста. Весь мой энтузиазм по редизайну закончился после десятой паги ;). А таких еще предстояло много. Вот тогда я в экстренном порядке вытащил другана и запряг его в общих чертах объяснить мне, что как работает.

В переводе с инглиша "скрипт" означает сценарий. CGI-скрипт - это не только сценарий, а полноценная программа. Чем будут твои скрипты, зависит от твоего желания и умения. Обрабатывая полученные данные, скрипт выдает результаты работы. В отличие от JavaScript, который является "client-side application", то есть приложением, выполняющимся у клиента, на наличие CGI-скриптов броузеру просто положить. CGI-шники исполняются на сервере, а броузер лишь получает ответ в виде результата работы скрипта, чаще всего представленного как уже знакомый до боли HTML.

Синтаксис и права

Любой скрипт на перле начинается с указания места, где находится обработчик perl:

#!/usr/bin/perl

На разных серваках этот путь может немного отличаться, но на большинстве юниховых серваках он именно такой. На крайняк можно либо спросить хостера, либо, воспользовавшись shell'ом (если такой будет), вбить команду whereis perl. А еще надо указать, в какой форме должен будет передаваться ответ от скрипта броузеру. Ответ может быть разным - и HTML-текст, и обычный текст, и картинки разных форматов, и музыка, и что твоей душе угодно.

print "Content-type: text/html; charset=windows-1251\n\n"; # - для выдачи ответа в виде html-текста с кодировкой 1251 (кириллица наша).

Если передаваемые данные будут состоять из разных частей, то нужно указывать тип multipart:

print "Content-type: multipart/alternative; boundary=osdjgsdihgdkjdfklh\n\n"; # - boundary - это разделитель, в его значение надо ввести как можно более бестолковый набор символов.

Для работы скриптов на юниховых серваках необходимо указать права доступа к ним. Делается это разными способами:

в системной утилите FTP: chmod права_доступа имя_файла (chmod 0755 myscript.cgi);

при помощи ftp-клиента, например, BPFTP:

Чаще всего права на скрипт должны выглядеть как 755 (если непонятно, что это - посмотри описалово к юниховой команде chmod), то есть - полный доступ владельцу и разрешение на чтение и выполнение всем остальным, но у некоторых хостеров требования к правам другие, поэтому поинтересуйся, что нужно выставлять на твоем хостинге. Хранятся перловые cgi-шники отдельно от обычных страниц и файлов - обычно в папке cgi-bin.

Содержание  Вперед на стр. 027-026-2