$LastTime = time() - 30;
$base = "session1.txt";
$LastTime = time() - 86400;
$base = "session2.txt";
<?php echo " <b>".sizeof(file($base))."</b>"; ?>
<?php echo " <b>".sizeof(file($base))."</b>"; ?>
на одной странице, показывали разное число, не смешиваясь, чтобы у них была уникальная подпись?! Я плохо разбираюсь в php.<?php
session_start();
//выделяем уникальный идентификатор сессии
$id = session_id();
if ($id!="") {
//текущее время
$CurrentTime = time();
//через какое время сессии удаляются
$LastTime = time() - 30;
//файл, в котором храним идентификаторы и время
$base = "session1.txt";
$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");
for ($i = 0; $i<sizeof($ResFile); $i++) { fputs($fp, $ResFile[$i]); }
fclose($fp);
if (!$is_sid_in_file) {
$fp = fopen($base, "a-");
$line = $id."|".$CurrentTime."\n";
fputs($fp, $line);
fclose($fp);
}
}
?>
<?php echo " <b>".sizeof(file($base))."</b>"; ?>
<?php
session_start();
$id = session_id(); //выделяем уникальный идентификатор сессии
$CurrentTime = time(); //текущее время
$LastTime = time() - 30; //через какое время сессии удаляются (30 секунд)
$base1 = "session1.txt"; //файл, в котором храним идентификаторы и время
$file1 = file($base1, FILE_IGNORE_NEW_LINES & FILE_SKIP_EMPTY_LINES);
$fp = fopen($base1, "w");
foreach($file1 as $k => $v) {
$v = explode("|", $v);
if ($v[0] != $id AND $v[1] > $LastTime) {
fputs($fp, "{$v[0]}|{$v1]}\n")
}
}
if ($id != "") {
fputs($fp, "{$id}|{$CurrentTime}\n");
}
fclose($fp);
$file1 = count($file1);
$LastTime = time() - 86400; //через какое время сессии удаляются (1 сутки)
$base2 = "session2.txt"; //файл, в котором храним идентификаторы и время
$file2 = file($base2, FILE_IGNORE_NEW_LINES & FILE_SKIP_EMPTY_LINES);
$fp = fopen($base2, "w");
foreach($file2 as $k => $v) {
$v = explode("|", $v);
if ($v[0] != $id AND $v[1] > $LastTime) {
fputs($fp, "{$v[0]}|{$v1]}\n")
}
}
if ($id != "") {
fputs($fp, "{$id}|{$CurrentTime}\n");
}
fclose($fp);
$file2 = count($file2);
unset($CurrentTime, $LastTime, $base1, $base2, $fp);
?>
<?php echo " <b>{$file1}</b>, <b>{$file2}</b>"; ?>
function file_session_write($base, $deltaLastTime)
{
$id = session_id();
//текущее время
$CurrentTime = time();
//через какое время сессии удаляются
$LastTime = time() - $deltaLastTime;
$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");
for ($i = 0; $i<sizeof($ResFile); $i++) { fputs($fp, $ResFile[$i]); }
fclose($fp);
if (!$is_sid_in_file) {
$fp = fopen($base, "a-");
$line = $id."|".$CurrentTime."\n";
fputs($fp, $line);
fclose($fp);
}
return sizeof(file($base));
}
session_start();
// а тут просто вызываем функцию с какими угодно параметрами, сколько угодно раз
$result1 = file_session_write( "session1.txt", 30);
$result2 = file_session_write( "session2.txt", 86400);
echo 'res1='.$result1.'; res2='.$result2;