Автор Тема: Как получить доступ ко всем работающим сессиям?  (Прочитано 4526 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Yon

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.plugat.ru
Нужно вывести динамический список находящихся на сайте пользователей, зарегистрированных в сессиях. Можно ли получить доступ к списку этих сессий(пользователей)?

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Цитировать
Yon:
Можно ли получить доступ к списку этих сессий(пользователей)?

Можно. Причем удобнее всего это делать, когда сессии размещены в базе данных.
А как это сделать можешь посмотреть, например, в движке любого нормального форума, хотя бы этого (vBulletin).
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Сессии служат не для таких целей.
Хочешь вывести - выводи.
Сессии тебе предоставят механизм уникальной идентификации.
А дальше уже учитывай сам.

К тому же, какой смысл выводить динамический список пользователей, обращавшихся к сайту за последние 24 минуты? А почему не 54 или 14?

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Цитировать
RomikChef:
К тому же, какой смысл выводить динамический список пользователей, обращавшихся к сайту за последние 24 минуты? А почему не 54 или 14?

ИМХО лучше хоть что-то, чем ничего.
Пока ничего лучше не придумали (средствами PHP), приходится юзать такую технологию...
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Лучше придумали давно и много.
Если знать, чего ты хочешь, то все можно сделать.
Руками.
Если они растут из нужного еста.

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
RomikChef
Ну тогда расскажи, пожалуйста, как бы ты по-другому реализовал отображение списка пользователей, в данный момент находящихся на этой странице?
Без шуток, мне действительно интересно!
Только не говори, что в данный момент пользователей на странице нет и не отправляй в фак "на танке" :)
Я имею в виду список пользователей на странице не с технической точки зрения, а с общечеловеческой.
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Yon

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.plugat.ru
Мне нужно знать конкретно, сколько работающих сессий на данный момент есть. Проблема-то втом, что когда сессия регистрируется я заношу этого пользователя в БД(таблицу учета посетителей), но как мне отследить момент закрытия сессии....или скажите что я дурак...

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Цитировать
Yon:
что когда сессия регистрируется я заношу этого пользователя в БД(таблицу учета посетителей)

Пишешь в эту таблицу время занесения, при вызове скрипта этим же пользователем апдейтишь время занесения на текущее.  Периодически запускаешь сборщик мусора в таблице, который удалит записи в таблице у которых время последнего апдейта отличается от текущего, например, на 5 минут. Сессии в том понимании, в котором вы обсуждаете, тут не при чем.

FreeSpace
ИМХО, это и есть ответ с общечеловеческой точки зрения.
работа в Украине

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Yon, а какую полезную информацию ты хочешь извлечь из этого числа?
Я вот все в толк не возьму.
К количеству находящихся сейчас на сайте это число никакого отношения не имеет.

Момент закрытия РНР сессии ты можешь отследить очень легко.
прибавь ко времени последнего запроса время таймаута, прописанного в настройках РНР.

Но отчего-то мне кажется, что ты принимаешь РНР сессию (механическое, в общем-то, явление) за что-то другое

Оффлайн Yon

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.plugat.ru
Посетитель должен видеть других посетителей сайта...просто я предположил возможность существования "такого" списка(что вобщем-то можно было заложить). Ведь сессии хранятся в папке на сервере. Можно же как-нибудь было предусмотреть доступ к ним!
...Вместо того механизма что предложил Yukko(который мне вобщем-то с самого начала не нравился, но чуствую придется так и поступить). Для меня вопрос закрыт.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Увы, мне не удалось донести до тебя простую мысль о том, что количество активных сессий не равно количеству посетителей сайта.
Ну да ничего. Если мозги есть - то сам дойдешь.
А если нету - то и время на тебя тратить бессмысленно.
Учитывая твою самоуверенность, второй вариант гораздо более вероятен.

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Похоже, у нас тут коллизия понятий приключилась.
Мне показалось, что автор темы дал ясно понять, что под сессиями он подразумевает не механизм сессий в PHP, а сессии пользователей в том виде, в каком они реализованы например в вБуллетне.
Следовательно, говоря о сессиях в своём сообщении, дабы избежать путаницы и лишних уточнений, я понимал под сессиями то же самое.
Но, похоже, этим как раз создал эту самую путаницу.
Прошу прощения.
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн Yon

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 15
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.plugat.ru
RomikChef,  может я сам виноват в неправильной постановке вопроса.  Для моей задачи - посетителем является только "владелец" активной сессии php.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Ты хочешь сказать, что все твои посетители, как один, дисциплинированно жмут кнопку "Выход", по которой ты убиваешь сессию?
А я тебе не поверю. Потому, что таких посетителей не бывает.

А это значит. что если не нажимают, то человек просто уходит с сайта, а сессия еще 20 минут активна.

Я понимаю, что ты на каждого пришедшего посетителя заводишь сессию, и поэтому думаешь, что количество сессий равно количеству посетителей. Но при уходе-то сессия не убивается. А таймаут в ней проставлен с запасом. Не для того, чтобы отследить уход в ней таймаут, а наоборот - чтобы не создавать неудобства тем, кто ненадолго отлучился от сайта. Разные задачи у сессий и у скрипта, который подсчитывает количество сессий.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28