Forum Webscript.Ru

Программирование => Perl => Тема начата: DJ Fat от 12 Июля 2002, 21:51:23

Название: Include в *.cgi - файлах
Отправлено: DJ Fat от 12 Июля 2002, 21:51:23
Привет всем!

Помогите мне, я новичок. Скажите, как в файлах *.cgi (или *.pl) выполнить include()? Пробовал и он не работает.

Поясняю: у меня перл-скрипт на основе шаблона и в footer\'e я писал , но безуспешно.
Название: Include в *.cgi - файлах
Отправлено: YA от 12 Июля 2002, 22:27:48
Никак. Такого желания и не должно возникать. Средств Perl-a что недостаточно?
Название: Include в *.cgi - файлах
Отправлено: DJ Fat от 12 Июля 2002, 22:35:46
Жаль. Но, если бы я знал все эти средства...

А как это сделать средствами перла, если не секрет?
Название: Include в *.cgi - файлах
Отправлено: glebushka от 12 Июля 2002, 23:55:49
DJ Fat, а ты случайно не мой скрипт мучаешь?:-))))),
Ну да не важно.
Пиши мне на мыло, что надо сделать, если скрипт не мой, то и скрипт приаттачить не забудь.
Цитировать
А как это сделать средствами перла, если не секрет?

Не секрет. Но объяснять долго и сложно. Надо код посмотреть. Вообще в течении пяти минут делается. Только нужно соответствующий кусочек кода найти. А в этом то вся и проблема:-). Для этого или мне надо на код взглянуть, или тебе перл выучить.
ЗЫ. Мыло моё не забыл?%-) stalnoy_gleb@mail.ru
Название: Include в *.cgi - файлах
Отправлено: ESE от 14 Июля 2002, 16:57:39
Тут надо Perl -ом открыть файл и распечатать
open C,"$patch_to_file/$file";print ;close C;

А можно и так:
В файле footer, туда где нужно вставить другой файл
пишем

а в перл делаем функцию например footer

sub footer{
open F,"footer.htm";@footer=;close F;
foreach $footer(@footer){
if ($footer=~s///){open C,"$patch_to_file/$file";print ;close C}
print $footer}}
#$patch_to_file - путь к файлу из дирректории с скриптом
#$file - ну тот самый файл :)
Название: Include в *.cgi - файлах
Отправлено: glebushka от 15 Июля 2002, 19:23:59
ESE, немного не то что надо. Дело в том, что человек привык делать весь сайт на инклудах на основе шаблонов, и ему лень каждый раз лезть в код Перла, чтобы поменять путь.  Как оказалось при вскрытии это мой скрипт:-)), так что я вроде научил его (скрипт) распознавать директиву инклуд и действовать соответственно, хотя это ещё не факт, DJ Fat до сих пор не проверил работоспособность, а мои регулярные выражения всегда оставляли желать лучшего:-)))), вот что я сочинил:
=~m/^.*.*$/is
ИМХО: вроде правильно, хотя... Что скажешь, Ese?
Название: Include в *.cgi - файлах
Отправлено: ESE от 15 Июля 2002, 21:26:26
А, ну ты сразу указываешь какой файл надо забрать? Это еще лучше!
Название: Include в *.cgi - файлах
Отправлено: NeoNox от 16 Июля 2002, 13:23:43
Обрати внимание на модуль CGI::SSI
( Use SSI from CGI scripts )
Название: Include в *.cgi - файлах
Отправлено: Evgeny от 16 Июля 2002, 19:04:55
Нужно как-то сервер настроить, чтобы он cgi-output парсил, только это не нужно. Ведь ты всё это сам выполнить можешь, файл например открыть, считать его и в STDOUT запустить.
Так твоё  работает.
Название: Include в *.cgi - файлах
Отправлено: ThE0ReTiC от 16 Июля 2002, 19:29:33
Цитировать
Нужно как-то сервер настроить, чтобы он cgi-output парсил,

Ага. welcome hacker, что называется.
Название: Include в *.cgi - файлах
Отправлено: Evgeny от 16 Июля 2002, 19:35:16
Цитировать
welcome hacker, что называется

Очень интересно. Например?
Название: Include в *.cgi - файлах
Отправлено: ThE0ReTiC от 16 Июля 2002, 21:40:25
Пример могу привести на PHP
Название: Include в *.cgi - файлах
Отправлено: glebushka от 16 Июля 2002, 22:22:12
Цитировать
Обрати внимание на модуль CGI::SSI

Гм... это стандартный модуль? На халявных хостингах имеется?
Название: Include в *.cgi - файлах
Отправлено: Chs от 16 Июля 2002, 23:03:21
Цитировать
Гм... это стандартный модуль? На халявных хостингах имеется?

Гм...А поставить слабо? :)
Название: Include в *.cgi - файлах
Отправлено: glebushka от 16 Июля 2002, 23:40:08
Цитировать
Гм...А поставить слабо?

В смысле? Просить админов?
Или вместе со скриптом поставлять и модуль? Лучше уж тогда я функцию сам напишу, чем кучу файлов к скрипту навешивать. Как этот модуль работает, в перлдоке что надо набрать, чтобы почитать?
Название: Include в *.cgi - файлах
Отправлено: Evgeny от 17 Июля 2002, 12:18:37
ThE0ReTiC
Цитировать
Пример могу привести на PHP
Всё равно не пойму. Это можно сделать лишь при совместной работе cgi и ssi? А просто скриптом?
Я имею в виду, если уж человек(плохой) и имеет возможность заставить скрипт выводить (при том, что такой скрипт есть), то наверное он также может просто unlink написать.
Название: Include в *.cgi - файлах
Отправлено: NeoNox от 17 Июля 2002, 13:37:14
Цитировать
В смысле? Просить админов?
Или вместе со скриптом поставлять и модуль?

А в чем проблема? У тебя же и так есть, наверняка, свои модули частоупотребляемых функций? Посмотри как реализован этот модуль и добавь к себе (сразу скажу, что там он прост как угол дома :) ).
Название: Include в *.cgi - файлах
Отправлено: Croaker от 09 Октября 2002, 15:01:01
require("sub_script.pl");
Название: Include в *.cgi - файлах
Отправлено: NeoNox от 09 Октября 2002, 15:45:55
Croaker это ты к чему???
Название: Include в *.cgi - файлах
Отправлено: Croaker от 09 Октября 2002, 15:59:00
Вопрос изначально был:
Цитировать
Скажите, как в файлах *.cgi (или *.pl) выполнить include()? Пробовал и он не работает.


на перле это recuire() - подключает куски cgi скриптов (на перле).

а если просто html`ники подключать... я пользуюсь FastTemplate.


[OFF]я конечно понимаю, что трейд старый, но может кому-нидь пригодится... :-)[/OFF]