Как узнать сколько человек на сервере/странице?
Как можно определить кто из пользователей сейчас на сервере или странице? PHP, Perl - не важно. Определить пользователя можно через htaccess или сессии PHP, но как узнать, что пользователь ещё на сервере?
Цитата:
Originally posted by little brother
Как можно определить кто из пользователей сейчас на сервере или странице? PHP, Perl - не важно. Определить пользователя можно через htaccess или сессии PHP, но как узнать, что пользователь ещё на сервере?
Как можно определить кто из пользователей сейчас на сервере или странице? PHP, Perl - не важно. Определить пользователя можно через htaccess или сессии PHP, но как узнать, что пользователь ещё на сервере?
никак. обычно считается кол-во уникальных посетителей за какой-то промежуток времени. (Часто - 3 минуты)
Цитата:
Originally posted by little brother
Как можно определить кто из пользователей сейчас на сервере или странице? PHP, Perl - не важно. Определить пользователя можно через htaccess или сессии PHP, но как узнать, что пользователь ещё на сервере?
Как можно определить кто из пользователей сейчас на сервере или странице? PHP, Perl - не важно. Определить пользователя можно через htaccess или сессии PHP, но как узнать, что пользователь ещё на сервере?
Можно с сессиями. Эта функция очень быстрая. С сессиями быстрее чем с базой в 14 раз где-то. Сам проверял. Вот код:
Код:
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;
}
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;
}
Вызываешь собственно вот так:
Код:
print "Пользователей on-line:".getOnlineUsers();