Чат на этом сайте имеет несколько frames. Вверху показывается содержимое чата, внизу показывается форма для ввода данных. При входе в чат из форума приходится сначала заходить на страницу, где отображаются все фреймы, вводить имя и пароль в нижнем фрейме и жать enter.
Если в коде формы, которая отрабатывает кнопку перехода в чат, в "action" поставить ссылку на скрипт, который работает в нижнем фрейме, то у клиента отображается только один нижний фрейм. Поставить ссылку на страницу с фреймами не получается, т.к. это обычная html страница.
Как можно написать код так, чтобы переправлять клиента сразу в чат без лишней регистрации?
Frames, scripts and forms
-
- Администратор
- Posts: 17199
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Frames, scripts and forms
Привет.
-
- Уже с Приветом
- Posts: 3982
- Joined: 13 Jul 2000 09:01
- Location: SVX -> BOS -> BUR -> SJC
-
- Администратор
- Posts: 17199
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
-
- Уже с Приветом
- Posts: 12014
- Joined: 05 Apr 2000 09:01
- Location: Philadelphia, PA, USA
Re: Frames, scripts and forms
Privet wrote:Чат на этом сайте имеет несколько frames. Вверху показывается содержимое чата, внизу показывается форма для ввода данных. При входе в чат из форума приходится сначала заходить на страницу, где отображаются все фреймы, вводить имя и пароль в нижнем фрейме и жать enter.
Если в коде формы, которая отрабатывает кнопку перехода в чат, в "action" поставить ссылку на скрипт, который работает в нижнем фрейме, то у клиента отображается только один нижний фрейм. Поставить ссылку на страницу с фреймами не получается, т.к. это обычная html страница.
Ситуация непонятна. Почему нельзя поставить ссылку на тот фремсет где "Вверху показывается содержимое чата, внизу показывается форма для ввода данных."? Из-за необходимости обойти пароль/логин? Но это совсем иная проблемма.
-
- Уже с Приветом
- Posts: 3982
- Joined: 13 Jul 2000 09:01
- Location: SVX -> BOS -> BUR -> SJC
-
- Администратор
- Posts: 17199
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Я, возможно, нечетко выразил, что я хочу.
Начнём сначала.
Есть два фрейма на странице 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, то, очевидно, у клиента висит только одно окно с формой для ввода сообщения, которая сгенерирована скриптом.
Начнём сначала.
Есть два фрейма на странице 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, то, очевидно, у клиента висит только одно окно с формой для ввода сообщения, которая сгенерирована скриптом.
Привет.
-
- Уже с Приветом
- Posts: 4461
- Joined: 17 Jun 2003 04:41
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 на скрипт, который проверяет логин-пароль, и редиректит на соотв. страницу со фреймами. Но, мне кажется это заморочно очень.
-
- Уже с Приветом
- Posts: 4461
- Joined: 17 Jun 2003 04:41
Пред. пост не редактируется.
Есть еще вариант - редиректить на:
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>");
Но мне кажется что с куками все равно лучше.
-------------
- Доктор, меня все игнорируют..
- Следующий!
Есть еще вариант - редиректить на:
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>");
Но мне кажется что с куками все равно лучше.
-------------
- Доктор, меня все игнорируют..
- Следующий!