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

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

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

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

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

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

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

44
zzloй гений!
28 / 28 / 2
Регистрация: 13.09.2009
Сообщений: 218
14.08.2011, 17:04
Студворк — интернет-сервис помощи студентам
Уже было сказано как делается в профессиональный приложениях.
Используйте этот способ и не разводите флейм.
Или же приводите поримеры кода, а не просто мысли.
0
1 / 1 / 0
Регистрация: 10.08.2011
Сообщений: 9
14.08.2011, 17:08  [ТС]
Maksimchikfull, есть аська или скайп? в ЛС
0
Веб-мастер
 Аватар для Maksimchikfull
89 / 89 / 19
Регистрация: 11.08.2011
Сообщений: 674
24.08.2011, 01:29
Мне интересен стал трюк с сессиями которые проверяются на существование. Напишите код как идёт проверка.

Что то типо этого у меня в голову приходит:
PHP
1
2
3
4
5
<?php
$result = mysql_query("SELECT `id` FROM `users` WHERE `online` = '1'");
$row = mysql_fetch_array($result);
if(!isset($_SESSION['ID']))...
?>
Вообщем я не представляю как сделать, но это точно не работает.
0
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
13.06.2013, 09:49
Цитата Сообщение от Maksimchikfull Посмотреть сообщение
Да получиться. Можно достать данные из БД и сверять. Я точно не понял как вы хотите ну попробую написать код. =)
[PHP]<?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['o.........
Простите кто-нибудь проверял как это работаеть?? или что посоветуете - хочу сделать тоже систему online\offline??
0
 Аватар для KSiS
26 / 26 / 16
Регистрация: 03.06.2013
Сообщений: 138
13.06.2013, 11:08
добавьте в таблицу с пользователями столбец например "last_update"
Если сайт не ajax то при переходе на любую страницу вставьте код
который редактировал бы last_update = time()
И условие: if (([last_update] + [время сохранения статуса]) > time() { [пользователь онлайн] } else { [пользователь оффлайн] }
0
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
13.06.2013, 11:21
KSiS, круто)) простенько и эргономично) к стати мне показалось что тут не хватает скобки что бы было так : time()) ???

Добавлено через 7 минут
хотя стоп туплю) все там хватает))
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
13.06.2013, 11:30
Цитата Сообщение от DanteLoL Посмотреть сообщение
KSiS, круто)) простенько и эргономично) к стати мне показалось что тут не хватает скобки что бы было так : time()) ???

Добавлено через 7 минут
хотя стоп туплю) все там хватает))
Нет, скобка действительно нужна.
0
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
13.06.2013, 12:11
вот сделал такое обновление даты и времени:
PHP
1
2
$date = date("Y-m-d H:i");
$resultonline = mysql_query("UPDATE users SET timeout='$date' WHERE id='$id'",$db);
- это работает время заносится в базу

а потом вот так косячно сделал проверку - естественно не поперло(
PHP
1
2
3
4
5
6
7
8
9
if ($myrow['timeout'] + '0000-00-00 00:30:00') > time()) {
print <<<HERE
офлайн
HERE;
}else{
print <<<HERE
онлайн
HERE;
}
у меня всегда плохо получается в PHP вычислять подкажите как исправить пожалуйста!)
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
13.06.2013, 12:34
Oracle 11 SQL
1
SELECT timeout FROM users WHERE timeout < DATEADD(MINUTE, -30, GETDATE());
0
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
14.06.2013, 13:48
KoIIIeY, тоесть типа так?

PHP
1
2
3
4
5
6
7
8
9
10
11
$uslovie= SELECT timeout FROM users WHERE timeout < DATEADD(MINUTE, -30, GETDATE());
 
if ($uslovie == true) {
print <<<HERE
офлайн
HERE;
}else{
print <<<HERE
онлайн
HERE;
}
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
14.06.2013, 14:07
Это просто выборка всех пользователей, которые были за последние 30 минут.
Добавь where user_id = 'your_user_id', тогда будет выборка по пользователю.
1
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
14.06.2013, 14:08
сори с просони ерунду написал) вернее
PHP
1
$uslovie=mysql_query(SELECT timeout FROM users WHERE timeout < DATEADD(MINUTE, -30, GETDATE());
0
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
14.06.2013, 14:13
KoIIIeY, спасибо!) слушай а у вас тут реально крутой форум! темы вытаскивают класно аж приятно что зарегился а то бывает типа такого:
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
14.06.2013, 14:19
Цитата Сообщение от DanteLoL Посмотреть сообщение
KoIIIeY, спасибо!) слушай а у вас тут реально крутой форум! темы вытаскивают класно аж приятно что зарегился а то бывает типа такого:Вложение 282153
ну да, неожиданно удобно тут бывает.
Но в любом случае, я бы тебе советовал так же искать ответы на stackoverflow, все таки там сообщество побольше
0
 Аватар для KSiS
