Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/104: Рейтинг темы: голосов - 104, средняя оценка - 4.54
1 / 1 / 0
Регистрация: 10.08.2011
Сообщений: 9

Статус пользователя на сайте (онлайн/ оффлайн)

10.08.2011, 16:41. Показов 19833. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ток начал изучать PHP, кто может помочь напишите пожалуйста код проверки статуса пользователя на сайте с использованием БД MySQL
Спасибо зарание
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.08.2011, 16:41
Ответы с готовыми решениями:

Re: Статус пользователя на сайте (онлайн/ оффлайн)
может и мне кто поможет, не могу разобраться: мои переменные ".table_users." - таблица с польователями ...

Статус пользователя на сайте (онлайн/ оффлайн) на php
Как сделать чтобы заработал онлайн и какой код для этого на писать нужно??? Помогите пожалуйста его сделать очень нужно)))

Изменить статус онлайн на оффлайн
Понимаю, что вопрос может показаться многим не относящийся к данной ветке. Но суть интересует следующая! Выход пользователя с сайта...

44
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
10.08.2011, 16:54
Java Script хорошо знаешь?
0
210 / 204 / 52
Регистрация: 25.07.2010
Сообщений: 1,162
10.08.2011, 17:00
тоже интересует
неужели создавать таблицу в мускуле и каждую секунду обновлять?
KoIIIeY, причем тут яваскрипт
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
10.08.2011, 17:18
Посредством JScript пользователь будет каждые 2-3 минуты отправлять тебе AJAX запрос, о том что он он-лайн. Если запроса не поступило от пользователя - он офф.

Других вариантов не вижу.
1
1 / 1 / 0
Регистрация: 10.08.2011
Сообщений: 9
10.08.2011, 17:29  [ТС]
KoIIIeY, ну кинь скрипт JS


borovik, Не обезательно каждую секунду, можно пускать один запрос к БД раз 10 в 15 мин.
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
10.08.2011, 17:37
Я только мысль предложил, этого скрипта у меня нет. Ищите, что сказать.
0
zzloй гений!
28 / 28 / 2
Регистрация: 13.09.2009
Сообщений: 218
10.08.2011, 20:12
Цитата Сообщение от KoIIIeY Посмотреть сообщение
Я только мысль предложил, этого скрипта у меня нет. Ищите, что сказать.
Мысль не плохая, но так никто не делает.

Онлайн проверяется через сессии.
1
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
10.08.2011, 20:46
chezz, не задумывался никогда над реализацией.
Получается, просто смотрят, когда на сервере сессия помрет? Ну, по факту, логично.
Че-то под вечер не соображаю
0
1 / 1 / 0
Регистрация: 10.08.2011
Сообщений: 9
11.08.2011, 00:04  [ТС]
Цитата Сообщение от chezz Посмотреть сообщение
Онлайн проверяется через сессии.
ну поделитесь, пожалуйста кодом, или хотя бы обьясните суть проверки сессии
0
zzloй гений!
28 / 28 / 2
Регистрация: 13.09.2009
Сообщений: 218
11.08.2011, 01:48
Цитата Сообщение от PhP_dev_amator Посмотреть сообщение
ну поделитесь, пожалуйста кодом, или хотя бы обьясните суть проверки сессии
Запрос должен быть такой:
PHP
1
2
3
4
5
$time = date('Y-m-d H:i:s', time() - 60 * 5);
$sql = "SELECT * FROM sessions WHERE id_user = '$id' AND time_last > '$time'";
и тд
 
только аргументы обработай обязательно
1
Веб-мастер
 Аватар для Maksimchikfull
89 / 89 / 19
Регистрация: 11.08.2011
Сообщений: 674
11.08.2011, 11:37
Это можно организовать на PHP. Только я чуть модифицировал код тут на сайте, у себя его пока что не испытал.

Когда пользователь авторизируеться, то переменная $_SESSION['ONLINE'] принимает timestamp + 30 секунд.
PHP
1
2
3
4
<?php
$_SESSION['ID'] = $row['id'];
$_SESSION['ONLINE'] = strtotime('+30 sec');
?>
Потом идёт следующий код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if($_SESSION['ID'] != "")
{   
    if($_SESSION['ONLINE'] >= strtotime('now'))
    {
        $onlinetime = strtotime('+1 min');
        mysql_query("UPDATE `users` SET `online`='1',`onlinetime`='$onlinetime' WHERE `id`='$_SESSION[ID]'");
    }
    $result = mysql_query("SELECT `id` FROM `users` WHERE `onlinetime`<'" . strtotime('now') . "'");
    $row = mysql_fetch_array($result);
    do
    {
        mysql_query("UPDATE `users` SET `online`='0' WHERE `id`='$row[id]'");
    }
    while($row = mysql_fetch_array($result));
}
?>
2
1 / 1 / 0
Регистрация: 10.08.2011
Сообщений: 9
11.08.2011, 16:57  [ТС]
Maksimchikfull, спасибо огромное за код.
зы.
Как вывод надписи "Онлайн" сделать в профиле пользователя?
Через echo получится?
0
Веб-мастер
 Аватар для Maksimchikfull
89 / 89 / 19
Регистрация: 11.08.2011
Сообщений: 674
11.08.2011, 21:40
Да получиться. Можно достать данные из БД и сверять. Я точно не понял как вы хотите ну попробую написать код. =)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
// Функция
function onlinestatus($usersid)
{
    $result = mysql_query("SELECT `online` FROM `users` WHERE `online` = '$userid'");
    $row = mysql_fetch_array($result);
    if($row['online'] == 0)
    {
        $onlinestatus = "<font color='#F00000'>Оффлайн</font>";
    }
    elseif($row['online'] == 1)
    {
        $onlinestatus = "<font color='#00F000'>Онлайн</font>";
    }
    return $onlinestatus;
}
 
// Использование
$onlinestatus = onlinestatus(/* Сюда вставляеш переменную с идентификатором пользователя. К примеру из переменной GET, или из сессии $_SESSION['ID']*/);
 
// К примеру
$onlinestatus = onlinestatus($_GET['userid']);
 
echo "$onlinestatus";
?>
Думаю вы что то типо такого хотели? Если что спрашивайте. Помогу как смогу!

Удачи!
1
1 / 1 / 0
Регистрация: 10.08.2011
Сообщений: 9
12.08.2011, 14:20  [ТС]
Maksimchikfull, спасибо!
вот мне эту функцию надо внедрить в движек sharetronix
Что бы на странице пользователя выводилось его статус на сайте (онлайн/оффлайн)
Сейчас буду тестить на локалке
0
 Аватар для Sulik78
450 / 203 / 27
Регистрация: 23.12.2010
Сообщений: 645
13.08.2011, 07:30
Цитата Сообщение от KoIIIeY Посмотреть сообщение
Посредством JScript пользователь будет каждые 2-3 минуты отправлять тебе AJAX запрос, о том что он он-лайн. Если запроса не поступило от пользователя - он офф.
Других вариантов не вижу.
лучше в базу скидывать сессии и смотреть если там нет сессии для пользователя то он офлайн иначе онлайн.
1
1 / 1 / 0
Регистрация: 10.08.2011
Сообщений: 9
13.08.2011, 15:02  [ТС]
Цитата Сообщение от Sulik78 Посмотреть сообщение
лучше в базу скидывать сессии и смотреть если там нет сессии для пользователя то он офлайн иначе онлайн.
хм..Типа создавать рядок в БД, в который будет запихиваться сессии? Потом задать запрос каждое н-ое количество минут. Я правильно Вас понял?
0
zzloй гений!
28 / 28 / 2
Регистрация: 13.09.2009
Сообщений: 218
13.08.2011, 15:25
Цитата Сообщение от PhP_dev_amator Посмотреть сообщение
хм..Типа создавать рядок в БД, в который будет запихиваться сессии? Потом задать запрос каждое н-ое количество минут. Я правильно Вас понял?
У пользователя которого есть строчка в таблице сессии мы считаем онлайн
0
Комбинатор
 Аватар для DenQ
980 / 252 / 13
Регистрация: 10.03.2010
Сообщений: 3,556
13.08.2011, 17:32
Цитата Сообщение от KoIIIeY Посмотреть сообщение
Посредством JScript пользователь будет каждые 2-3 минуты отправлять тебе AJAX запрос, о том что он он-лайн. Если запроса не поступило от пользователя - он офф.
Других вариантов не вижу.
Жестоко... Для начинающего...

Делаем элементарную таблицу визитов, в которую как минимум записываем id, id_user, id_page, dt_action[дата].
Затем пишем скрипт которые читает эту таблицу и выводит всех пользователей уникальных, за последние 5 минут. И вот у нас уже есть массив пользователей которые потенциально в онлайне... все! делаем с ними что хотим...

Добавлено через 2 минуты
Цитата Сообщение от PhP_dev_amator Посмотреть сообщение
Ток начал изучать PHP, кто может помочь напишите пожалуйста код проверки статуса пользователя на сайте с использованием БД MySQL
Спасибо зарание
Тут не пишут код, тут помогают разобраться в нем... и натолкнуть на правильную мысль...
Хотите что б в вам написали модуль для сайта, обращайтесь в раздел фриланса.
Не за что!
0
Веб-мастер
 Аватар для Maksimchikfull
89 / 89 / 19
Регистрация: 11.08.2011
Сообщений: 674
14.08.2011, 11:15
Я с каждым жнём могу улутшить код онлайна. Если что пиши. =)
0
 Аватар для Zhecky
20 / 20 / 3
Регистрация: 13.07.2011
Сообщений: 73
14.08.2011, 16:46
Мне кажется, лучше хранить в базе время последнего обновления какой-нибудь странице (или обращения к php скриптам). Потом из базы отфильтровать тех, которые обновляли страницу дольше 10-15 мин назад.

Если учесть тех, у кого просто открыта страница / вкладка - через ajax тыкать по php скрыпту.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.08.2011, 16:46
Помогаю со студенческими работами здесь

Статус онлайн-оффлайн пользователя
У меня есть таблица с пользователями: ид, логин, пароль... статус. Как сделать так, чтобы статус менялся на 0, если пользователь не делает...

Как сделать статус пользователя "Онлайн/Оффлайн"?
Добрый вечер. Есть профиль пользователей, который могут просматривать другие пользователи. Как сделать чтобы показывало если пользователь...

Вывод статуса пользователя (онлайн/оффлайн)
Есть такие фишки, как статус онлайн на сайте - пока человек активен - есть надпись online, а когда ушел спустя 10 минут, она исчезает, как...

Какие операторы нужно выучить, чтобы сделать программу, проверяющую сетевой статус пользователя на сайте
Всем привет. Я начинающий программист, интересует вопрос: какие операторы нужно выучить, чтобы сделать программу, проверяющую сетевой...

статус оффлайн без logout'a вручную
допустим у меня есть авторизация с помощью БД и сессии, в бд есть поле status, которое показывает онлайн пользователь или нет. естественно,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru