Frames, scripts and forms

User avatar
Privet
Администратор
Posts: 17199
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Frames, scripts and forms

Post by Privet »

Чат на этом сайте имеет несколько frames. Вверху показывается содержимое чата, внизу показывается форма для ввода данных. При входе в чат из форума приходится сначала заходить на страницу, где отображаются все фреймы, вводить имя и пароль в нижнем фрейме и жать enter.

Если в коде формы, которая отрабатывает кнопку перехода в чат, в "action" поставить ссылку на скрипт, который работает в нижнем фрейме, то у клиента отображается только один нижний фрейм. Поставить ссылку на страницу с фреймами не получается, т.к. это обычная html страница.

Как можно написать код так, чтобы переправлять клиента сразу в чат без лишней регистрации?
Привет.
User avatar
WildVlad
Уже с Приветом
Posts: 3982
Joined: 13 Jul 2000 09:01
Location: SVX -> BOS -> BUR -> SJC

Post by WildVlad »

Вместо:
<FRAME SRC=http://privet.com/trp/lister41.cgi?room=public&page=help name=rmessages>
Написать
<FRAME SRC=http://privet.com/trp/public/rmessages.html name=rmessages>

В коде для FrameSet'а не пробовали?
I hated LA
User avatar
Privet
Администратор
Posts: 17199
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Post by Privet »

Не понял, что это изменит. :pain1:
Привет.
vovap
Уже с Приветом
Posts: 12014
Joined: 05 Apr 2000 09:01
Location: Philadelphia, PA, USA

Re: Frames, scripts and forms

Post by vovap »

Privet wrote:Чат на этом сайте имеет несколько frames. Вверху показывается содержимое чата, внизу показывается форма для ввода данных. При входе в чат из форума приходится сначала заходить на страницу, где отображаются все фреймы, вводить имя и пароль в нижнем фрейме и жать enter.

Если в коде формы, которая отрабатывает кнопку перехода в чат, в "action" поставить ссылку на скрипт, который работает в нижнем фрейме, то у клиента отображается только один нижний фрейм. Поставить ссылку на страницу с фреймами не получается, т.к. это обычная html страница.

Ситуация непонятна. Почему нельзя поставить ссылку на тот фремсет где "Вверху показывается содержимое чата, внизу показывается форма для ввода данных."? Из-за необходимости обойти пароль/логин? Но это совсем иная проблемма.
User avatar
WildVlad
Уже с Приветом
Posts: 3982
Joined: 13 Jul 2000 09:01
Location: SVX -> BOS -> BUR -> SJC

Post by WildVlad »

Privet wrote:Не понял, что это изменит. :pain1:

Это изменит то, что код страницы для Frameset по-умолчанию в центральном фрейме будет показывать текст чата. Если поможет с центральным, то и нижний можно будет подправить (если сразу не заработает).
I hated LA
User avatar
Privet
Администратор
Posts: 17199
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Post by Privet »

Я, возможно, нечетко выразил, что я хочу.

Начнём сначала.

Есть два фрейма на странице http://privet.com/trp/public/index.html
(на самом деле их три. Два дано для упрощения)

В верхнем показывается сам чат,
в нижнем фрейме ( исходик здесь: http://privet.com/trp/public/chatform.html ) - форма для логина, которая обрабатывается этим скриптом: http://privet.com/trp/echat41.cgi.

После логина форма ввода сообщений или сообщение для клиента в нижнем фрейме генерируется скриптом http://privet.com/trp/echat41.cgi

Чтобы клиент сразу оказался в чате, надо чтобы "нижний скрипт" ( http://privet.com/trp/echat41.cgi ) получил в POST (пусть даже в GET) информацию об имени и пароле. Как вариант - session id или что-то иное, на основание чего можно было бы принять решение о том, что клиент уже ввёл имя+пароль и сразу пустить его в чат.

Как эту информацию туда передать со страницы форума?

Если эта ссылка или ACTION в форме указывают на сам frameset ( http://privet.com/trp/public/index.html ), то скрипт в нижнем фрейме ( http://privet.com/trp/echat41.cgi ) ничего не получает.

Если ссылку дать сразу на http://privet.com/trp/echat41.cgi, то, очевидно, у клиента висит только одно окно с формой для ввода сообщения, которая сгенерирована скриптом.
Привет.
User avatar
dot
Уже с Приветом
Posts: 4461
Joined: 17 Jun 2003 04:41

Post by dot »

Privet wrote:Чтобы клиент сразу оказался в чате, надо чтобы "нижний скрипт" ( http://privet.com/trp/echat41.cgi ) получил в POST (пусть даже в GET) информацию об имени и пароле. Как вариант - session id или что-то иное, на основание чего можно было бы принять решение о том, что клиент уже ввёл имя+пароль и сразу пустить его в чат.

Как эту информацию туда передать со страницы форума?

Если эта ссылка или ACTION в форме указывают на сам frameset ( http://privet.com/trp/public/index.html ), то скрипт в нижнем фрейме ( http://privet.com/trp/echat41.cgi ) ничего не получает.


А если выдавать куки не только на директорию /forum/ но и на /trp/ ? Тогда скрипт должен только проверять - есть кука или нет. Если есть, то все ок, если нет(гость), то, например, редирект на /public/something.html, для чтения чата. Можно, кстати, сделать переход на чат ввиде такого скрипта, который как раз 1. выдает куки; 2. делает редирект.

Можно, конечно, поменять http://privet.com/trp/public/index.html на скрипт, который проверяет логин-пароль, и редиректит на соотв. страницу со фреймами. Но, мне кажется это заморочно очень.
User avatar
dot
Уже с Приветом
Posts: 4461
Joined: 17 Jun 2003 04:41

Post by dot »

Пред. пост не редактируется. :(

Есть еще вариант - редиректить на:
http://privet.com/trp/public/index.html?$sessionID
index.html подредактировать:
// This is query string
var query = document.location.search.substring(1,document.location.search.length);
// this is original code
document.writeln("<FRAME RC=http://privet.com/trp/lister41.cgi?sessionID=" +query+ " name=rmessages>");

Но мне кажется что с куками все равно лучше.
-------------
- Доктор, меня все игнорируют..
- Следующий!

Return to “Вопросы и новости IT”