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

Ваш аккаунт

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

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

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

Определение онлайн пользвателей

10K
28 января 2007 года
ChesnoK
57 / / 18.07.2006
Ещё раз здрасте :) вот решил я на свём сайте сделать чат, и хочу сделать совместную регистрацию в чате и на форуме, форум уже есть, следственно готовые скрипты чата не подойдут т.к. копаться в чужом коде с ума сойдёшь. Ну вот а на самый простенький чатик я написал, конечно чатом это назвать трудно.... но столкнулся с одной проблемой: во всех чатах есть фремй где все онлайн-пользватели, если кто-то уходит, то он СРАЗУ исчезает из списка онлайн, а не через какое-то время. Так вот как это сделать???? Во многих чатах это с помощью сессий делаетца, а вот как это реализовать не знаю, киньте примерчик плизззззз.
253
29 января 2007 года
Proger_XP
1.5K / / 07.08.2004
Делаешь таблицу в БД типа
user_id integer unsigned primary_key
lasttime integer unsigned index
Потом вставляешь в любое место на странице фрейм или <iframe>. У него задаешь href="online.php". online.php должен выдавать заголовок на обновление страницы. Я его не помню :)
В online.php просто обновляешь запись в таблице. Предполагается, что ты сохраняешь ID юзера например в сессиях. Через какое-то количество запросов удаляешь из БД записи, где lasttime > time() + 300. Надеюсь, сам догадаешься как реализовать
10K
29 января 2007 года
ChesnoK
57 / / 18.07.2006
Ну да.... я уже прочитал подобный пост, я его просто не заметил :rolleyes: как это реализовать у меня идеи есть, я это недавно на файлах пробовал сделать, но запарился с записью и перезаписью файла и забил. В общем идея мне понятна. А вообще есть где-нибудь какая-нибудь инфа по написанию чата? например обновление страницы без мерцания и т.д. если можно кинь ссылочки.
253
29 января 2007 года
Proger_XP
1.5K / / 07.08.2004
Не знаю. Сам я этим не занимался. Попробуй поискать по форуму
92
31 января 2007 года
Тень Пса
2.2K / / 19.10.2006
ой 262349856398476347 лет назад делал, когда только-только узнал что есть MySQL, и можно реализовать хранение всей инфы с помощью него , а не файлов ))))))) псмотри.... идея была такая... )

Код:
<?echo "<meta http-equiv='Refresh' content='15; list_usr.php3?nick={$nick}'>";?>
<html>
<head>
    <title></title>
</head>
<link rel=stylesheet href=chat_style.css>
<body>
<?
include("../../var.php3");
$connect=mysql_connect($db_host, $db_admin, $db_password);
$query=mysql_db_query("mchat", "select * from reg where status='a'");
echo "
<hr width=108%>
<div class=head align=center>Кто здесь? <img align=absmiddle src='../images/smiles/1.gif'></div>
<hr width=108%>
<table width=100% align=center cellpadding='2' cellspacing='2'>"
;
$i=0;
while($user=mysql_fetch_array($query)){
echo "
<tr>
    <td><a title='Инфа!' target='_blank' href='info.php3?about="
.$use["nick"]."'>".convert_cyr_string($user["nick"],"k","w")."</a></td>
    <td><a href='input.php3?command=Private&to="
.$user["nick"]."&from={$nick}' target='input' title='Приватное сообщение'><img border=0 src='../images/smiles/private.gif'></a></td>
</tr>
"
;
$i++;
}
echo "
</table>
<br>
<br>
<div class=counter align=right>Всего человек: {$i}</div>
"
;


может чем и поможет ))))
256
31 января 2007 года
foxweb
1.0K / / 27.07.2005
а все ли знают, что не существует такого понятия, как "число пользователей онлайн". потому что один из основополагающих принципов протокола HTTP в том, что соединение разрывается сразу же после загрузки очередной страницы сайта.

так что все, кто тут пишут - занимаются чистой воды шаманством ;)
92
31 января 2007 года
Тень Пса
2.2K / / 19.10.2006
ну само собой нельзя определить в сети счась пользователь или нет....

и опять же само собой это "определяется" по промежутку времени, в который пользователь был активен... по истичении времени, и отсутствия активности, пользователь будет считаться "не в сети" :)

ЗЫ: а насчет прошлого моего поста, это было давно и я говорил уже, что только начинал... есть большой косяк, если пользователь закрыл чат, то он так и остается В списке "Кто здесь?" =)))))))

2ChesnoK: для того чтобы этого избежать тебе надо завести сессии, в БД, например.... и установить время истечения. тогда каждый раз, когда прогружается какой-либо из скриптов ты сможешь проверить из него, не истекли ли сессии. и соотвессна удалить узеров, которые свалили (ну а при нажатии кнопочки Logout всё проще ;))
253
31 января 2007 года
Proger_XP
1.5K / / 07.08.2004
А без шаманства кодинг был бы скушен ;)
10K
31 января 2007 года
ChesnoK
57 / / 18.07.2006
да-да, я уже всё понЯл, точнее мыслю уловил.
Всем пасибо :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог