Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP. Кто в онлайне???

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

DiAbLo

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как определить кто в онлайне на твоём сайте! (зарегестрированные конечно)

Всего записей: 17 | Зарегистр. 20-07-2004 | Отправлено: 07:21 20-07-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DiAbLo

Цитата:
как определить кто в онлайне на твоём сайте! (зарегестрированные конечно)

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


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 07:24 20-07-2004
DiAbLo

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
мне не нада определять СКОКО ПОЛЬЗОВАТЕЛЕЙ В ОНЛАЙНЕ, а кто в онлайне из зарегестрированных

Всего записей: 17 | Зарегистр. 20-07-2004 | Отправлено: 07:33 20-07-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DiAbLo

Цитата:
мне не нада определять СКОКО ПОЛЬЗОВАТЕЛЕЙ В ОНЛАЙНЕ, а кто в онлайне из зарегестрированных

какая разница.. записывать кто залогинился.. все равно нужен код скрипта авторизации.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 07:34 20-07-2004
DiAbLo

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
код авторизации.. хм я сам не знаю че там делать после того как проверка прошла успешно (пасы равны логин такой существует итд) ???
не подскажешь ???

Цитата:
мне 14 лет


Всего записей: 17 | Зарегистр. 20-07-2004 | Отправлено: 07:45 20-07-2004
nicy



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну надо делать так. В том месте где скрипт определяет пользователя надо записывать этого пользователя в базу данных или в файл и ещё надо записать его время. Если юзер не мембер то писать его ип вместо имени. И проверять время других юсеров в этом же файле на время воследнего посящения и настоящее время. Точно знать кто на сайте в один и тот же момент что и ты нельзя.
 
Я пхп знаю плохо так что код сам придумай.

Всего записей: 198 | Зарегистр. 09-01-2002 | Отправлено: 08:25 20-07-2004
DiAbLo

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сенк хоть за это

Всего записей: 17 | Зарегистр. 20-07-2004 | Отправлено: 11:49 20-07-2004
TBFG



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Насколько знаю, никак нельзя. Разве что только с помощью сессий можно организовать что-то подобное.
Топай сюда
 
 http://www.php.net/manual/ru/function.session-start.php
 
К сожалению по аглицки все.
 
Весь учет долже быть построен примерно по типу корзины в интернет магазине.  Там тотже принцип. Переменная сохраняеться од тех пор, пока покупатель не сайте, ходит от страницы к странице. Переменная становится недоступной когда посетитель уходит, или когда совершает заказ. В твоем случае переменная должна пропасть когда посетитель уходит.

Всего записей: 584 | Зарегистр. 10-07-2004 | Отправлено: 23:15 20-07-2004
Church



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Насколько знаю, никак нельзя. Разве что только с помощью сессий можно организовать что-то подобное.  
 

 
Не только... Организовать можно многими способами... Не только сессиями...
 
 
DiAbLo
nicy правильно алгоритм посоветовал...
Как вариант, можно добавить "невидимый фрейм", который будет перезагружаться.... ну через определенное время... и сообщать скрипту логин пользователя, который в данный момент на сайте.. Полезно в случаях, когда пользователи открывают страницы и... читают их долгое время...
 
Ты намудри - покажи - посмотрим - исправим Тока сильно не мудри, чтобы разобраться было можно...

Всего записей: 1199 | Зарегистр. 05-09-2003 | Отправлено: 01:56 21-07-2004
SiMM

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как вариант, можно добавить "невидимый фрейм", который будет перезагружаться.... ну через определенное время...
Считать пользователя "лохом" - не лучшее решение. Не каждому пользователю нравится, когда страничка неоправданно генерирует туеву хучу траффика. А приблуда "кто в онлайне" - это лишь приблуда, а не суперважная задача, которую необходимо суперточно решить, тем более понятие "кто в онлайне" для HTML вообще не имеет смысла.

Всего записей: 2302 | Зарегистр. 14-05-2004 | Отправлено: 04:58 21-07-2004
Gimmi

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
да что там сожного.... просто в БД там где зарегистрированные пользователи писать последний видит. Например у тебя пользователь будет считаться умершим через 5 минут бездействия. так вот. При генерации страницы, делаешь выборку из бд, с условием, что последний визит не больше x числа. Если больше, то пользовтаель не в онлайне.

Всего записей: 361 | Зарегистр. 09-02-2004 | Отправлено: 13:17 21-07-2004
Church



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Считать пользователя "лохом" - не лучшее решение. Не каждому пользователю нравится, когда страничка неоправданно генерирует туеву хучу траффика. А приблуда "кто в онлайне" - это лишь приблуда, а не суперважная задача, которую необходимо суперточно решить, тем более понятие "кто в онлайне" для HTML вообще не имеет смысла.

 
Я и не считаю пользователя "лохом"... Кроме того, я предложил "как вариант"...
Ну а если считать, что открытие пустой странички - туева хуча траффика....... Тогда чаты - только для мультимиллионеров
И вообще, тема вроде бы называется "кто в онлайне???" и не "для чего нужен онлайн???"

Всего записей: 1199 | Зарегистр. 05-09-2003 | Отправлено: 14:45 21-07-2004
DiAbLo

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Gimmi ты говоришь о MySQL - если да, то зря, потому что я не понимаю в MySQL

Всего записей: 17 | Зарегистр. 20-07-2004 | Отправлено: 15:03 21-07-2004
SiMM

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ну а если считать, что открытие пустой странички - туева хуча траффика.......
А ты посчитай объём принимаемых пользователем заголовков (а если платен ещё и исходящий траффик - то добавь и исходящие заголовки), умножь на среднее время "просиживания" на сайте и подели на время между рефрешами. И главное, траффик - совершенно бесполезный и бессмысленный - в таких случаях разумнее пользоваться иными протоколами (например, IRC, ICQ) и специальными клиетами, а не вэб-браузером.

Всего записей: 2302 | Зарегистр. 14-05-2004 | Отправлено: 16:04 21-07-2004
Gimmi

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DiAbLo

Цитата:
Gimmi ты говоришь о MySQL - если да, то зря, потому что я не понимаю в MySQL

о ней самой, о MySql... если не понимаешь, то лучше тебе в ней разобраться. рутины меньше будет.

Всего записей: 361 | Зарегистр. 09-02-2004 | Отправлено: 17:06 21-07-2004
Nazarius



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SiMM

Цитата:
Не каждому пользователю нравится, когда страничка неоправданно генерирует туеву хучу траффика.  

 
Так что-же делать? (c)
 
Что делать если такая приблуда нужна на сайте?  
Неужели и правда туева хуча?
Спецы, скажите не только что это плохо, но и как сделать хорошо

Всего записей: 107 | Зарегистр. 04-06-2003 | Отправлено: 20:22 07-09-2004
SiMM

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nazarius, она тебе нужна лишь только как приблуда, и ничего больше - никакой полезной смысловой нагрузки она не несёт, и является лишь фишкой для понтов. Посему для подобных целей вполне достаточно знать, как давно был последний запрос от пользователя, и если он был позднее, скажем, 10 минут (время подбирается эмпирически), то считать, что пользователь ушёл - т.е. имеем надпись не "кто в онлайне" (это вообще не имеющая под собой никаких оснований фраза), а более политкорректную "в течении последних 10 минут к сайту обращались".

Всего записей: 2302 | Зарегистр. 14-05-2004 | Отправлено: 22:43 07-09-2004
Advanced_Guest



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Naverhu uze skazali kak sdelat bez freima:
 
delajes zapis v fail tipa:
 
user | time | (drugaja infa)
 
Kazdii raz kogda smotris kto online beres tolko te u kogo time ne bolse chem seichas - 15minut.
Drugih - edaljaes-
 
I vsjo.
 
PS: na MySQL eto prose sdelat.. no mozno i na prostih failah

Всего записей: 2446 | Зарегистр. 14-04-2002 | Отправлено: 12:39 08-09-2004
vitovt



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Kazdii raz kogda smotris kto online beres tolko te u kogo time ne bolse chem seichas - 15minut.  

 
это как? это типа в запросе мускл now()- что?

Всего записей: 1087 | Зарегистр. 02-05-2002 | Отправлено: 11:41 28-07-2005
Mamay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vitovt
now() здесь вобщем-то не шибко поможет...
допустим у нас есть таблица с юзверями типа

Цитата:
 
users
----------------------------------------------------------------------
id  | Name          | Pass            | LastAccessTime | .....
----------------------------------------------------------------------
int | varchar(25) | varchar(25) | int(11)                |
----------------------------------------------------------------------

тогда в скрипте авторизации делаем

Код:
mysql_query('UPDATE `users` SET `LastAccessTime`='.time().'WHERE `Name`=\''.$user_name.'\' AND `Pass`=\''.$pass."'");

так мы получили время последнего доступа пользователя на сайт
а в скрипте кто в онлан делаем запрос вида

Код:
mysql_query('SELECT * FROM `users` WHERE `LastAccessTime`>'.time()-60*$n);

получим всех кто заходил последние $n минут
 
Вопросы?
 
 
 
 
Добавлено:
Другой вариант запроса на получение пользователей

Код:
mysql_query('SELECT * FROM `users` WHERE `LastAccessTime`>'.strtotime("-5 min"));

strtotime();

----------
Даже самый дурацкий замысел можно выполнить мастерски

Всего записей: 1352 | Зарегистр. 03-09-2002 | Отправлено: 14:44 28-07-2005 | Исправлено: Mamay, 14:45 28-07-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP. Кто в онлайне???


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru