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

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

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


Ток начал изучать PHP, кто может помочь напишите пожалуйста код проверки статуса пользователя на сайте с использованием БД MySQL
Спасибо зарание
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.08.2011, 16:41
Ответы с готовыми решениями:

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

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

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

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

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

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


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

Онлайн проверяется через сессии.
1
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
10.08.2011, 20:46 8
chezz, не задумывался никогда над реализацией.
Получается, просто смотрят, когда на сервере сессия помрет? Ну, по факту, логично.
Че-то под вечер не соображаю
0
1 / 1 / 0
Регистрация: 10.08.2011
Сообщений: 9
11.08.2011, 00:04  [ТС] 9
Цитата Сообщение от chezz Посмотреть сообщение
Онлайн проверяется через сессии.
ну поделитесь, пожалуйста кодом, или хотя бы обьясните суть проверки сессии
0
zzloй гений!
28 / 28 / 2
Регистрация: 13.09.2009
Сообщений: 218
11.08.2011, 01:48 10
Цитата Сообщение от 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
Веб-мастер
89 / 89 / 19
Регистрация: 11.08.2011
Сообщений: 674
11.08.2011, 11:37 11
Это можно организовать на 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  [ТС] 12
Maksimchikfull, спасибо огромное за код.
зы.
Как вывод надписи "Онлайн" сделать в профиле пользователя?
Через echo получится?
0
Веб-мастер
89 / 89 / 19
Регистрация: 11.08.2011
Сообщений: 674
11.08.2011, 21:40 13
Да получиться. Можно достать данные из БД и сверять. Я точно не понял как вы хотите ну попробую написать код. =)
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  [ТС] 14
Maksimchikfull, спасибо!
вот мне эту функцию надо внедрить в движек sharetronix
Что бы на странице пользователя выводилось его статус на сайте (онлайн/оффлайн)
Сейчас буду тестить на локалке
0
450 / 203 / 27
Регистрация: 23.12.2010
Сообщений: 645
13.08.2011, 07:30 15
Цитата Сообщение от KoIIIeY Посмотреть сообщение
Посредством JScript пользователь будет каждые 2-3 минуты отправлять тебе AJAX запрос, о том что он он-лайн. Если запроса не поступило от пользователя - он офф.
Других вариантов не вижу.
лучше в базу скидывать сессии и смотреть если там нет сессии для пользователя то он офлайн иначе онлайн.
1
1 / 1 / 0
Регистрация: 10.08.2011
Сообщений: 9
13.08.2011, 15:02  [ТС] 16
Цитата Сообщение от Sulik78 Посмотреть сообщение
лучше в базу скидывать сессии и смотреть если там нет сессии для пользователя то он офлайн иначе онлайн.
хм..Типа создавать рядок в БД, в который будет запихиваться сессии? Потом задать запрос каждое н-ое количество минут. Я правильно Вас понял?
0
zzloй гений!
28 / 28 / 2
Регистрация: 13.09.2009
Сообщений: 218
13.08.2011, 15:25 17
Цитата Сообщение от PhP_dev_amator Посмотреть сообщение
хм..Типа создавать рядок в БД, в который будет запихиваться сессии? Потом задать запрос каждое н-ое количество минут. Я правильно Вас понял?
У пользователя которого есть строчка в таблице сессии мы считаем онлайн
0
Комбинатор
979 / 248 / 13
Регистрация: 10.03.2010
Сообщений: 3,556
13.08.2011, 17:32 18
Цитата Сообщение от KoIIIeY Посмотреть сообщение
Посредством JScript пользователь будет каждые 2-3 минуты отправлять тебе AJAX запрос, о том что он он-лайн. Если запроса не поступило от пользователя - он офф.
Других вариантов не вижу.
Жестоко... Для начинающего...

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

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

Если учесть тех, у кого просто открыта страница / вкладка - через ajax тыкать по php скрыпту.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.08.2011, 16:46

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.