Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Юзеры в чате, Как сделать чтоб они автоматически .. 
:(
    Опции темы
Гость_Sirius
Дата 23.11.2005, 15:28 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











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


  Вверх
Neitron
Дата 23.11.2005, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

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



Нет.



--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
Alix
Дата 23.11.2005, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

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



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


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
DemoCode
Дата 23.11.2005, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 1
Всего: 41



Я где-то видел: при выходе из чата (закрытие окна) там в body по событию onUnload открывается маленькое окошко, с надписью типа "Спасибо, заходите ещё", и через несколько секунд оно закрывается. Это окошко запрашивает скрипт, который вычеркивает этого посетителя из списка активных. Но это нелучший вариант, но единственный способ сделать это не тайм-аутом.


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
Mal Hack
Дата 23.11.2005, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



Можно повесить на OnClose и на OnExit открытие нового окна вызывающего скрипт выхода из чата, но это бред, который работает в 20-25% случаев, если не меньше.
PM ICQ   Вверх
R.M.
Дата 24.11.2005, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Анархист
****


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

Репутация: -2
Всего: 30



Если у тя есь чат то он скорей всево на фреймах, тогда обновляй фрейм например со списком юзеров и проверяй какой из юзеров присутствует (не пишет сообщений а именно присутствует) если он отсутствует скажем 10 сек он удаляется

И вобще почитай тему может чё поможет
http://forum.vingrad.ru/index.php?showtopic=66829&hl=
там этот вопрос и обсуждался как раз


--------------------
Помнишь как бодрили дискотеки прошлого века? Теперь стул, компьютер и нету человека.

Nokia LifeStyle - Всё для смартфонов Nokia 
PM MAIL WWW ICQ   Вверх
Neitron
Дата 24.11.2005, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

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



Цитата
Если у тя есь чат то он скорей всево на фреймах, тогда обновляй фрейм например со списком юзеров и проверяй какой из юзеров присутствует (не пишет сообщений а именно присутствует) если он отсутствует скажем 10 сек он удаляется

И вобще почитай тему может чё поможет
http://forum.vingrad.ru/index.php?showtopic=66829&hl=
там этот вопрос и обсуждался как раз

Я думаю автор знает об этом способе.


--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
patt
Дата 24.11.2005, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.11.2004
Где: Николаев

Репутация: 1
Всего: 2



Ещё вариант - хранить идентификатор пользователя и время последнего обращения в имени файла - снимает проблему одновременного обращения к файлу нескольких юзеров, или нарузку с БД......

Вообщем вот:

Код

<?
session_id($_GET['sid']);
session_start();

if ($handle = opendir('./online'))
{
    $flagok = false;
    while (false !== ($file = readdir($handle)))
    {
    list($user,$time) = split('<s>',chop($file));
    if($user == "." || $user == "..") continue;
    if($user == $_SESSION['login'])
    {
        rename('./online/'.$file,'./online/'.$user."<s>".time());
        $flagok = true;
    }
    else
    {
        if(time() - $time > 10) unlink('./online/'.$file);
    }
    }
    
    //that string restore on-line status if in consequence of error it was failed
    if(!$flagok){fopen("./online/".$_SESSION['login']."<s>".time(), "w");}
    
    closedir($handle);
    $handle = opendir('./online');
    while (false !== ($file = readdir($handle)))
    {
    list($user,$time) = split('<s>',chop($file));
    if($user == "." || $user == "..") continue;
    if($user == $_SESSION['login'])
    {
        echo $user." -- etoya<br>";
    }
    else
    {
        echo "<a href='javascript:parent.add.sett(\"$user\")'>[priv]</a>
        <a href='javascript:parent.add.sett1(\"$user\")'>".$user."</a>  
        <a href='userinfo.php?login=$user' target=_blank>info</a><br>";
    }
    }
    closedir($handle);
}
echo "<script>setTimeout('location.reload(true)',7000)</script>";

?>

PM MAIL ICQ Skype GTalk   Вверх
Elfet
Дата 24.11.2005, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



patt, а это точно нагрузку снимает? smile


--------------------
PM MAIL WWW Skype   Вверх
Mal Hack
Дата 24.11.2005, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



Цитата(Elfet @ 24.11.2005, 19:37)
patt, а это точно нагрузку снимает? smile

Зато нагружка на сервак будет... Причем не факт, что меньшая.
PM ICQ   Вверх
patt
Дата 24.11.2005, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.11.2004
Где: Николаев

Репутация: 1
Всего: 2



Цитата(Elfet @ 24.11.2005, 19:37)
patt, а это точно нагрузку снимает? smile

Ну если БД не используется........... да я думаю снимает smile

А в целом, я думаю нагрузка на сервак то же не больше....... если навскидку прикинуть: имена файлов хранятся в таблице, в первых секторах диска, тоесть при поиске сканируется неприрывная область памяти, а при работе с самими файлами или БД, делается то же самое, только при нахождении файла с данным именем идёт переход по физическому адресу, а потом уже работа с данными..... Файл к тому же может быть фрагментирован... Но это всё фигня, тут главное, что нет совместного доступа к файлу (может только во время удаления, но пока проблем небыло......... smile )
PM MAIL ICQ Skype GTalk   Вверх
Neitron
Дата 25.11.2005, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

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



Цитата(patt @ 24.11.2005, 21:20)
Цитата(Elfet @ 24.11.2005, 19:37)
patt, а это точно нагрузку снимает? smile

Ну если БД не используется........... да я думаю снимает smile

А в целом, я думаю нагрузка на сервак то же не больше....... если навскидку прикинуть: имена файлов хранятся в таблице, в первых секторах диска, тоесть при поиске сканируется неприрывная область памяти, а при работе с самими файлами или БД, делается то же самое, только при нахождении файла с данным именем идёт переход по физическому адресу, а потом уже работа с данными..... Файл к тому же может быть фрагментирован... Но это всё фигня, тут главное, что нет совместного доступа к файлу (может только во время удаления, но пока проблем небыло......... smile )

И откудж ети знаешь как работает и ищет данные БД?smile
Уверяю что ты неправ.


--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
Сириус
Дата 26.11.2005, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 26.11.2005

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



Спасибо всем за ответы!
Куксикус ты можешь обьяснить мне каким образом я могу узнать данный юзер тут или не тут?
Это был бы конечно же лучший вариант, но не знаю как..
PM MAIL   Вверх
Diesel Draft
Дата 27.11.2005, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

Репутация: 1
Всего: 5



Короче. Здесь много написали. Потому я всього читать не буду то му извините если я кого нибуть повторю


надо штоби когда чат обновляет даные то сохранял в БД в час последнього посещения. А потом проверять если прошто например больше 5 минут то он уже не знами


--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
Сириус
Дата 27.11.2005, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 26.11.2005

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



Хм..не понял
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

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


 




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


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

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