Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Подсчёт онлайна на сайте

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Ребят, поделитесь своим скриптом.
n1k86
Отправлено: 02 Ноября, 2011 - 19:41:11
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Всем привет. Ребят, поделитесь своим скриптом подсчёта онлайна на сайта, пожалуйста. В паблике ничего толкового, к сожалению, не нашёл... Буду благодарен!
(Добавление)
Или скажите хотя бы ГРАМОТНЫЙ алгоритм написания, сам напишу...
 
 Top
LIME
Отправлено: 03 Ноября, 2011 - 03:13:37
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




n1k86 имхо тривиальный алгоритм
в базе сделать поле время последнего посещения
проверять его периодически скажем раз в 5 мин

1 по cron (предпочтительно)
2 в файле хранить время последней проверки и проверять его при каждом запросе

опросив базу писать в файл онлайн и подключать его при выводе
(Добавление)
тут и чистка заодно произойдет тех кто не активен более 5 мин
ну и естественно аяксом бросать запросы периодически для обновления времени в базе
чтоб не выкинуло при простое браузера
 
 Top
ALEN
Отправлено: 04 Ноября, 2011 - 20:20:54
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




LIME
Для чего крон?
Создаем таблицу в базе (отдельную от обычной базы пользователей, чтоб не искать по списку пользователей-зомби). В таблице колонка time - с временной меткой time(). Вторая колонка id пользователя. Если человек авторизован и обновляет страницу, проверяем в наличии записи в таблице, если ее нет добавляем. Если есть обновляем метку time. В конце делаем дополнительный запрос, который убивает пользователей скажем с меньше чем time() - 300(5 минут) - операция будет не грузящая т.к. пользователей будет не так много.
Если нужно будет узнать кто онлайн и его данные, то при запросе используем JOIN.
 
 Top
Давит
Отправлено: 04 Ноября, 2011 - 20:38:43
Post Id



Частый гость


Покинул форум
Сообщений всего: 147
Дата рег-ции: Май 2011  


Помог: 2 раз(а)




.

(Отредактировано автором: 04 Ноября, 2011 - 20:39:38)

 
 Top
De-Luxis
Отправлено: 11 Ноября, 2011 - 18:15:06
Post Id



Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Янв. 2009  


Помог: 1 раз(а)




При каждой загрузке делать update в базе поля с датой у пользователя.
потом делаем запрос в базу по дате с условием не старее 15 минут например.
 
 Top
igyan
Отправлено: 11 Ноября, 2011 - 21:32:28
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Нояб. 2011  


Помог: 1 раз(а)




Можешь почитать как сделан подсчет участников форума в книге М.Кузнецова, И.Симдянова, С. Голышева "ПРАКТИКА СОЗДАНИЯ WEB-САЙТОВ" страница 772.
 
 Top
default
Отправлено: 26 Ноября, 2011 - 23:14:08
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)





Радость
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTTP и PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB