Консультация № 50918
02.08.2006, 16:31
0.00 руб.
0 5 5
Уважаемые эскперты! Скажите пожалста, каким образом реализуется вывод посетителей он-лайн в скрипте форума. Я так понял, что когда участник или гость входят на форум, в БД заносится соответствуящая информация. А вот как она оттуда удаляется, когда участник не кликнет на ссылку "Выход", а просто закроет страницу в своем браузере?

Обсуждение

Неизвестный
02.08.2006, 16:37
общий
это ответ
Здравствуйте, RebornDemon!
Просто при каждом запросе данных обновляется время последней активности пользователя, и если оно превышает, скажем 5 минут, то пользователь считается ушедшим.
Неизвестный
02.08.2006, 16:45
общий
это ответ
Здравствуйте, RebornDemon!
Например, раз в минуту проверяется время последнего посещения. Если пользователь не был ни на одной странице, например, в течение 5 минут, запись удаляется.
Или куда-нибудь записываются номера сессий, а через определенное время (например, каждую минуту) проверяется их существование (при закрытии браузера сессия уничтожается).
Неизвестный
02.08.2006, 16:45
общий
это ответ
Здравствуйте, RebornDemon!

Просто в БД заносится также время последнего обращения к серверу для каждого пользователя (разные гости идентифицируются по IP). А при каждом выводе "кто on-line" проверяется, обращался ли каждый пользователь к серверу за последние, например, полчаса. Если нет - он удаляется из таблицы online-пользователей. Тогда те, кто остался в таблице - это on-line.
Неизвестный
02.08.2006, 17:00
общий
это ответ
Здравствуйте, RebornDemon!
Я всою очереди реализовал это так :

1) При входе пользователя записываем его логин и текущее время в базу данных,
также удаляем записи где раздница во времени более 5 минут.
2) При открытии страницы (любой) обновляем время доступа в таблице для этого пользователя и удаляем записи с раздницой во времени старше 5 минут
3) При выходе пользователя - удаляем его запись из таблицы и все записи с раздницой во времени 5 минут

Соответственно ели после удаления записей с раздницей 5 минут то это и есть пользователи в он-лайн.

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

Также можно вывести статистику кто где находиться, для этого надо в таблице предусмотреть дополнительное поле для урла страницы к которой обратился пользователь.
Неизвестный
03.08.2006, 09:12
общий
это ответ
Здравствуйте, RebornDemon!

Тут недавно задавался подобный вопрос, вот посмотрите, тут достаточно хорошо все описано: http://rusfaq.ru/info/question/50455 , возможно вам это подойдет.
Форма ответа