Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Создание чата - ПОМОГИТЕ!!!

10K
18 июля 2006 года
ChesnoK
57 / / 18.07.2006
Всем Hello! Вот делаю чат и столкнулся с такой проблемкой: как узнать находится человек в онлайн'е или вообще закрыл страничку с чатом. Помогите люди добрые уже который день не могу ничего придумать, точнее мысли есть, но ничего не выходит.:confused:
8
18 июля 2006 года
mfender
3.5K / / 15.06.2005
при закрытии страницы отправляй javascript'ом серванту флажок о том, что некто закрыл страницу. Заодно засекай время активности пользователя: минут пять не активен - долой из чата.

Пардон, ошибся... Это же javascript, а он не знает, когда окно закрывается... Так что, отправить серванту ничего не удастся...
10K
19 июля 2006 года
ChesnoK
57 / / 18.07.2006
Ну.... блин, обрадовал. У меня вот две мысли есть, только не знаю какая лучше:

мысля №1: использовать файлы, например с именем чувака и скритп в этот файл при обновлении страницы будет записывать ну например "1", потом считывать это значение ну и наконец записывать "0", т.е. этого чувака в чате нет, то в файле будет 0 и его имя вычеркнется и списка.

мысля №3: то же самое тока с мускулом.

Может кто-нибудь знает ещё какой способ?
8
19 июля 2006 года
mfender
3.5K / / 15.06.2005
[QUOTE=ChesnoK]мысля №1: использовать файлы, например с именем чувака и скритп в этот файл при обновлении страницы будет записывать ну например "1", потом считывать это значение ну и наконец записывать "0", т.е. этого чувака в чате нет, то в файле будет 0 и его имя вычеркнется и списка.[/QUOTE]
Ну да, ну да... А вопрос "как узнать?" так и остался нерешённым... А то - нашёл решение... Попал пальцем в...
10K
19 июля 2006 года
ChesnoK
57 / / 18.07.2006
Помог лучше лучше, подкинул бы хотя бы какую-нибудь ссылочку где про это узнать, посоветовал бы чего, да вообще много чего мог бы сделать. Это всё было во-первых, а во-вторых я имел в виду какой способ лучше - мускул и файлы, или может ещё как-то можно это сделать?
352
19 июля 2006 года
skywalker
694 / / 10.02.2006
А чем тебе твои варианты не нравятся, например с мускулом? Да и вообще проверить человек еще на сайте или нет можно с помощью сессии.
10K
19 июля 2006 года
ChesnoK
57 / / 18.07.2006
Это не совсем то, в этом примере используется айпи-адрес, хотя можно и с его помощью, но опять же его надо приделать к имени чувака, который сидит в чате, а потом куда-то записать, а это всё очень медленно. Вот насчёт сессий можно подробнее.
8
19 июля 2006 года
mfender
3.5K / / 15.06.2005
Флудильню развели. Вопрос был поставлен изначально "как узнать, когда чатланин закрыл страницу (уничтожил документ) с чатом". Именно узнать. При чём тут файлы, БД и прочая порча, о которой вы тут понаписали? Автор вообще ушёл от темы, видимо смутно представляя, что вообще делает.

Ещё раз - и тему закрою, как не соответствующую поставленному вопросу.
10K
19 июля 2006 года
ChesnoK
57 / / 18.07.2006
[QUOTE=mfender]Флудильню развели. Вопрос был поставлен изначально "как узнать, когда чатланин закрыл страницу (уничтожил документ) с чатом". Именно узнать. При чём тут файлы, БД и прочая порча, о которой вы тут понаписали? Автор вообще ушёл от темы, видимо смутно представляя, что вообще делает.

Ещё раз - и тему закрою, как не соответствующую поставленному вопросу.[/QUOTE]

Ну подскажи свой вариант как узнать что страница была закрыта. Без использования БД или файлов а? подкинь код.
352
19 июля 2006 года
skywalker
694 / / 10.02.2006
[QUOTE=ChesnoK]Ну подскажи свой вариант как узнать что страница была закрыта. Без использования БД или файлов а? подкинь код.[/QUOTE]
Вот статьи о сессиях, на этом сайте: http://www.codenet.ru/cat/Languages/PHP/Cookies-and-Sessions/
8
19 июля 2006 года
mfender
3.5K / / 15.06.2005
[QUOTE=ChesnoK]Ну подскажи свой вариант как узнать что страница была закрыта. Без использования БД или файлов а? подкинь код.[/QUOTE]
Ты котлеты от мух отдели: одно дело сессии писать в файло или БД, другое - узнать, что делает юзерь с браузером (может он отвёрткой экран колупает - но это ты программно вряд-ли узнаешь).

Раскинув мозгами, предлагаю использовать событие onunload:

Делаем формочку:

[HTML]
<body onunload="document.forms.logout.submit(); alert('good buy!!!');">
<form action="<тут скриптик, который выкинет чатланина из БД, как отсутствующего>" method="GET" name="logout">
<input type="hidden" name="user" value="1">
<input type="submit">
</form>
<body>
[/HTML]
Alert нужен для задержки: сомневаюсь, что браузер что-либо отправит, если просто закроется с концами. Ну, а поле user - идентификатор юзеря.
А на другой стороне лови уже и делай соответствующие движения в БД.

Вот такой вариант придумался. Выдумаешь лучше - напиши.
332
20 июля 2006 года
Valiant
416 / / 27.09.2004
использовать односессионный кукис
на время сессии юзверю привязывается SID
как только он закроет окно браузера SID потрётся из кукиса

ну и проверять некоторым скриптом наличие в куках данного СИДа
8
20 июля 2006 года
mfender
3.5K / / 15.06.2005
Ты сам-то понял, что написал?
Как можно "проверять некоторым скриптом наличие в куках данного СИДа"?
А всё остальное про сессии - притча во языцех...
332
20 июля 2006 года
Valiant
416 / / 27.09.2004
я про то, что:
1) юзерь заходит в чат
2) скрипт проверяет кто чичас в онлайн
3) отдаёт имена пользователей находящихся на данный момент в чате
например: берёт некоторые данные из БД
Страница будет обновляться либо при отсылке сообщений
либо по действию пользователя или скрипта(через некоторое время)
такой алгоритм работает у меня на работе
количество одновременно сидящих пользователей достигает 40
8
20 июля 2006 года
mfender
3.5K / / 15.06.2005
Так в чём проблема? Уже все рецепты дали. За то время, сколько эта тема обсасывается, уже можно чат написать и даже разрекламировать. Что - сил не хватает взяться? Тогда - нафига он тебе нужен?
332
20 июля 2006 года
Valiant
416 / / 27.09.2004
ээээээ.....
ну если последняя сабжа адресована мне.
то мне чат не нужен, ибо он уже есть и неплохо работает,
и тему создал не я ...
ты бы мне лучше подсказал как с редиректами быть
8
20 июля 2006 года
mfender
3.5K / / 15.06.2005
[QUOTE=Valiant]ээээээ.....
ну если последняя сабжа адресована мне.
то мне чат не нужен, ибо он уже есть и неплохо работает,
и тему создал не я ...[/QUOTE]
Ну да. Ошибсо. Бывает.

Таки что там с редиректами? Есть такая темка? Если нет - создай.
332
20 июля 2006 года
Valiant
416 / / 27.09.2004
да создал вот она
http://forum.codenet.ru/showthread.php?t=27854
12
20 июля 2006 года
alekciy
3.0K / / 13.12.2005
[QUOTE=mfender]при закрытии страницы отправляй javascript'ом серванту флажок о том, что некто закрыл страницу. Заодно засекай время активности пользователя: минут пять не активен - долой из чата.

Пардон, ошибся... Это же javascript, а он не знает, когда окно закрывается... Так что, отправить серванту ничего не удастся...[/QUOTE]
Ну почему же? Ставим на страницу JS с бесконечным циклом. В цикле есть таймер, который каждые Х сек/мин посылает на сервер небольшой кусок данных (флаг), ну слово "ОК" к примеру или порядковый номер чатланина. Серверный скрипт принимает эти данные и видит, что пользовать тут. Если в течении некоторого времение такие флаги не приходят значит либо пользователь закрыл страницу либо же проблемы со связью. Пользователя считаем разлогиненым и удаляем при вылете в тайм-аут.
10K
21 июля 2006 года
ChesnoK
57 / / 18.07.2006
Эх... спасибо всем за советы, но вы бы мне пример привели как это с мускулом сделать, и вот про onUnload (с этой фигнёй получилось).
15
21 июля 2006 года
shaelf
2.7K / / 04.05.2005
А вообще все эти чаты - зло (это ИМХО). Кому нужен чат - IRC канал. Трафа меньше, удобства больше.
10K
22 июля 2006 года
ChesnoK
57 / / 18.07.2006
О! а по побробней можно про irc как такое можно сделать, или ссылочку на исходники подкиньте.

З.Ы. кто был в спб чате - это же irc да?
20K
22 июля 2006 года
Sheens
2 / / 21.07.2006
Нет, на спб не IRC. IRC - это немного другое
http://www.yandex.ru/yandsearch?text=%F7%F2%EE+%F2%E0%EA%EE%E5+IRC
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог