Đếm số người truy cập trong ngày và truy cập unique 2007-07-09 09:20:06


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
<?
$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
<?
$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);

<?
// 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

Tác giả :TG

Tra loi 7 comment(s) Nguyễn Minh Tân 2007-07-09 09:20:06

TK 2007-09-06 04:47:03

Thêm cả IP vào để xác định chính xác hoặc là sử dụng cookies

Tra loi

YK 2008-03-10 01:53:28

Khá hay , nhưng có cách nào khác nữa không bạn.

Tra loi

khanghk@gmail.com 2008-03-10 03:25:28

Lam cach nay khong hieu qua boi vi chi can lam tuoi laitrang web la no tinh nhu mot lam truy cap moi nen no dem so ko thực.
Phai dua vao cookies va dia chi ip de tinh thi chinh sac hon

Tra loi

123456 2008-07-18 09:34:37

để chính xác thì có thể dựa vào cookies hoặc session. Đối với trường hợp đếm số người đang online nếu ko cần lưu trữ những ngày trước thì có thể xử lý bằng php (xử lý bằng php nhanh hơn csdl) check time (trong 1 khoảng nào đó) đếm số lượng session là OK

Tra loi

shellnine 2008-07-18 09:51:14

em cũng đang tính làm phần này, nhưng chưa bít thế nào, vạy khi load trang index lên là nó bắt đầu tạo session hả các anh, rùi làm sao đếm được tổng số session này? thanks

Tra loi

thành an 2008-07-20 06:04:58

chà cái này làm sao các pác, tui cũng ko bít, mong các bác đưa ra hướng đi

Tra loi

JackMa 2010-05-06 09:33:44

Bạn Tống Kiện Phi rất giỏi lập trình đó,hình như có mở 1 website thì phải, quên mất tên rồi :D

Tra loi

Y kien