Как на php сделать статус online/offline?

Статус
В этой теме нельзя размещать новые ответы.

Glazok

Новичок
уже сделана регистриция, авторизация, анкета и её редактирование, список всех пользователей и ещё кое-что. Вопрос: как на php сделать статус online/offline? Хотя б подскажите в какую сторону думать.
Мне кажется надо так:
PHP:
if(session_start()) 
{echo "Online";} 
else {echo "offline";}
правильно ли так будет?
 

baev

‹°°¬•
Команда форума
уже сделана регистриция, авторизация, анкета и её редактирование, список всех пользователей и ещё кое-что. Вопрос: как на php сделать статус online/offline? Хотя б подскажите в какую сторону думать.
Мне кажется надо так:
PHP:
if(session_start()) 
{echo "Online";} 
else {echo "offline";}
правильно ли так будет?
— это — прямиком в «Юмор».


Glazok, чей «статус» и кому Вы этим кодом показываете?
Если я в офлайне, я как это узнаю? (Да и зачем мне оно, вообще?..)
 

Glazok

Новичок
— это — прямиком в «Юмор».


Glazok, чей «статус» и кому Вы этим кодом показываете?
Если я в офлайне, я как это узнаю? (Да и зачем мне оно, вообще?..)
ну в таком случае посоветуйте где искать, что смотреть, на что обратить внимание. заранее спасибо
 

baev

‹°°¬•
Команда форума
В каком «таком»? Вам уже выше ссылку дали.

И, да, Вы ни на один мой вопрос не ответили.
 

Glazok

Новичок
В каком «таком»? Вам уже выше ссылку дали.

И, да, Вы ни на один мой вопрос не ответили.
если пользователь в сети(у него запущена сессия), то высвечивается онлайн и наоборот. это пока пользователь сам видит что он в онлайне. а вот как уже делать чтоб он был в онлайне в списке всех пользователей, и другие пользователи видили что он в онлайне, когда заходят к нему на страницу - тут уже сложнее
 

Фанат

oncle terrible
Команда форума
вообще-то, стоит почитать документацию на функцию session_start(), что ли.
ну. и задуматься надо осмысленностью показа пользователю такого значка, да.
 

iceman

говнокодер
Glazok
это твой статус онлайн - если ты запустил скрипт - значит ты в онлайне ))

твой код можно упрастить до такого
PHP:
echo "Online";
понимаешь?

ну теперь когда ты запустил скрипт - запиши строчку в бд для своего логина (идентификатора пользователя) со значением текущего времени. вот будет у тебя список времени последней аективности пользователей. теперь считай что чуваки которые были на сайте более 5 минут - будут уже считатся оффлайном, а все кто был до 5 минут - будут онлайн! вот делай селект из таблицы тех у кого время последней активности менее 5 минут - будет у тебя список онлайн чуваков.
так понятнее?
 

Glazok

Новичок
Glazok
это твой статус онлайн - если ты запустил скрипт - значит ты в онлайне ))

твой код можно упрастить до такого
PHP:
echo "Online";
понимаешь?

ну теперь когда ты запустил скрипт - запиши строчку в бд для своего логина (идентификатора пользователя) со значением текущего времени. вот будет у тебя список времени последней аективности пользователей. теперь считай что чуваки которые были на сайте более 5 минут - будут уже считатся оффлайном, а все кто был до 5 минут - будут онлайн! вот делай селект из таблицы тех у кого время последней активности менее 5 минут - будет у тебя список онлайн чуваков.
так понятнее?
ты имеешь ввиду что-то типа такого?:
PHP:
$sql=mysql_query("SELECT lastvisittime FROM users WHERE lastvisittime>". time()-300 ." WHERE userid=".$userid);
if ($row=mysql_fetch_array($sql))
{
$online=true;
}
 

iceman

говнокодер
Glazok
1) lastvisittime < - меньше ТЕКУЩАЯ ДАТА - 5 МИНУТ.
2) зачем тебе тут ограничивать выборку по USER_ID? - тебе список пользователей нужен же! и ты всегда в этом списке будешь онлайн - если ты запустил скрипт в браузере, до тебя не доходит чтоли? 5 минут - это твой timeout (время вышло) последней активности
 

AmdY

Пью пиво
Команда форума
Если ТЫ запросил страницу, значит ТЫ онлайн. Соответственно в твоей схеме будет запрос на обновление поля последнего доступа при каждом запросе тобой страницы.
UPADATE users SET lastvisittime=".$time()." WHERE userid=".intval($userid)

Судя по всему тебе нужно узнать сколько пользователей онлайн, тогда делается
SELECT COUNT(id) FROM users WHERE lastvisittime > ". time()-300 ."

Тему закрыл.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху