![]() |
Скрипт Пользователей онлайн
Кто может поделиться скриптом пользователей онлайн, кто шас на портале показывал цифрами, сколько их шас, не нагружая сервер.
|
А там делать по сути нечего.
Берёшь сессию каждого, берёшь таймстамп и записываешь в БД. При каждом обновлении страницы обновляешь данные и удаляешь записи тех пользователей, которые не проявили активность в течении N минут) А вывод просто SELECT COUNT (*) и т.д... |
Ну таких скриптов прут пруди, забей в гугле, или как написал .:EnoT:. напиши сам.
|
Я думаю лучше запостить пример.
Создаём таблицу: Код:
CREATE TABLE `sessions` (PHP код:
И вывод типа того: Код:
SELECT COUNT(*) AS `online` FROM `sessions` |
.:EnoT:., прочитай про ON DUPLICATE
|
bombeg, В своих скриптах использую, а это всего лишь пример. Может мне следовало бы ещё класс работы с mysql выложить, что всё было круто? Зачем? Если ТС в этом разбирается он без труда заточит как надо. Или например может добавить IGNORE, ключи...да в общем что угодно
|
Думаю вариант не такой
Собственно скрипт: <?Php session_start(); define("MAX_IDLE_TIME", 3); function getOnlineUsers(){ if ( $directory_handle = opendir( session_save_path() ) ) { $count = 0; while ( false !== ( $file = readdir( $directory_handle ) ) ) { if($file != '.' && $file != '..'){ if(time()- fileatime(session_save_path() . '\\' . $file) < MAX_IDLE_TIME * 60) { $count++; } } } closedir($directory_handle); return $count; } else { return false; }} echo 'Пользователей онлайн: ' . getOnlineUsers() . '<br />'; > Подсчёт пользователей, стоит на месте, сесия необновляеться, если только таким действием его убивать session_save_path("/path/to/custom/directory"); А если путь до дир незнаеш как быть? |
Уф.. предложу другой вариант:
В базе создать таблицу с полями: id,ip,br,date Там где нужно вывести число онлайн: Цитата:
|
Ето понятно, есчё + подключить скрипт, если несложно допиши его, зарание благодарен
|
| Время: 09:29 |