---
title: "Список пользователей онлайн"
description: "Разворошим это забытое всеми сообщество. Надеюсь это родит ещё ряд постов (хотя по традиции, с меня ..."
author: "xlbo"
published: "2010-04-14T08:53:17+00:00"
modified: "2010-04-14T08:53:17+00:00"
locale: "ru"
canonical_url: "https://yvision.kz/post/spisok-polzovateley-onlayn-40012"
markdown_url: "https://yvision.kz/post/spisok-polzovateley-onlayn-40012/markdown"
site_name: "Yvision.kz"
---

# Список пользователей онлайн

> Разворошим это забытое всеми сообщество. Надеюсь это родит ещё ряд постов (хотя по традиции, с меня ...

Разворошим это забытое всеми сообщество.

Надеюсь это родит ещё ряд постов (хотя по традиции, с меня ещё один пост).

Кстати, пост о необходимости [форматирования исходных кодов](http://yvision.kz/community/%D0%98%D0%B4%D0%B5%D0%B8/39631.html) так и не попал на главную. Конечно, ведь там не про Баркемп.

Поэтому придется все исходные коды выложить на сторонний ресурс. Трахаться со здешним редактором желания нет.

В общем, задача такая: узнать кто же у нас шарится по сайту в данный момент?

Что-то типа "who is online"

Узнаем мы эту информацию конечно же из сессии пользователя.

В ЗФ есть возможность хранить сессии в базе данных. Для этого используется класс [Zend_Session_SaveHandler_DbTable](http://framework.zend.com/manual/en/zend.session.savehandler.dbtable.html).

Им мы и воспользуемся, слегка расширив его под наши нужды.

Добавляем в таблицу session поле user_id, где будем хранить ID активного юзера. По этой ссылке с крутым номером SQL-запрос: [http://codepaste.ru/3333/](http://codepaste.ru/3333/)

Зеркало:[http://www.copypastecode.com/26475/](http://www.copypastecode.com/26475/)

В файле Bootstrap.php создаем функцию _initSession() [http://codepaste.ru/3334/](http://codepaste.ru/3334/)

Зеркало:[http://www.copypastecode.com/26479/](http://www.copypastecode.com/26479/)

App_SessionService - это файл SessionService.php в папке App (папка для собственных классов), который наследует класс [Zend_Session_SaveHandler_DbTable](http://framework.zend.com/manual/en/zend.session.savehandler.dbtable.html)

Копируем и переписываем функции __construct и write и добавляем определение переменной поля user_id и функцию, которая берет из Zend_Auth необходимые данные.

Вот его листинг: [http://codepaste.ru/3335/](http://codepaste.ru/3335/)

Зеркало: [http://www.copypastecode.com/26483/](http://www.copypastecode.com/26483/)

Вообще, можно собирать любую информацию о пользователе (IP, браузер и т.д.). Для этого достаточно добавить соответствующие поля в таблицу и изменить код, подобно добавлению 'user_id'.

Как-то так. Вопросы, замечания и более крутой код как всегда в комменты. :)

---

Source: [https://yvision.kz/post/spisok-polzovateley-onlayn-40012](https://yvision.kz/post/spisok-polzovateley-onlayn-40012)