Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Фреймы в CGI.pm, ничего не понял. 
:(
    Опции темы
korob2001
Дата 10.9.2003, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



Всем доброго времени суток!
Это опять я с истерзанным CGI.pm smile.gif

Господа, если кому не лень поясните как использовать фреймы в CGI.pm.
В документации ничего не понял. sad.gif

Заранее благодарен,
Денис


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
NightGoblin
Дата 11.9.2003, 03:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1021
Регистрация: 24.11.2002
Где: 127.0.0.1

Репутация: нет
Всего: 11



А что именно - отображение фреймов или прием/обработка данных из одного и отображение в другом? Или еще что?


--------------------
Kernel panic: /dev/null overflow!
GCS/IT/MU/O d-@ s: a- C++$>++++$ ULSB(+++) P+++ L+++>++++ !E W++(-) N o? K w-- O? M>+ V? PS+ PE Y+ PGP+>+++ t- 5 X+ R- !tv b+ DI+ D+ G e++ h--- r++ y?
B4F1 54B6 8738 26CD 5125 0581 B923 9273 FE59 1981
PM MAIL WWW ICQ   Вверх
korob2001
Дата 11.9.2003, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



Вобщем я пытаюсь написать чат.
Нужно запустить вот такой FRAMESET.
Код

sub frameSet {
print $cgi->header( -charset => 'Windows-1251' );
print <<FRAMESET;
<html>
 <head>
  <title>Фреймы</title>
 </head>
  <frameset rows='80,*,60' border='0'>
   <frame name='top' src='http://microsoft.com' scrolling='no'>
  <frameset cols='*,200' border='0'>
   <frame name='bottom' src='http://mazafaka.ru'>
   <frame src='http://denstelen.hop.ru/www/home.html' scrolling='no'>
  </frameset>
   <frame name='right' src='http://netscape.com' scrolling='no'>
  </frameset>
</html>
FRAMESET
}


А так же есть подпрограммы которые выводят каждый фрейм. Например так:
Код

sub topList {
  print $cgi->header( -charset => 'Windows-1251' ),
          $cgi->start_html(),
          $cgi->center( $cgi->h1('Заголовок') ),
          $cgi->end_html();


Сразу прошу обратить внимание на то что и FRAMESET, и подпрограммы каждого фрейма находятся в одном файле. Возможно ли как-то в атрибуте src тэга <frame> указать не адрес отдельного файла, а имя подпрограммы &topList()?

Это сообщение отредактировал(а) korob2001 - 11.9.2003, 11:45


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
NightGoblin
Дата 12.9.2003, 01:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1021
Регистрация: 24.11.2002
Где: 127.0.0.1

Репутация: нет
Всего: 11



Через переменную GET передать устроит?... Например,
Код

<FRAME src="http://www.myhost.com/cgi-bin/chat?act=input">
<FRAME src="http://www.myhost.com/cgi-bin/chat?act=output">
<!-- и т. д. -->

Таким образом, все содержится в одном скрипте под названием chat, а функции задаются параметром act


--------------------
Kernel panic: /dev/null overflow!
GCS/IT/MU/O d-@ s: a- C++$>++++$ ULSB(+++) P+++ L+++>++++ !E W++(-) N o? K w-- O? M>+ V? PS+ PE Y+ PGP+>+++ t- 5 X+ R- !tv b+ DI+ D+ G e++ h--- r++ y?
B4F1 54B6 8738 26CD 5125 0581 B923 9273 FE59 1981
PM MAIL WWW ICQ   Вверх
korob2001
Дата 12.9.2003, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



Большое спасибо. Буду пробовать. smile.gif


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
NightGoblin
Дата 14.9.2003, 04:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1021
Регистрация: 24.11.2002
Где: 127.0.0.1

Репутация: нет
Всего: 11



Ай, блин... То есть, не через переменную "$GET", а переменную в GET-запросе smile.gif


--------------------
Kernel panic: /dev/null overflow!
GCS/IT/MU/O d-@ s: a- C++$>++++$ ULSB(+++) P+++ L+++>++++ !E W++(-) N o? K w-- O? M>+ V? PS+ PE Y+ PGP+>+++ t- 5 X+ R- !tv b+ DI+ D+ G e++ h--- r++ y?
B4F1 54B6 8738 26CD 5125 0581 B923 9273 FE59 1981
PM MAIL WWW ICQ   Вверх
korob2001
Дата 15.9.2003, 02:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



Пробую создать два фрейма:
Код

#!/usr/bin/perl -w
use strict;
use CGI;
my $cgi = new CGI;


&frameSet();
sub frameSet {
print $cgi->header( -charset => 'Windows-1251' );
print <<FRAMESET;
<html>
 <head>
  <title>Фреймы</title>
 </head>
  <frameset rows="50%,50%">
   <frame src='frame.pl?act=top' name='fr1'>
   <frame src='frame.pl?act=bot' name='fr2'>
  </frameset>
</html>
FRAMESET
}

sub topUp {
       print $cgi->start_html(),
       $cgi->center( $cgi->h1('Верхний фрейм') ),
       $cgi->end_html();
}

sub botUp {
       print $cgi->start_html(),
       $cgi->center( $cgi->h1('Нижний фрейм') ),
       $cgi->end_html();
}
&topUp if $cgi->param('act') eq 'top';
&botUp if $cgi->param('act') eq 'bot';

Ничего не получается sad.gif

Это сообщение отредактировал(а) korob2001 - 15.9.2003, 03:50


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
NightGoblin
Дата 16.9.2003, 02:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1021
Регистрация: 24.11.2002
Где: 127.0.0.1

Репутация: нет
Всего: 11



Хм... у тебя получается, что скрипт в любом случае рисует фреймсет, а если получает параметры - то вдобавок еще и страницу. Честно говоря, с CGI.pm я не работал, т. к. предпочитаю разбирать запрос самостоятельно - проще и понятнее... Попробуй так:
Код

#!/usr/bin/perl -w
use strict;
use CGI;
my $cgi = new CGI;


unless ($cgi->param('act')) {
   &frameSet();
} else {
   &topUp if $cgi->param('act') eq 'top';
   &botUp if $cgi->param('act') eq 'bot';
}

sub frameSet {
print $cgi->header( -charset => 'Windows-1251' );
print <<FRAMESET;
<html>
<head>
 <title>Фреймы</title>
</head>
 <frameset rows="50%,50%">
  <frame src='frame.pl?act=top' name='fr1'>
  <frame src='frame.pl?act=bot' name='fr2'>
 </frameset>
</html>
FRAMESET
}

sub topUp {
      print $cgi->start_html(),
      $cgi->center( $cgi->h1('Верхний фрейм') ),
      $cgi->end_html();
}

sub botUp {
      print $cgi->start_html(),
      $cgi->center( $cgi->h1('Нижний фрейм') ),
      $cgi->end_html();
}


Это сообщение отредактировал(а) NightGoblin - 16.9.2003, 02:54


--------------------
Kernel panic: /dev/null overflow!
GCS/IT/MU/O d-@ s: a- C++$>++++$ ULSB(+++) P+++ L+++>++++ !E W++(-) N o? K w-- O? M>+ V? PS+ PE Y+ PGP+>+++ t- 5 X+ R- !tv b+ DI+ D+ G e++ h--- r++ y?
B4F1 54B6 8738 26CD 5125 0581 B923 9273 FE59 1981
PM MAIL WWW ICQ   Вверх
korob2001
Дата 17.9.2003, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



Всё получилось, правда пришлось заголовок из подпрограммы frameSet:
Код
$cgi->header( -charset => 'Windows-1251');

сделать глобальным. Так как frameSet выводилась без проблем, а вот оба фрейма выдавали 500 ошибку сервера. Но это уже мелочи.

Значит дело было только в условии.
Большое спасибо. hehe.gif

Это сообщение отредактировал(а) korob2001 - 17.9.2003, 00:59


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0595 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.