ЖЕМЧУЖНЫЙ САЙТ - cкриптинг на перле Леха ББ ака Alexys Спецвыпуск Xakep, номер #027, стр. 027-026-3 } # здесь мы проводим некоторые манипуляции с парами "ПАРАМЕТР:ЗНАЧЕНИЕ", зависящие от того, есть ли у параметра название или названия нет, а передано только значение (такое тоже бывает, но редко) return 1; } Для работы этой процедуры где-нибудь в начале скрипта пропиши строку: &FormInput(*input); После этого ты сможешь обрабатывать все переменные из формы. Но об этом чуть позже. А пока начнем писать скрипт, точнее - делать рыбу с помощью скрипта. Такие вещи, как генерацию title'ов, я оставлю тебе на самостоятельное изучение. Во избежание путаницы забей на values.pl - его ты сделал, пусть он лежит себе спокойно в папке cgi-bin. Займись написанием основного скрипта. $script="arts.pl"; # имя скрипта $homedir=$maindir.'arts/'; # папка, где хранятся статьи print "<html><head>\n"; # знак \n означает переход на другую строку. Попробуй без нее посмотреть html-текст, нажав куда надо в броузере :) print "<link rel=\"stylesheet\" href=$mydir/styles.css>\n"; # путь к css-файлу и его имя print "</head>\n"; print "<body>\n"; Верхушка страниц наверняка будет повторяться на всех страницах. Рекомендую запихнуть html-код шапки страниц в отдельный файл и обозвать его как header.txt. $headerfile=$maindir.'header.txt'; # переменная с путем к файлу шапки open(HEA, "$headerfile"); # открываем файл шапки на чтение @header=<HEA>; # засовываем весь контент файла в массив close (HEA); # закрываем файл foreach (@header) {print $_;} # выводим весь массив Под шапкой пусть будет горизонтальная менюшка с линками на основные разделы сайта. Ее опять же можно засунуть в отдельный файл, но только не полностью. Создай файл navi.txt, в который запихни html-код с ссылками на основные разделы: <div> <a class="navibar" href="/link1">link 1</a> | <a class="navibar" href="/link2">link 2</a> | <a class="navibar" href="/link3">link 3</a> | <a class="navibar" href="/link4">link 4</a> | <a class="navibar" href="/link5">link 5</a> | </div> В скрипте же напиши следующее: print "<table cellspacing=0 cellpadding=0 border=0 width=100% bgcolor=#99CCFF>\n"; print "<tr><td>\n"; # сюда будет вставлен контент из файла navi.txt $navifile=$maindir.'navi.txt'; # переменная с путем к файлу шапки open(NAV, "$navifile"); @navi=<NAV>; close (NAV); foreach (@navi) { print $_; # $_ - переменная по умолчанию, т.е. главная переменная текущего цикла } print "</td></tr></table>\n"; А вот теперь настала пора вспомнить об обработке форм FormInput. Если быть точнее, то генерация тысяч страниц одним скриптом возможна только благодаря передаче параметров. Когда-нибудь обращал внимание на странные адреса, типа http://winfo.org/cgi-bin/arts.pl?raz=updates&subj=sp4win2k&id=al&act=read (ссылка не работает по причине конфискации нашего сервака спецслужбами ламерикосов. Пользуясь случаем, передаем им привет :) - прим. ВИНфо-крю). Параметры скрипта будем передавать полностью в строке адреса (то, что идет после вопросительного знака). Точно так же обрабатываются параметры, передаваемые формой методом GET, но про формы и методы можно написать не только статью, но и целый журнал :). В указанном примере вместе с адресом скрипту передаются сразу 4 параметра, которые разделены амперсандом (значок &). Только все эти параметры были сгенерированы скриптом на основе файла с каким-то списком. От тебя потребуется только придумать имена таких "типа форм", а также как-нибудь придумать имя переменной, которая будет отвечать за действие скрипта. Я обычно обзываю ее как act (action - действие), поэтому и здесь будет так. В зависимости от значения act'а будет меняться контент страниц. |