Forum Webscript.Ru
Программирование => PHP => Тема начата: Yon от 28 Ноября 2003, 23:33:51
-
Нужно вывести динамический список находящихся на сайте пользователей, зарегистрированных в сессиях. Можно ли получить доступ к списку этих сессий(пользователей)?
-
Yon:
Можно ли получить доступ к списку этих сессий(пользователей)?
Можно. Причем удобнее всего это делать, когда сессии размещены в базе данных.
А как это сделать можешь посмотреть, например, в движке любого нормального форума, хотя бы этого (vBulletin).
-
Сессии служат не для таких целей.
Хочешь вывести - выводи.
Сессии тебе предоставят механизм уникальной идентификации.
А дальше уже учитывай сам.
К тому же, какой смысл выводить динамический список пользователей, обращавшихся к сайту за последние 24 минуты? А почему не 54 или 14?
-
RomikChef:
К тому же, какой смысл выводить динамический список пользователей, обращавшихся к сайту за последние 24 минуты? А почему не 54 или 14?
ИМХО лучше хоть что-то, чем ничего.
Пока ничего лучше не придумали (средствами PHP), приходится юзать такую технологию...
-
Лучше придумали давно и много.
Если знать, чего ты хочешь, то все можно сделать.
Руками.
Если они растут из нужного еста.
-
RomikChef
Ну тогда расскажи, пожалуйста, как бы ты по-другому реализовал отображение списка пользователей, в данный момент находящихся на этой странице?
Без шуток, мне действительно интересно!
Только не говори, что в данный момент пользователей на странице нет и не отправляй в фак "на танке" :)
Я имею в виду список пользователей на странице не с технической точки зрения, а с общечеловеческой.
-
Мне нужно знать конкретно, сколько работающих сессий на данный момент есть. Проблема-то втом, что когда сессия регистрируется я заношу этого пользователя в БД(таблицу учета посетителей), но как мне отследить момент закрытия сессии....или скажите что я дурак...
-
Yon:
что когда сессия регистрируется я заношу этого пользователя в БД(таблицу учета посетителей)
Пишешь в эту таблицу время занесения, при вызове скрипта этим же пользователем апдейтишь время занесения на текущее. Периодически запускаешь сборщик мусора в таблице, который удалит записи в таблице у которых время последнего апдейта отличается от текущего, например, на 5 минут. Сессии в том понимании, в котором вы обсуждаете, тут не при чем.
FreeSpace
ИМХО, это и есть ответ с общечеловеческой точки зрения.
-
Yon, а какую полезную информацию ты хочешь извлечь из этого числа?
Я вот все в толк не возьму.
К количеству находящихся сейчас на сайте это число никакого отношения не имеет.
Момент закрытия РНР сессии ты можешь отследить очень легко.
прибавь ко времени последнего запроса время таймаута, прописанного в настройках РНР.
Но отчего-то мне кажется, что ты принимаешь РНР сессию (механическое, в общем-то, явление) за что-то другое
-
Посетитель должен видеть других посетителей сайта...просто я предположил возможность существования "такого" списка(что вобщем-то можно было заложить). Ведь сессии хранятся в папке на сервере. Можно же как-нибудь было предусмотреть доступ к ним!
...Вместо того механизма что предложил Yukko(который мне вобщем-то с самого начала не нравился, но чуствую придется так и поступить). Для меня вопрос закрыт.
-
Увы, мне не удалось донести до тебя простую мысль о том, что количество активных сессий не равно количеству посетителей сайта.
Ну да ничего. Если мозги есть - то сам дойдешь.
А если нету - то и время на тебя тратить бессмысленно.
Учитывая твою самоуверенность, второй вариант гораздо более вероятен.
-
Похоже, у нас тут коллизия понятий приключилась.
Мне показалось, что автор темы дал ясно понять, что под сессиями он подразумевает не механизм сессий в PHP, а сессии пользователей в том виде, в каком они реализованы например в вБуллетне.
Следовательно, говоря о сессиях в своём сообщении, дабы избежать путаницы и лишних уточнений, я понимал под сессиями то же самое.
Но, похоже, этим как раз создал эту самую путаницу.
Прошу прощения.
-
RomikChef, может я сам виноват в неправильной постановке вопроса. Для моей задачи - посетителем является только "владелец" активной сессии php.
-
Ты хочешь сказать, что все твои посетители, как один, дисциплинированно жмут кнопку "Выход", по которой ты убиваешь сессию?
А я тебе не поверю. Потому, что таких посетителей не бывает.
А это значит. что если не нажимают, то человек просто уходит с сайта, а сессия еще 20 минут активна.
Я понимаю, что ты на каждого пришедшего посетителя заводишь сессию, и поэтому думаешь, что количество сессий равно количеству посетителей. Но при уходе-то сессия не убивается. А таймаут в ней проставлен с запасом. Не для того, чтобы отследить уход в ней таймаут, а наоборот - чтобы не создавать неудобства тем, кто ненадолго отлучился от сайта. Разные задачи у сессий и у скрипта, который подсчитывает количество сессий.