Posts Tagged ‘dem so nguoi online’

Đếm số người đang online

March 22nd, 2008

Ở các bài trước đã trình bày cách đếm số lượt truy cập hay (số lượng hits ) nay mình trình bày cách để đếm số người online trên website của bạn từ những IP khác nhau. ( Chỉ những IP khác nhau thì số người online  mới tăng lên).

CODE như sau :

#function Online counter
function counter()
{
$rip = $_SERVER['REMOTE_ADDR'];
$sd  = time();
$count = 1;
$maxu = 1;

$file1 = “ip.txt”;
$lines = file($file1);
$line2 = “”;

foreach ($lines as $line_num => $line)
{
if($line_num == 0)
{
$maxu = $line;
}
else
{
//echo $line.”<br>”;
$fp = strpos($line,’****’);
$nam = substr($line,0,$fp);
$sp = strpos($line,’++++’);
$val = substr($line,$fp+4,$sp-($fp+4));
$diff = $sd-$val;

if($diff < 300 && $nam != $rip)
{
$count = $count+1;
$line2 = $line2.$line;
//echo $line2;
}
}
}

$my = $rip.”****”.$sd.”++++\n”;
if($count > $maxu)
$maxu = $count;

$open1 = fopen($file1, “w”);
fwrite($open1,”$maxu\n”);
fwrite($open1,”$line2″);
fwrite($open1,”$my”);
fclose($open1);
//tang count va maxu len cho nhieu
$count=$count+5;
$maxu=$maxu+107;

    return $count; ( 1 )
}

Giải thích:

Hàm trả về số người đang online  nếu bạn để return $count Nếu không để return $count thì khi gọi hàm sẽ lấy được hai giá trị: $maxu ( Số người truy cập nhiều nhất cùng lúc)  và $count ( Số người đang online).

Ở trên mình cho $count=$count +5 và $maxu=$maxu+107 tức là lúc nào cũng có tối thiểu 5 người đang online và lúc nhiều nhất là 107 người.Cái này bạn có thể thay đổi tùy ý.

Download toàn bộ code tại đậy : Online-counter.rar

–Chúc các bạn thành công —

Nguyễn Đức Mạnh