<?php
session_start();
//выделяем уникальный идентификатор сессии
$id = session_id();
if ($id!="")
{
//текущее время
$CurrentTime = time();
//через какое время сессии удаляются
$LastTime = time() - 60;
//файл, в котором храним идентификаторы и время
$base = "base_sessions.dat";
$file = file($base);
$k = 0;
for ($i = 0; $i < sizeof($file); $i++) {
$line = explode("|", $file[$i]);
if ($line[1] > $LastTime) {
$ResFile[$k] = $file[$i];
$k++;
}
}
for ($i = 0; $i<sizeof($ResFile); $i++) {
$line = explode("|", $ResFile[$i]);
if ($line[0]==$id) {
$line[1] = trim($CurrentTime)."\n";
$is_sid_in_file = 1;
}
$line = implode("|", $line); $ResFile[$i] = $line;
}
$fp = fopen($base, "w") or die ("Нет доступа к базе данных"); flock ($fp, 2);
for ($i = 0; $i<sizeof($ResFile); $i++) { fputs($fp, $ResFile[$i]); }
fclose($fp);
if (!$is_sid_in_file) {
$fp = fopen($base, "a");
$line = trim($id)."|".trim($CurrentTime); /* здесь обрезаю пробелы и в идентификаторе и во времени */
fputs ($fp, trim($line)."\n"); /* здесь обрезаю пробелы еще раз и делаю перевод строки */
flock ($fp, 3); fclose($fp);
}
}
echo "Сейчас на сайте: ".sizeof(file($base))." чел.";
?>