Forum Webscript.Ru

Программирование => Perl => Тема начата: Drow Elf от 16 Марта 2002, 07:47:31

Название: CGI -> SSI
Отправлено: Drow Elf от 16 Марта 2002, 07:47:31
Спасите!!! У меня CGI скрипт вываливает страницу, в этой странице я делаю несколько Includes, как сделать чтобы сервак их читал, директория, где находится скрипт имеет Includes.
Название: CGI -> SSI
Отправлено: YA от 16 Марта 2002, 11:12:00
Может у тебя для данной директории установлен параметр не "Includes", а "IncludesNOEXEC"? Он запрещает исполнение сценариев CGI командами #exec и #include.

Но, скорее всего, ошибка(и) в самих CGI?
Название: CGI -> SSI
Отправлено: YA от 16 Марта 2002, 11:14:53
Стоп, может я не так понял?.. Если у тебя CGI генерирует страницу с директивами SSI, то они и не должны работать!
Название: CGI -> SSI
Отправлено: ЖеньКа от 16 Марта 2002, 11:52:51
Цитировать
CGI генерирует страницу с директивами SSI, то они и не должны работать!


Истину глаголишь

Drow Elf расскажи что именно надобно - в SSI однозначно должна помочь :)
Название: CGI -> SSI
Отправлено: Drow Elf от 17 Марта 2002, 07:03:55
Вот в этом и проблемма, что скрипт создает документ, а в нем директивы :( есть какие-нибудь идеи?
Название: CGI -> SSI
Отправлено: YA от 17 Марта 2002, 11:45:23
Цитировать
есть какие-нибудь идеи?

а) избавиться от этих директив вообще
б) написать свой парсер (что мешает в скрипте, который создает этот документ, обрабатывать самому эти директивы?)
в) воспользоваться для этого готовым модулем (каким - не помню, поищи на форуме, кажется уже было) - но это лишняя нагрузка
Название: CGI -> SSI
Отправлено: ЖеньКа от 17 Марта 2002, 21:37:05
Drow Elf К "Я" добавлю ещё создавать документ без скрипта...
Название: Тут что, одни бакланы?
Отправлено: SteelRat от 17 Марта 2002, 22:12:55
кидай в корень сайта .htaccess с таким содержанием:

#Вырезка мз моего:
# -Turn on SSI-
AddType text/html .shtml .shtm .htm .html .sht .ht
AddHandler server-parsed .shtml .shtm .htm .html .sht .ht
Options Indexes FollowSymLinks Includes All
Название: CGI -> SSI
Отправлено: ЖеньКа от 17 Марта 2002, 22:16:31
Цитировать
Тут что, одни бакланы?

Да нет, не одни ;), ОДИН ;))
Он пытается слить cgi & ssi, баклан ;))) а не просто не может ssi обработать ;)
Название: CGI -> SSI
Отправлено: YA от 17 Марта 2002, 22:24:23
Цитировать
Тут что, одни бакланы?

Это в рамках самокритики? Не поможет твой .htaccess
Цитировать
AddHandler server-parsed .shtml .shtm .htm .html .sht .ht

И что во всех таких файлах у тебя есть директивы SSI? Нет?
Неслабо же ты сервер нагружаешь :(
Цитировать
Options Indexes FollowSymLinks Includes All

"Indexes FollowSymLinks Includes" - здесь совершенно лишние. Ты их всех (и не тоько их) параметром "All" включаешь.
Название: PS:
Отправлено: SteelRat от 17 Марта 2002, 22:29:02
Замени:
AddType text/html .shtml .shtm .htm .html .sht .ht .pl .cgi
AddHandler server-parsed .shtml .shtm .htm .html .sht .ht  .pl  .cgi
Название: [b]YA[/b]
Отправлено: SteelRat от 17 Марта 2002, 22:33:03
Options Indexes FollowSymLinks Includes All - Я знаю, но в одной из версий Russian Apache был такой баг, что оно не работало, с тех пор и осталось.

AddHandler server-parsed .shtml .shtm .htm .html .sht .ht - Я, во-первых, плачу за хостинг. Во-вторых, это, уже не моя строка. Я же не знаю, что у него там за расширения!

ВОТ.
Название: ЗЫ:
Отправлено: SteelRat от 17 Марта 2002, 22:55:39
Попробовал на серваке - действительно не работает.
Стоит просто открывать в соответствующих скриптах файлы и вставлять их содержимое. (функции open, print..)
Название: RE2:
Отправлено: SteelRat от 17 Марта 2002, 23:00:37
ЯТочнее работает, но не совсем, как хотелось бы...
Название: CGI -> SSI
Отправлено: YA от 17 Марта 2002, 23:03:48
SteelRat
Цитировать
Options Indexes FollowSymLinks Includes All - Я знаю, но в одной из версий Russian Apache был такой баг, что оно не работало, с тех пор и осталось.

Очень странно. Но я думаю, что это уже в далеком прошлом. Сечас нет никакого смысла так писать.
Цитировать
AddHandler server-parsed .shtml .shtm .htm .html .sht .ht - Я, во-первых, плачу за хостинг.

Все платят. И, именно по этому, стараются минимизировать нагрузку - в конечном счете это (пусть и незначительно) будет влиять на скорость загрузки твоих страничек.
Цитировать
Во-вторых, это, уже не моя строка. Я же не знаю, что у него там за расширения!

Что значит не твоя? Ты платишь и не знаешь что там за строки и расширения? :) Этой строкой ты говоришь серверу, файлы с какими расширениями (твои файлы) нужно передавать обработчику "server-parsed" модуля "mod_include".
Название: Поправка. Sorry!
Отправлено: YA от 17 Марта 2002, 23:07:11
SteelRat
Цитировать
Во-вторых, это, уже не моя строка. Я же не знаю, что у него там за расширения!

Я не догнал сразу... Видимо ты говорил про того, кто задал вопроc?!
Название: Поповоду Одного баклана.
Отправлено: SteelRat от 17 Марта 2002, 23:07:27
Укажите хоть одного, кто указал рбочий метод.
Я указал - открывать в скрипте файл и печатать его содержимое.
.htaccess метод не работает, потому, что надо править сам httpd.conf и выставлять параметры директорий, но задающему такой вопрос во-первых это будет сложно. Во-вторых никто не даст (я, лично, не дам) вставлять параметры на бесплатных серваках (да и на некоторых платных тоже).
Так что стоит вспомнить, что молчание - золото. Для некоторых.


ВОТ.
Название: PS:
Отправлено: SteelRat от 17 Марта 2002, 23:09:42
Если быть точнее - надо поставить Includes* на /cgi-bin/
И выставить хандлеры так, чтобы .pl .cgi не были text/html а cgi-script
Название: Но
Отправлено: SteelRat от 17 Марта 2002, 23:10:35
через .htaccess это нельзя.
Название: CGI -> SSI
Отправлено: YA от 17 Марта 2002, 23:21:52
Цитировать
Если быть точнее - надо поставить Includes* на /cgi-bin/
И выставить хандлеры так, чтобы .pl .cgi не были text/html а cgi-script

Если правильно понял - использоввать последовательно два обработчика для одних и тех же файлов. В принципе, Apache этого не позволяет, но есть обходные пути (даже без редактирования главного конфигурационног файла)... если не поленюсь, найду.
А вообще, овчинка выделки не стоит. Такой ситуации надо избегать (см. 4 варианта выше).
Название: CGI -> SSI
Отправлено: ЖеньКа от 17 Марта 2002, 23:32:03
OFF
SteelRat Груб, и невоспитан, не вник в суть вопроса, наехал, наехал повторно. Попал в игнор. Очень неприятно.
END OFF

А вообще всё таки молодой человек задавший вопрос делает явно не то и не так.. Ему бы лучше сесть и объяснить что он хочет - имхо это делается по другому - если я правильно уловила что он хочет...
А? Вопрошающий? :)
Название: CGI -> SSI
Отправлено: YA от 17 Марта 2002, 23:38:46
ЖеньКа
Женщины как всегда мудры! :)

Я тоже не люблю ругаться.

Drow Elf, если вопрос еще не снят, отзовись...
Название: Дрожи, женщина, перед мощью Perl!
Отправлено: SteelRat от 26 Марта 2002, 01:32:32

#Before "print" value:
$mycoolfullwaytorootofsite = \'/var/www/html\';
$currentline_that_will_be_verifyed = $currentline_befor_print;
if ($currentline_that_will_be_verifyed =~ m/)+.+//g;
open(SSIFILE,"$mycoolfullwaytorootofsite/$currentline_that_will_be_verifyed") || die ("Нихрена не открывается");
@SSIFILE = ;
close(SSIFILE);
for(my $yo = 0; $yo < @SSIFILE; $yo++) {
print "$SSIFILE[$yo]";
}
}
#BOT.
#It works. Veryfied.
#//Generated by The Stainless Steel Rat
Название: Ха-ха
Отправлено: SteelRat от 26 Марта 2002, 01:33:36
Как я топик "раздвинул".
Во всех смыслах.


;-).
Название: Правда,
Отправлено: SteelRat от 26 Марта 2002, 01:40:41
форум в некоторых местах пробелы поставил.. Ща попробую вправить...
Название: Заменить:
Отправлено: SteelRat от 26 Марта 2002, 01:45:53
$currentline_that_will_be_verifyed =~ s/(" --> )+.+//g; на
$currentline_that_will_be_verifyed =~ s/(" -->)+.+//g; (лишний пробел - в коде не правится)
Название: БЛИННННН!!
Отправлено: SteelRat от 26 Марта 2002, 01:49:03
Короче, после " -->  идёт сразу скобка, без пробела.. И вообще, там скобки везде впритык..
Название: Кстати,
Отправлено: SteelRat от 26 Марта 2002, 02:00:39
Где это я был груб?
Название: CGI -> SSI
Отправлено: NeoNox от 26 Марта 2002, 02:01:24
[moderated on]
Цитировать
Короче, после " --> идёт сразу скобка

Приведи мысли в порядок, иначе попадешь в игнор не только к ЖеньКе!
[moderated off]

А по топику:

use CGI::SSI;
и perldoc на эту тему.
Название: final version: (v2)
Отправлено: SteelRat от 27 Марта 2002, 17:46:24
#$currentline_befor_print = $curline;
      #$mycoolfullwaytorootofsite = \'/var/www/html\';
      #$currentline_that_will_be_verifried = $currentline_befor_print;
      #if ($currentline_that_will_be_verifried =~ m/)+.+//g;
      #open(SSIFILE,"$mycoolfullwaytorootofsite/$currentline_that_will_be_verifried") || die ("Нихрена не открывается");
      #@SSIFILE = ;
      #close(SSIFILE);
      #$SSIcontent = \'\';
      #for(my $yo = 0; $yo < @SSIFILE; $yo++) {
      #$SSIcontent = "$SSIcontent"."$SSIFILE[$yo]";
      #}
      #$curline = $currentline_that_will_be_verifried =~ s/()/$SSIcontent/g;
      #}
Название: CGI -> SSI
Отправлено: от 05 Апреля 2002, 22:13:59
у меня таже проблема.....
по поводу представленного скрипта: куда это ставить?
Название: CGI -> SSI
Отправлено: Chs от 05 Апреля 2002, 22:32:22
Цитировать
у меня таже проблема.....
по поводу представленного скрипта: куда это ставить?

См. ответ NeoNox
http://forums.webscript.ru/showthread.php?s=&postid=28833#post28833
Название: CGI -> SSI
Отправлено: Green Kakadu от 06 Апреля 2002, 02:41:23
2SteelRat кустарный метод однако ;)
Название: Зато
Отправлено: SteelRat от 06 Апреля 2002, 18:06:43
проссто и понятно, что и как работает...
По поводу вставки:
$curline в первой строке - строка с хтмл кодом, в которой могут быть ssi вставки.
вконце выдаися сирока с подставленным содержанием.
ЗЫ: имена переменных, по-моему, неоднозначно говорят сами за себя.
ЗЫ2: производится ВСТАВКА содержания файлов. Скрипты, подключённые таким макаром, вставляться не будут (будет вставлен код скрипта)
Название: CGI::SSI_Parser
Отправлено: Green Kakadu от 09 Апреля 2002, 03:26:16
http://search.cpan.org/search?module=CGI::SSI_Parser