Twitter Delicious Facebook Digg Stumbleupon Favorites More

Thứ Hai

Đếm số người truy cập trong ngày và truy cập unique

Có lẽ bộ đếm số người truy cập đã quá quen thuộc với mọi người. 
Một số dạng đếm thông thường: 
- Tổng số ngừơi truy cập: chỉ cần tạo một file để lưu lại con số thể hiện số lần truy cập 

PHP CodeCopy To Clipboard
  • <?
  • $file    = "C:visitor.txt";
  • $incr=(file_exists($file))?file_get_contents($file):1;
  • $incr++;
  • $cont=fopen($file,'w');
  • fwrite($cont,$incr);
  • fclose($cont);
  • print 'Visit: '.$incr.'<br>';
  • ?> 

(cũng có thể dùng database thay cho file) 

- Đếm số người truy cập trong ngày: 

Tạo một database có có 2 field ID và Date 
PHP CodeCopy To Clipboard
  • <?
  • $conn = mysql_connect('câu lệnh connect');
  • mysql_db_select('your_db_name');
  • $sql = mysql_query("select * from <table> where Date='".date('Y-m-d')."'");
  • print 'số người truy cập trong ngày hôm nay:'.mysql_num_rows($sql);
  • // thêm một record mới
  • $sql = mysql("insert into <table> values('',date('Y-m-d'))");
  • ?>


- Đếm số ngừoi truy cập unique IP - mỗi IP chỉ tính một lần truy cập trong một ngày 
Tạo database gồm 3 field ID IP và Date với 2 khoá chính là IP và Date. Lúc này dữ liệu của chúng ta chỉ gồm những IP duy nhât trong một ngày( do thuộc tính khóa của IP và Date). nên công việc đếm của chúng ta bây giờ cũng giống như là đếm theo ngày. Chú ý là trên cùng một site thi đếm unique có giá trị nhỏ hơn hoặc bằng cách đếm thông thường trong ngày đó 

- Đếm số người đang online: Là đếm số ngừơi đang truy cập tại thờ điểm đó, nhưng trên thực tế thì là đếm số người online trong một khỏang thời gia $t (nếu t = 1ngày <=> đếm số người online trong ngày) 
$t thường được tính bằng giây, ta nên tạo database có cấu trúc như sau: 
ID Int(4) auto_increament 
Time int(10); 
PHP CodeCopy To Clipboard
  •  <?
  • // thêm một người online khi bạn truy cập
  • $now = time();
  • $sql = mysql("insert into <table> values('',$now)");
  • // đếm số ngừơi online trong khỏang thời gian $t
  • $sql = mysql("select * from <table> where Time>".($now-$t)
  • print mysql_num_rows($sql);
  • ?>

Trong bộ đếm số người online bạn có thể xóa đi những mẫu tin cũ (Time < $now - $t) để cho database nhẹ nhàng hơn
Nguồn:hoclaptrinh

0 nhận xét:

Đăng nhận xét

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Blogger Templates