26 / 26 / 16
Регистрация: 03.06.2013
Сообщений: 138
14.06.2013, 14:32
Да скобку пропустил, но главное смысл. Просто и работает.
0
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
14.06.2013, 15:44
PHP
1
2
3
4
5
6
7
8
9
10
$onstat = mysql_query(SELECT timeout FROM users WHERE id='$id', timeout < DATEADD(MINUTE, -30, GETDATE());
if ($onstat=='TRUE') {
print <<<HERE
офлайн
HERE;
}else{
print <<<HERE
онлайн
HERE;
}
ошибку выдает(( может не через проверку на true\false делать?? как думаете?
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
14.06.2013, 15:54
'true' - строка со словом true
true - bool

это раз.
PHP
1
$uslovie=mysql_query('SELECT timeout FROM users WHERE timeout < DATEADD(MINUTE, -30, GETDATE()) and id = ' . $id);
То есть, не ",", а слово AND объединяет два условия. Это два.

И третье: SQL запрос в кавычки клади, хоть пыха старых версий и съест это, но так не делают.
Все строки должны быть однозначными строками.
1
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
14.06.2013, 16:25
хаха ну вроде вот так сделал без болеанов) но начал какой то трэш твориться)

в начале страницы - устанавливается (если на страницу вошел ее владелец) обновляется таймаут (эта часть орбит!)
PHP
1
2
$date = date("Y-m-d H:i");
$resultonline = mysql_query("UPDATE users SET timeout='$date' WHERE id='$id'",$db);

потом следом проверка и вывод статуса:
PHP
1
2
3
4
5
6
7
8
9
10
$onstat = mysql_query("SELECT id FROM users WHERE id='$id' AND timeout < DATEADD(SECOND, -30, GETDATE()");
if ($onstat == '$id') {
print <<<HERE
онлайн
HERE;
}else{
print <<<HERE
Офлайн
HERE;
}
и в чем соль) - если стоит знак строго равенства '==' то все становятся офлайнами если просто равенства '=' то все резко онлайн)
0
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
14.06.2013, 17:20
ты путаешь.

В PHP = - это присвоение.
== - равенство, нестрогое.
=== - равенство строгое

примеры:
1 == true // true
1 === true // false
true === true // true

У тебя и должны быть все онлайн. Ты обновляешь статус и тут же проверяешь, обновлялся ли он за последние 30 минут.

Добавлено через 2 минуты
И ты проверяешь только пользователя, под которым ты в данный момент, надеюсь ты это понимаешь.
Тебе стоит подучить матчасть в целом и базовый кодинг стайл.
1
 Аватар для DanteLoL
5 / 6 / 2
Регистрация: 13.06.2013
Сообщений: 134
14.06.2013, 22:31
KoIIIeY, не сори я поясню) под переменной $id - стоит id хозяина странички) тоесть он проверят таймаут хзяина)
Цитата Сообщение от KoIIIeY Посмотреть сообщение
ты путаешь.
В PHP = - это присвоение.
да) вспомнил это я недавно Яваскрипт изучал азы в голове каша)

Добавлено через 27 минут
судя по тому как ведет себя скрипт почему то переменная $onstat не устанавливается... мне кажется

Добавлено через 4 часа 6 минут
PHP
1
2
3
4
5
6
7
8
9
10
11
$onstat = mysql_query("SELECT id FROM users WHERE id='$id' AND timeout < DATEADD(MINUTE, -1, GETDATE())",$db);
$onlinestat = mysql_fetch_array($onstat);
if ($onlinestat['id'] == $id) {
print <<<HERE
онлайн
HERE;
}else{
print <<<HERE
Офлайн
HERE;
}
переделал вот так, чтобы mysql_fetch_array вернула мне болеан и запустила соответственно if else но возвращять не хочет пишет Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in - не возвращяет тру в болеане - следовательно
PHP
1
$onstat = mysql_query("SELECT id FROM users WHERE id='$id' AND timeout < DATEADD(MINUTE, -1, GETDATE())",$db);
тут гдето ошибка мне кажется...\ ??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.06.2013, 22:31

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
Текстовый слайдер с нумерацией страниц и кроссбраузерность.
russiannick 18.07.2026
Один мой друг написал текстовый слайдер с нумерацией страниц. Сегодня я расскажу как он умудрился подружить его с кроссбраузерностью. Очевидно сложно угодить с шириной каждому браузеру. Один крадет. . .
Грибы - это мемы, дерево - это человек. Применение микоризной модели к теории меметики Докинза.
anaschu 18.07.2026
Меметический изоморфизм теории «всего»: Грибная сукцессия как модель эволюции идей Докинза Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а универсальную. . .
Грибы - это корпорации, деревья - это государства. Механизм массонского захвата власти
anaschu 18.07.2026
Макроэкономический изоморфизм теории «всего»: Грибная сукцессия как модель транснационального капитализма Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а. . .
Расчёт периметра прямоугольника по координатам вершин
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости. Решение: Создан документ со следующими. . .
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово. Решение: Создан документ с единственным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru