Тема: Як взнати чи користувач онлайн ???
Як взнати чи користувач онлайн на сайті, а якщо ні, то виводити час його останього візиту ???
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → PHP → Як взнати чи користувач онлайн ???
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Як взнати чи користувач онлайн на сайті, а якщо ні, то виводити час його останього візиту ???
Концептуальне: "користувачів онлайн" не буває. Користувач надсилає запит, сервер відповідає - але сервер достеменно не знає, чи отримав користувач відповідь. А на сайтах просто відраховують певний час (15 хвилин, скажімо, чи 1 хв, якщо сайт часто запитує щось в сервера) від останнього запиту користувача, і в цей час пишуть, що він "онлайн".
По такому принципу..
Зпочатку оновлюєте таблицю користувача,з полем онлайну,де айді = айді авторизованого користувача
$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 код не перевіряв,писав з памяті.
По такому принципу..
Зпочатку оновлюєте таблицю користувача,з полем онлайну,де айді = айді авторизованого користувача
$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 код не перевіряв,писав з памяті.
Дуже дякую . . .
Концептуальне: "користувачів онлайн" не буває. Користувач надсилає запит, сервер відповідає - але сервер достеменно не знає, чи отримав користувач відповідь. А на сайтах просто відраховують певний час (15 хвилин, скажімо, чи 1 хв, якщо сайт часто запитує щось в сервера) від останнього запиту користувача, і в цей час пишуть, що він "онлайн".
Вже буває, технологія websockets дозволяє це робити...
Можна заглянути також сюди https://www.websocket.org/
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися