Loading...
PHP/MySQL | Реализация статуса онлайн
Всем привет
Как реализовать на сайте статус онлайна. Особенно интересует как определять бездействия пользователя
Колнпка в бд и каждый клик обновляй её тайм
d1nka, это в принципе понятно а вот определять бездействие пользователя. Допустим допустим пользователь нечего не делал 15 минут ему выводит статус оффлайн. Не будет такого что пользователь онлайн а ему выдает что он оффлайн?
Типо как Вконтакте
MAXI BENZ, да что то на подобие этого
Есть колонка в бд которая обновляется при каждом обновлении страницы пользователя.
Например time()+600 это 10 минут.
Когда они истекут, а юзер не обновил страницу он будет оффлайн и в времени последнего захода можно отобразить ту самую колонку.
Loading...,

$online = mysql_num_rows( mysql_query('SELECT * FROM `юзеры` WHERE `online` > '.( time() - (3600*4) ).'') );

Онлайн:<?=$online;?>
Loading... (28.12.2018 в 23:53)
d1nka, это в принципе понятно а вот определять бездействие пользователя. Допустим допустим пользователь нечего не делал 15 минут ему выводит статус оффлайн. Не будет такого что пользователь онлайн а ему выдает что он оффлайн?

Ты ответил на свой вопрос свом же вопросом
terad1m, Я сделал что бы при обновлении страницы строка в БД обновлялась и сделал проверку

if($user['data_last'] <= time()-600){

echo "<font color='green'>Онлайн</font>";


}else{

echo "<font color='red'>Оффлайн</font>";

}

Но теперь проблема в том что выводит всем пользователям статус онлайн
PhP_Fucker (28.12.2018 в 23:58)
Loading...,

$online = mysql_num_rows( mysql_query('SELECT * FROM `юзеры` WHERE `online` > '.( time() - (3600*4) ).'') );

Онлайн:<?=$online;?>

Лучше заменить константой время, если пишем в поцедурке.
<?
define('ONLINE', '3600*4');
$online = mysql_num_rows( mysql_query('SELECT * FROM `юзеры` WHERE `online` > '.( time() - (ONLINE) ).'') );

Онлайн:<?=$online;?>

________
посл. ред. 29.12.2018 в 00:13; всего 1 раз(а); by TuT
Онлайн: 5
Время:
Gen. 0.1387
(c) Bym.Guru 2010-2025