<?
session_start();
function getUsersOnline() {
$count = 0;
$handle = opendir(session_save_path());
if ($handle == false) return -1;
while (($file = readdir($handle)) != false) {
if (preg_match("/^sess/", $file)) $count++;
}
closedir($handle);
return $count;
}
?>
Использование:
<?
$usercount = getUsersOnline();
echo 'Сейчас на сайте: <b>'.$usercount.'</b> человек.';
?>
Если Вы будуте переопределять путь, где храняться сесии, то Вам необходимо бдет предусмотреть два момента:
Защиту катлога сделать можно создав файл .htaccess со следующим содержимым:
deny from all
А для удаления сессий можно использовать следующий скрипт, которым можно повесить на cron:
<?
echo "<br>удаляю старые сессии";
$path=session_save_path();
$dh = opendir( $path ) or die( "Не удалось открыть каталог ".$path );
$path.='/';
$df=date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")-1, date("Y"))); // храню сесии 1 день
while ( $f = readdir( $dh ) ) {
if (substr($f,0,1)=='.') continue;
if ( date("Y-m-d", filemtime($path.$f)) < $df )@unlink($path.$f);
}
closedir($dh);
?>
© Copyright 2008-2019 by KDG