[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как узнать если пользователи сейчас на сайте??????
Serghei
добрый вечер

как узнать если пользователи сейчас на сайте

хотя бы подскажите с чего начать

заранее спасибо




Спустя 10 минут, 43 секунды (17.03.2010 - 00:22) Serghei написал(а):
и поставить значок online или offline

Спустя 1 час, 38 минут, 23 секунды (17.03.2010 - 02:00) Игорь_Vasinsky написал(а):
Пользователя запускай на сайт и за ним для него запускай сессию, в пока пользователь на сайте - сессия жива, как тока он ушёл - значит сессия закрыта (умерла)

Вот и контролируй сессию

в БД Логин и session_id - ты даже можешь сделать мониторинг

Спустя 18 минут, 48 секунд (17.03.2010 - 02:19) Serghei написал(а):
идею понял но появился один вопрос как узнать что session_id закрыта (умерла)???????????

Спустя 3 часа, 2 минуты, 57 секунд (17.03.2010 - 05:22) twin написал(а):
Сначала нужно определиться, что в твоем понимании "сейчас на сайте".
Сессия по умолчанию в большинстве случаев живет 24 минуты. Это многовато для онлайн. Если этот интервал устраивает, то можно и так. Но обычно его устанавливают от 5 до 15 минут.
Для того, что бы узнать, сколько в данный момент живых сессий, нужно отсканировать временную директорию, отобрать и подсчитать количество файлов.

Подвох кроется в двух местах. Вернее в трех.
1. Во временной директории может храниться куча других файлов(загружаемых к примеру)
2. Если на площадке несколько сайтов, то сессии всех их хранятся в одной директории
3. Время исполнения скрипта и постоянное дергание файловой системы делают эту перспективу унылой.

Исходя из вышесказанного - это далеко не лучший и не самый простой способ.

Я бы посоветовал работать с БД. Писать туда метку времени, одновременно стирая те записи, у которых превышен установленный лимит.

Спустя 1 час, 13 минут, 28 секунд (17.03.2010 - 06:36) Игорь_Vasinsky написал(а):
У вас 2 варианта, до браться самому или же я могу показать как это реализовать.

Алгаритм мы вам набросали....

Спустя 4 минуты, 48 секунд (17.03.2010 - 06:40) Игорь_Vasinsky написал(а):
Цитата
Я бы посоветовал работать с БД. Писать туда метку времени, одновременно стирая те записи, у которых превышен установленный лимит.


и я тоже

Цитата
в БД Логин и session_id - ты даже можешь сделать мониторинг


biggrin.gif

Спустя 2 часа, 5 минут, 43 секунды (17.03.2010 - 08:46) phz написал(а):
Цитата (Serghei @ 16.03.2010 - 21:11)
добрый вечер

как узнать если пользователи сейчас на сайте

хотя бы подскажите с чего начать

заранее спасибо

http://www.php.su/articles/?cat=examples&page=039

Измени только в коде $REMOTE_ADDR на $_SERVER[REMOTE_ADDR']

Спустя 50 минут, 37 секунд (17.03.2010 - 09:37) twin написал(а):
Я очень уважаю этот ресурс, однако так делать нельзя. Туда тоже можно напихать всякой гадости, это опасно. Кроме того, не всегда IP находится в $_SERVER['REMOTE_ADDR']

Вот это место:
global $REMOTE_ADDR;

лучше сделать так:

   if(($REMOTE_ADDR = @$_SERVER['HTTP_X_FORWARDED_FOR']) === null) 
$REMOTE_ADDR = $_SERVER['REMOTE_ADDR'];

$REMOTE_ADDR = long2ip(ip2long($REMOTE_ADDR));

Спустя 5 дней, 2 часа, 32 минуты, 19 секунд (22.03.2010 - 12:09) bitrop написал(а):
нужно в БД сделать поле куда будет записано время входа в виде $lasttime=time();
и при каждом действии обновлять это поле!
А потом все просто
if ((time()-$lasttime)>10)
{
оффлайн
}
else{онлайн}

Спустя 1 год, 1 месяц, 22 дня, 2 часа, 46 минут, 47 секунд (14.05.2011 - 13:56) Guest написал(а):

Цитата
if(($REMOTE_ADDR = @$_SERVER['HTTP_X_FORWARDED_FOR']) === null)
$REMOTE_ADDR = $_SERVER['REMOTE_ADDR'];

$REMOTE_ADDR = long2ip(ip2long($REMOTE_ADDR));



не работает!!!

Спустя 7 минут, 12 секунд (14.05.2011 - 14:03) XCross написал(а):
Походу отомстил он вам за взрыв мозга biggrin.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.