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

Как проверить пользователь online или ofline?

07.06.2012, 09:04. Показов 14637. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Создаю свой сайт знакомств. Возник вопрос как проверить пользователь online или ofline? Есть предположения завести таймер занести его ip адрес в базу данных и каждые 30 сек проверять есть ли такой ip или нет. Может быть Вы посоветуете мне какую-нибудь другую идею.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.06.2012, 09:04
Ответы с готовыми решениями:

Как проверить, является ли пользователь редактором документа или нет?
хотел использовать @Authors, но эта функция не возвращает конкатенированного списка полей Authors.. какие еще способы есть?

При записи нового пользователя в sql проверить, не занят ли логин или не зарегистрирован ли пользователь
Привет! Такой вопрос, как в windows form при записи нового пользователя в sql проверять не занят ли логин или не зарегистрирован ли...

Как проверить если пользователь залогинился?
То есть если пользователь залогинился то показываем обычную страницу иначе он должен вести данные для входа. Начал с if и else да только...

19
156 / 53 / 4
Регистрация: 28.05.2012
Сообщений: 120
07.06.2012, 09:18
Да просто, когда пользователь заходит на любую страницу сайта, отмечать его как онлайн. И записывать время последнего открытия страницы. Если со времени последнего открытия им страницы прошло, например, больше 15 минут, изменять его статус на офлайн. Если используется что-то наподобие ajax, то там открытая страница может обмениваться данными с сервером сайта. Это можно использовать для подтверждения того, что пользователь на сайте.
Цитата Сообщение от Dmitriy78781 Посмотреть сообщение
Есть предположения завести таймер занести его ip адрес в базу данных и каждые 30 сек проверять есть ли такой ip или нет.
Где должен быть его ip? После того, как страница загружена, сокет разрывается, и присоединён или нет пользователь к сайту определить нельзя. Постоянное соединение существует, например, в некоторых чатах. Там загрузка страницы идёт постоянно, что и отображается браузером. Но, как вариант, можно использовать ajax, о чём я выше и написал. И по таймеру в загруженной страничке периодически устанавливать соединение с сайтом, если она открыта. И использовать это для подтверждения статуса.
0
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 53
07.06.2012, 09:54  [ТС]
У Вас есть исходники кода на Ajax?
0
21 / 21 / 2
Регистрация: 06.06.2012
Сообщений: 63
07.06.2012, 10:11
А почему бы не создать сессию и все, время жизни установить 15 минут, если сессия 15 минут не вызывается, то она удаляется и пользователь выходит в офлайн, как только заходит, для него создается новая сессия и он снова в онлайне
0
156 / 53 / 4
Регистрация: 28.05.2012
Сообщений: 120
07.06.2012, 11:45
Цитата Сообщение от Dmitriy78781 Посмотреть сообщение
У Вас есть исходники кода на Ajax?
Какого именно кода? Проверки присутствия пользователя? Нет. Но про эту технологию много написано, и библиотеки есть. Для сайта знакомств очень может пригодится. Например, новые личные сообщения проверять без перезагрузки страницы. И просто для проверки присутствия пользователя код сделать труда не составит, если немного разобраться.
0
07.06.2012, 12:08

Не по теме:

Цитата Сообщение от mizgirek Посмотреть сообщение
А почему бы не создать сессию и все, время жизни установить 15 минут, если сессия 15 минут не вызывается, то она удаляется и пользователь выходит в офлайн, как только заходит, для него создается новая сессия и он снова в онлайне
вот ты зашел на мою страницу , там должно быть написано online я или нет , как ты млин узнаешь со своим вариантом ?

0
21 / 21 / 2
Регистрация: 06.06.2012
Сообщений: 63
07.06.2012, 12:16
Цитата Сообщение от crautcher Посмотреть сообщение

Не по теме:


вот ты зашел на мою страницу , там должно быть написано online я или нет , как ты млин узнаешь со своим вариантом ?

Ну проверку сделать, если сессия для этого пользователя есть то он онлайн если нету то офлайн или так не прокатит?
0
07.06.2012, 12:19

Не по теме:

Цитата Сообщение от mizgirek Посмотреть сообщение
Ну проверку сделать, если сессия для этого пользователя есть то он онлайн если нету то офлайн или так не прокатит?
очень интересно и как вы проверите есть ли сейчас сессия у юзера ну там с никнеймом "юзер45" ?

0
21 / 21 / 2
Регистрация: 06.06.2012
Сообщений: 63
07.06.2012, 12:24
Цитата Сообщение от crautcher Посмотреть сообщение

Не по теме:


очень интересно и как вы проверите есть ли сейчас сессия у юзера ну там с никнеймом "юзер45" ?

Ну получается что пользователь будет зарегистрированный, можно проверку делать не по нику а по id, id всегда уникален. Да можно даже и по нику делать, он тоже по идее уникален. Сессию называть как ник и все
0
156 / 53 / 4
Регистрация: 28.05.2012
Сообщений: 120
07.06.2012, 12:26
Цитата Сообщение от mizgirek Посмотреть сообщение
или так не прокатит?
А если он сидит, страницу с твоего сайта пол часа читает. То есть. Фактически он на сайте, но сессия его закончится. Поэтому я и пишу, надо ajax использовать, и если у пользователя страница с сайта открыта, периодически с ней запросы серверу посылать. Ну а если пользователь в сети, но страницы данного сайта у него не открыты, тут уже ничего не поделаешь, только трояна ставить, или свой клиент писать и предлагать пользователям его установить, наподобие Агента майл.ру. Чтобы он оперативно клиента о полученных сообщениях информировал, или о появлении на сайте нужных ему людей. Можно для этого клиента и ещё кучу фич забабахать.
0
21 / 21 / 2
Регистрация: 06.06.2012
Сообщений: 63
07.06.2012, 12:33
Цитата Сообщение от Subrealist Посмотреть сообщение
тут уже ничего не поделаешь, только трояна ставить, или свой клиент писать и предлагать пользователям его установить, наподобие Агента майл.ру. Чтобы он оперативно клиента о полученных сообщениях информировал, или о появлении на сайте нужных ему людей. Можно для этого клиента и ещё кучу фич забабахать.
Идея то конечно хорошая, но слишком уж жирновато по моему для сайта знакомств
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
07.06.2012, 12:45
Цитата Сообщение от mizgirek Посмотреть сообщение
Сессию называть как ник и все
PHP
1
2
session_start();
session_name('boris');
ну и как найти сессию с именем борис ?
0
156 / 53 / 4
Регистрация: 28.05.2012
Сообщений: 120
07.06.2012, 13:04
Цитата Сообщение от mizgirek Посмотреть сообщение
Идея то конечно хорошая, но слишком уж жирновато по моему для сайта знакомств
Так сайт знакомств, это фактически социальная сеть. Там пользователи размещают свои данные, могут вести дневники, обмениваться личными сообщениями. Почему бы для него не сделать своего клиента? А набор дополнительных фич, устанавливаемых опционально, можно сделать погоду, котировки валют, новости, онлайн игры. По мне так написать такой клиент куда легче, чем привлечь на сайт достаточно народа, учитывая, что сейчас недостатка в сайтах знакомств нет, к тому же их роль также хорошо выполняют и социальные сети.
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
07.06.2012, 13:08
Цитата Сообщение от Subrealist Посмотреть сообщение
А если он сидит, страницу с твоего сайта пол часа читает.
при загрузке сделайте таймер , и пусть через 10 минут отправит аяксом данные мол я еще онлайн
0
21 / 21 / 2
Регистрация: 06.06.2012
Сообщений: 63
07.06.2012, 13:11
Цитата Сообщение от crautcher Посмотреть сообщение
PHP
1
2
session_start();
session_name('boris');
ну и как найти сессию с именем борис ?
PHP
1
2
3
4
5
6
7
8
9
10
<?
session_start();
$_SESSION['boris'] = "Online";
if (isset($_SESSION['boris'])){
    print "On";
}
else{
    print "Off";
}
?>
0
156 / 53 / 4
Регистрация: 28.05.2012
Сообщений: 120
07.06.2012, 13:18
Цитата Сообщение от crautcher Посмотреть сообщение
при загрузке сделайте таймер , и пусть через 10 минут отправит аяксом данные мол я еще онлайн
Так я про это и писал:
Цитата Сообщение от Subrealist
Поэтому я и пишу, надо ajax использовать, и если у пользователя страница с сайта открыта, периодически с ней запросы серверу посылать.
Только конкретно слово "таймер" не указал.
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
07.06.2012, 13:19
вот открой этот скрипт в одном браузере
PHP
1
2
3
4
5
6
7
8
9
10
<?
session_start();
$_SESSION['boris'] = "Online";
if (isset($_SESSION['boris'])){
  print "On";
}
else{
   print "Off";
}
?>
, а в другом открой скрипт где другое имя (этоже другой юзер)
PHP
1
2
3
4
5
6
7
8
9
10
<?
session_start();
$_SESSION['vovan'] = "Online";
if (isset($_SESSION['boris'])){
   print "On";
}
else{
   print "Off";
}
?>
, и хрен ты найдешь в браузере 2 то что ты декларируешь в браузере 1 ...
0
21 / 21 / 2
Регистрация: 06.06.2012
Сообщений: 63
07.06.2012, 13:56
Цитата Сообщение от crautcher Посмотреть сообщение
и хрен ты найдешь в браузере 2 то что ты декларируешь в браузере 1 ...
Да елки палки чего ты психуешь, я же только учусь. Согласен так наверное не получится.
Тогда можно каждой новой сессии задавать свой уникальный ID, ну пусть это будет ник
PHP
1
2
session_id('vovan');
session_id('boris');
Все сессии ложатся в одну папку с именами которые задаются в session_id, и оттуда уже можно проверять если файл с таким именем есть, то пользователь онлайн, если нету то офф
1
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
07.06.2012, 17:27
PHP
1
2
3
4
5
6
<?
ini_set('session.gc_probability', 1);
ini_set('session.save_path', '/var/www/absolux/test/');
session_id('vovan');
session_start();
var_dump(file_exists("/var/www/absolux/test/sess_vovan"));
действительно работает , ток после session_destroy(); файлец не пропадает
0
21 / 21 / 2
Регистрация: 06.06.2012
Сообщений: 63
08.06.2012, 06:28
Цитата Сообщение от crautcher Посмотреть сообщение
действительно работает , ток после session_destroy(); файлец не пропадает
Сейчас у себя проверил, вроде бы пропадает, хотя можно попробовать удалять не сессию, а файл сессии.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.06.2012, 06:28
Помогаю со студенческими работами здесь

Как проверить, включил ли пользователь GPS?
При запуске приложения пользователю предлагается включить GPS. Вот код: private void askForGpsLocation() { ...

Как на JS проверить сделал ли пользователь выбор в радиогруппе
Доброго времени суток! Подскажите,пожалуйста, как при помощи JS проверить, сделал ли пользователь выбор той или иной радиокнопки? ...

Как проверить, авторизован ли пользователь в соц сетях?
Как проверить авторизован ли пользователь в соц сетях ? Если пользователь авторизован то как запросить его id или E-mail

Как проверить, есть ли данный пользователь в БД MySQL?
как проверить с помощью оператора условий if .. else есть ли данный пользователь с данным паролем в БД если есть вывести одно сообщение...

Как можно проверить, выбрал ли пользователь OptionButon
Добрый вечер! Скажите, пожалуйста, как можно проверить выбрал ли пользователь OptionButon 1? Заранее спасибо!


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru