parent
ea68508cc9
commit
de8c6598d7
@ -0,0 +1,80 @@ |
|||||||
|
<?php |
||||||
|
/* |
||||||
|
******************************************************************** |
||||||
|
* Название: Sad Raven's Online Counter * |
||||||
|
******************************************************************** |
||||||
|
* Версия: 1.0 * |
||||||
|
* Стоимость: бесплатный скрипт * |
||||||
|
* Требования: PHP4 и выше * |
||||||
|
* Платформа: любая * |
||||||
|
* Язык: русский * |
||||||
|
* Автор: Sad Raven (http://www.sad-raven.ru) * |
||||||
|
******************************************************************** |
||||||
|
* Создан: 15 июня 2002 * |
||||||
|
******************************************************************** |
||||||
|
*/ |
||||||
|
|
||||||
|
$data="online.dat"; |
||||||
|
$time=time(); |
||||||
|
$past_time=time()-600; |
||||||
|
|
||||||
|
$readdata=fopen($data,"r") or die("Не могу открыть файл $data"); |
||||||
|
$data_array=file($data); |
||||||
|
fclose($readdata); |
||||||
|
|
||||||
|
if (getenv('HTTP_X_FORWARDED_FOR')) |
||||||
|
$user = getenv('HTTP_X_FORWARDED_FOR'); |
||||||
|
else |
||||||
|
$user = getenv('REMOTE_ADDR'); |
||||||
|
|
||||||
|
$d=count($data_array); |
||||||
|
for($i=0;$i<$d;$i++) |
||||||
|
{ |
||||||
|
list($live_user,$last_time)=explode("::","$data_array[$i]"); |
||||||
|
if($live_user!=""&&$last_time!=""): |
||||||
|
if($last_time<$past_time): |
||||||
|
$live_user=""; |
||||||
|
$last_time=""; |
||||||
|
endif; |
||||||
|
if($live_user!=""&&$last_time!="") |
||||||
|
{ |
||||||
|
if($user==$live_user) |
||||||
|
{ |
||||||
|
$online_array[]="$user::$time\r\n"; |
||||||
|
} |
||||||
|
else |
||||||
|
$online_array[]="$live_user::$last_time"; |
||||||
|
} |
||||||
|
endif; |
||||||
|
} |
||||||
|
|
||||||
|
if(isset($online_array)): |
||||||
|
foreach($online_array as $i=>$str) |
||||||
|
{ |
||||||
|
if($str=="$user::$time\r\n") |
||||||
|
{ |
||||||
|
$ok=$i; |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
foreach($online_array as $j=>$str) |
||||||
|
{ |
||||||
|
if($ok==$j) { $online_array[$ok]="$user::$time\r\n"; break;} |
||||||
|
} |
||||||
|
endif; |
||||||
|
|
||||||
|
$writedata=fopen($data,"w") or die("Не могу открыть файл $data"); |
||||||
|
flock($writedata,2); |
||||||
|
if($online_array=="") $online_array[]="$user::$time\r\n"; |
||||||
|
foreach($online_array as $str) |
||||||
|
fputs($writedata,"$str"); |
||||||
|
flock($writedata,3); |
||||||
|
fclose($writedata); |
||||||
|
|
||||||
|
$readdata=fopen($data,"r") or die("Не могу открыть файл $data"); |
||||||
|
$data_array=file($data); |
||||||
|
fclose($readdata); |
||||||
|
$online=count($data_array); |
||||||
|
|
||||||
|
echo "Listeners : $online"; |
||||||
|
?> |
Loading…
Reference in new issue