Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Определение статуса пользователя "on-line" или "off-line"

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
GEN_18
Отправлено: 12 Июля, 2012 - 09:18:57
Post Id



Частый гость


Покинул форум
Сообщений всего: 184
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




как сделать чтоб можно было видеть онлайн клиент или нет?
вернее, я уже это придумал
но есть подвох
когда чел логинится, в поле status записывается "on"
а когда жмет на кнопку "выйти" то соответсвенно туда записыается "off"
тем самым видно, кто оналайн, а кто нет

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

(Отредактировано автором: 12 Июля, 2012 - 09:19:46)



-----
Еще вечера сегодня было завтра.
 
 Top
Мелкий Супермодератор
Отправлено: 12 Июля, 2012 - 10:09:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Смотреть датувремя последней активности.


-----
PostgreSQL DBA
 
 Top
GEN_18
Отправлено: 12 Июля, 2012 - 15:29:29
Post Id



Частый гость


Покинул форум
Сообщений всего: 184
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Мелкий типа чтоб скрипт со стороны сервера постоянно выполнялся через crone
в котором бы шла проверка?


-----
Еще вечера сегодня было завтра.
 
 Top
Alho
Отправлено: 12 Июля, 2012 - 15:32:19
Post Id



Посетитель


Покинул форум
Сообщений всего: 322
Дата рег-ции: Апр. 2012  


Помог: 11 раз(а)




В базу нужно записывать время последней активности. И если разница текущего и записанного времени первышает порог - показывать пользователя оффлайн.
 
 Top
LIME
Отправлено: 12 Июля, 2012 - 15:33:23
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




нет....
скрипт который отрисовывает данные по состоянию пробегает всех юзеров и пишет то те онлайн которые 5 мин назад хотябы обращались
нет смысла писать статус
пишите время каждый раз
можно аяксом пинать запросы на случай если юзер отошел чайку попить
 
 Top
GEN_18
Отправлено: 12 Июля, 2012 - 15:49:11
Post Id



Частый гость


Покинул форум
Сообщений всего: 184
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




у меня сессия хранится не в куках, в просто в переменно $_SESSION...
в этом вся проблема, я не знаю как у нее расспрашивать активен кто, а кто нет

p.s. как работать с куками я еще не разобрался, по крайней мере, чтоб сессию в них хранить я не знаю как, хотя пытался


-----
Еще вечера сегодня было завтра.
 
 Top
Alho
Отправлено: 12 Июля, 2012 - 15:53:52
Post Id



Посетитель


Покинул форум
Сообщений всего: 322
Дата рег-ции: Апр. 2012  


Помог: 11 раз(а)




Человек загружает страницу. На каждой странице стоит "запрос авторизации", который берет информацию из сессий, а так же записывает новое время в бд.

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

Если критична актуальная информация по статусу - то уже писали, что бы аякс дергал скрипт записи последней активности.
 
 Top
GEN_18
Отправлено: 12 Июля, 2012 - 16:10:53
Post Id



Частый гость


Покинул форум
Сообщений всего: 184
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Alho
может тогда вообще проще сделать на каждой странице, на которую заходит авторизованный пользователь, запись нового времени в БД.

а уже со стороны сервера выполнять каждые, допустим, 10 минут скрипт, который будет проходить по всей базе, и сравнивать время, записанное пользователем с настоящим временем, и если различие будет больше 5 минут - до ставить в поле status у этого пользователя "off"


-----
Еще вечера сегодня было завтра.
 
 Top
LIME
Отправлено: 12 Июля, 2012 - 16:12:51
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




GEN_18 пишет:
а уже со стороны сервера выполнять каждые, допустим, 10 минут скрипт, который будет проходить по всей базе, и сравнивать время, записанное пользователем с настоящим временем, и если различие будет больше 5 минут - до ставить в поле status у этого пользователя "off"
вопрос...НАХРЕНА????
пусть это делает скрипт который отображает инфу
и только когда это надо
а поле статус вообще лишнее
 
 Top
GEN_18
Отправлено: 12 Июля, 2012 - 16:17:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 184
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




LIME пишет:
пусть это делает скрипт который отображает инфу
и только когда это надо
а поле статус вообще лишнее

точно!!!! попробую так забубенить


-----
Еще вечера сегодня было завтра.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB