1

Тема: Як взнати чи користувач онлайн ???

Як взнати чи користувач онлайн на сайті, а якщо ні, то виводити час його останього візиту ???

2 Востаннє редагувалося koala (14.10.2014 17:18:43)

Re: Як взнати чи користувач онлайн ???

Концептуальне: "користувачів онлайн" не буває. Користувач надсилає запит, сервер відповідає - але сервер достеменно не знає, чи отримав користувач відповідь. А на сайтах просто відраховують певний час (15 хвилин, скажімо, чи 1 хв, якщо сайт часто запитує щось в сервера) від останнього запиту користувача, і в цей час пишуть, що він "онлайн".

3 Востаннє редагувалося VTrim (14.10.2014 13:28:51)

Re: Як взнати чи користувач онлайн ???

По такому принципу..

Зпочатку оновлюєте таблицю користувача,з полем онлайну,де айді = айді авторизованого користувача

$db->query("UPDATE `users` SET `online` = '" . time() . "' WHERE `id` = '".$user['id']."' LIMIT 1");

А вже наприклад в анкеті користувача перевіряєте онлайн чи ні,так..

$id = abs(intval($_GET['id'])); //id в GET
$result = $db->query("SELECT `id`, `online` FROM `users` WHERE `id` = '$id' LIMIT 1"); //витягуємо дані
$online = $result->fetch_assoc(); //створення массиву з даними
if($online['online'] + 300 > time()) //якщо є активність
{
echo 'Користувач Онлайн';
}
else
{
echo 'Користувач заходив'. date("j M Y в H:i", $online['online']);
}

p/s код не перевіряв,писав з памяті.

=)

4

Re: Як взнати чи користувач онлайн ???

VTrim написав:

По такому принципу..

Зпочатку оновлюєте таблицю користувача,з полем онлайну,де айді = айді авторизованого користувача

$db->query("UPDATE `users` SET `online` = '" . time() . "' WHERE `id` = '".$user['id']."' LIMIT 1");

А вже наприклад в анкеті користувача перевіряєте онлайн чи ні,так..

$id = abs(intval($_GET['id'])); //id в GET
$result = $db->query("SELECT `id`, `online` FROM `users` WHERE `id` = '$id' LIMIT 1"); //витягуємо дані
$online = $result->fetch_assoc(); //створення массиву з даними
if($online['online'] + 300 > time()) //якщо є активність
{
echo 'Користувач Онлайн';
}
else
{
echo 'Користувач заходив'. date("j M Y в H:i", $online['online']);
}

p/s код не перевіряв,писав з памяті.

Дуже дякую . . .

5 Востаннє редагувалося ktretyak (15.10.2014 18:56:50)

Re: Як взнати чи користувач онлайн ???

koala написав:

Концептуальне: "користувачів онлайн" не буває. Користувач надсилає запит, сервер відповідає - але сервер достеменно не знає, чи отримав користувач відповідь. А на сайтах просто відраховують певний час (15 хвилин, скажімо, чи 1 хв, якщо сайт часто запитує щось в сервера) від останнього запиту користувача, і в цей час пишуть, що він "онлайн".

Вже буває, технологія websockets дозволяє це робити...
Можна заглянути також сюди https://www.websocket.org/