Показать сообщение отдельно
  #3 (permalink)  
Старый 30.12.2012, 01:24
Аспирант
Отправить личное сообщение для cOAPerator Посмотреть профиль Найти все сообщения от cOAPerator
 
Регистрация: 04.01.2012
Сообщений: 78

Deff, спасибо огромное за помошь, работает, только не так как я ожидал.
пример:
sizeof(file($base)) - подсчитвает юзеров онлайн, заносит их в файл и потом выводит.
открываем страницу в браузере - покажет 1
открваем ту же страницу в ДРУГОМ браузере покажет 2
НО при этом в первом браузере 1 на 2 не изменяется...

как быть?

UPD:
вот функция подсчета юзеров
//выделяем уникальный идентификатор сессии
$id = session_id();
if ($id!=""){
//текущее время
$CurrentTime = time();
//через какое время сессии удаляются
$LastTime = time() - 180;
//файл, в котором храним идентификаторы и время
$base = DOC_ROOT.MODULES."/user_session.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);
 }
}

Последний раз редактировалось cOAPerator, 30.12.2012 в 01:45.
Ответить с цитированием