Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » как вызвать скрипт на страницу?

Ответить
Настройки темы
как вызвать скрипт на страницу?

Старожил


Сообщения: 282
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


народ, такой вопрос: как вызвать результат работы скрипта на страницу сайта? особенности таковы, что сама страница, в которую я пишу  является файлом tpl то есть темплейтом. получается, что я вызываю скрипт, который подгружает себе темплейт для оыормления и вот из этого темплейта нужно вызвать другой скрипт. как это сделать?

-------
настоящему корейцу завсегда везде ништяк!


Отправлено: 14:15, 07-07-2003

 
mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


если это темплэйт (то-есть что-то вроде html-файла с переменными, подменяемыми обслуживающим скриптом), то как всегда в html - форма, или ssi если это позволено (и темплейт проходит ssi - парсинг на этом сервере)

Отправлено: 17:26, 07-07-2003 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Старожил


Сообщения: 282
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


чо то ничего не понял
вобщем так: есть скрипт интернет магазина sale.pl чтобы он выглядел под дизайн моего сайта я его загнал в темплейт. то есть сделал два файла top.tpl и bottom.tpl и теперь сам скрипт sale.pl выглядит так
сначала всякие установки и т.п.
$top="top.tpl"
$tpl=new HTMLTMPL;
$tpl->src($top);
$tpl->output();
в середине тут содержание магазина, книжки, корзина, вобщем все.
$tpl=new HTMLTMPL;
$tpl->src($bottom);
$tpl->output();

но на самом сайте еще есть такой скрипт, который считает количество участников форума и выводит это количество на всех страницах (через exec cgi="counter.cgi" так вот как этот counter.cgi вызвать из файла top.tpl, который обрабатывается файлом sale.pl? про парсинг я что-то слышал а вот как этот парсинг делать? примечание сайт свой в смысле www.name.ru

[s]Исправлено: koresaram, 19:00 7-07-2003[/s]

-------
настоящему корейцу завсегда везде ништяк!


Отправлено: 17:59, 07-07-2003 | #3


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


koresaram
Что такое HTMLTMPL? CPAN search ничего о нём не знает, значит это не "стандартный" модуль -> ничем сходу помочь нельзя. В простейшем случае придётся добавить три строчки в "шаблонизатор", что бы научить его вставлять скрипты.

Добавлено:

Прошу прощения, кажись просто там поиск не работал, он мне и модуль CGI не нашёл, сейчас в других источниках посмотрю.

Добавлено:

koresaram
Вот документация: http://theoryx5.uwinnipeg.ca/CPAN/da.../HTMLTMPL.html Что непонятного-то?

В соответствующем .tpl файле, где надо поставить счётчик вписывается __counter__.

Соответственно код для включения файла будет выглядеть примерно так:
Код: Выделить весь код
open(COUNTER, "| /path/to/your/counter/script")
$counter = join('', <COUNTER>);
close(COUNTER);
$counter =~ s/.*?\n\n//s; # удаляем HTTP-заголовок

$tpl=new HTMLTMPL; 
$tpl->src($bottom); 
$tpl->counter($counter);
$tpl->output();
Или можно поиграться с перенаправлением вывода и просто включить файл счётчика через require (если оно на перле, конечно), сбросив вывод в переменную.

-------
http://ivank.ru


Отправлено: 18:56, 07-07-2003 | #4


Старожил


Сообщения: 282
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


ни фига попробовал так как ты написал с кодами, но он ничего не показывает. только сверху выдал Content-type: text/html 907 и все. так, а где путь к скрипту пишется там до папки.... а не прямо до скрипта надо путь указать. но все равно не пашет.

вот: http://www.logist.ru/cgi-bin/sale/i-sale.pl в левой колонке снизу "Членов Клуба" и пусто. а вот к примеру из форума, у которого оформление тоже в темплейте www.logist.ru/forum/YaBB.cgi тут все на месте. причем на форуме этот вывод записан как exec cgi="counter.pl"

а непонятного тут все из за того, что я перл плохо знаю, только начал изучать. и английский не очень
а вот про три строчки в шаблонизаторе это ты что имел ввиду?

еще вот чего: у меня темплейты не мелкими частями. то есть шаблон сайта это табличка с тремя столбцами. вот все содержание выводится в средний столбик. я просто взял страницу index.htm и поделил HTML код на две части. первая часть кончается на начале среднего столбика, вторая начинается с конца столбика. вот эти две части и есть мои top.tpl и bottom.tpl может дело в этом?

[s]Исправлено: koresaram, 12:09 8-07-2003[/s]

Добавлено:

доигрался до того, что при вышеописанном подходе вместо результата скрипта выводится текст скрипта.

-------
настоящему корейцу завсегда везде ништяк!


Отправлено: 11:04, 08-07-2003 | #5


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


koresaram
Это был не рабочий код, а просто идея, к тому же я не подумав не там палочку поставил . Вот работающий пример:
tpl.html
Код: Выделить весь код
smt1: __smt1__
counter: __counter__
smt2: __smt2__
counter.pl
Код: Выделить весь код
print "Content-type: text/html\n\n";
#some non-trivial code here...
print "123";
ex.pl
Код: Выделить весь код
#!/usr/bin/perl -w

use HTMLTMPL;

$templ = new HTMLTMPL;
$templ->src('tpl.html');

$templ->smt1('something not important is here');

open(COUNTER, "perl counter.pl |");
$counter = join('', <COUNTER>);
close(COUNTER);
$counter =~ s/(.*)?\n\n//s; # удаляем HTTP-заголовок 
$templ->counter($counter);


$templ->smt2('something not important strikes back!');

$templ->output('Content-Type: text/html');
Результат работы ex.pl
Код: Выделить весь код
Content-Type: text/html

smt1: something not important is here
counter: 123
smt2: something not important strikes back!
Цитата:
а вот про три строчки в шаблонизаторе это ты что имел ввиду?
На счёт трёх строчек я приувеличил, по моим более точным подсчётам получилось 7
Ну примерно тот же, код, но только засунуть его в HTMLTMPL, дабы он сам искал места где нужно вставить результат некоторого скрипта. Но, думаю, тебе это не нужно.

-------
http://ivank.ru


Отправлено: 18:21, 08-07-2003 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » как вызвать скрипт на страницу?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - [решено] Как в С вызвать функцию из Delphi библиотеки? mingw Программирование и базы данных 6 06-07-2009 10:11
Разное - как вызвать функцию hhh8486 Программирование и базы данных 2 29-03-2008 13:17
Как вызвать медот Sort по типу VB из D6? St_Klaus Программирование и базы данных 1 11-01-2006 00:14
как автоматом вызвать активацию ? djoniAg Автоматическая установка Windows 2000/XP/2003 1 19-12-2004 01:23
как вызвать командную строку modem Общий по Linux 8 06-07-2003 07:11




 
Переход