
HUỲNH MAI ANH KIỆT
CHƯƠNG I: TẠO BỘ ĐẾM CHO WEBSITE
1- Đếm lượt người đã truy cập vào website
Làm web ai cũng muốn website mình thu hút được nhiều người xem. Khi bạn nhìn thấy thành quả của mình
được nhiều người sử dụng thì khong còn niềm vui nào hơn nữa. Nhưng làm thế nào để biết website mình đã có
bao nhiêu lượt người truy cập. Đơn giản là đặt bộ đếm. Để tạo bộ đếm cho website bạn có 2 cách là đăng ký sử
dụng một dịch vụ tạo bộ đếm trên mạng hoặc tự mình tạo ra một bộ đếm. Ở đây mình xin hướng dẫn cả hai
cách luôn
a- Bộ đếm do các dịch vụ cung cấp sẵn:
Ở đây mình sử dụng không cần phải đăng ký của Hostingtoolbox và Fast Web Counter (bạn chỉ chọn một
trong hai thôi) cho khỏi rắc rối và mình cũng chỉ hướng dẫn thao tác với 2 dịch vụ này. Ngoài ra cũng còn một
số dich vụ khác yêu cầu đăng ký và nếu bạn sử dụng chúng thì bạn sẽ được nó cung cấp cho một đoạn mã và
bạn hãy dùng đoạn mã ấy thay vì dùng hai đoạn mã tôi cung cấp ở phần dưới.
Đầu tiên bạn tạo một tập tin ASP mới với tên là demluottruycap.asp với nội dung như sau:
<body LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0 >
<!-- ImageReady Slices (menu.gif) -->
<TABLE WIDTH=171 BORDER=0 CELLPADDING=0 CELLSPACING=0>
<TR>
<TD>
<IMG SRC="images/images_09.gif" WIDTH=5 HEIGHT=37 ALT=""></TD>
<TD background="images/images_10.gif" WIDTH=135 HEIGHT=37 COLSPAN=2>
<p align="left"><b><font face="Tahoma" size="1" color="#FFFFFF">
SỐ LƯỢT TRUY CẬP</font></b></TD>
<TD COLSPAN=2>
<IMG SRC="images/images_11.gif" WIDTH=26 HEIGHT=37 BORDER=0></TD>
<TD>
<IMG SRC="images/images_12.gif" WIDTH=5 HEIGHT=37 ALT=""></TD>
</TR>
<TR>
<TD COLSPAN=2>
<IMG SRC="images/images_13.gif" WIDTH=9 HEIGHT=17 ALT=""></TD>
<TD background="images/images_14.gif" WIDTH=153 HEIGHT=17 COLSPAN=2>
</TD>
<TD COLSPAN=2>
<IMG SRC="images/images_15.gif" WIDTH=9 HEIGHT=17 ALT=""></TD>
</TR>
<TR>
<TD <TD background="images/images_16.gif" WIDTH=5> </TD>
<TD align="center" width="100%" bgcolor="#CFCFCF" COLSPAN=4>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111"
width="100%" id="AutoNumber2">
WWW.A2TRUNGVUONG.NET - HUỲNH MAI ANH KIỆT
</table>
</TD>
<TD background="images/images_18.gif" WIDTH=5>
</TD>
<TR>
<TD COLSPAN=2>
<IMG SRC="images/images_19.gif" WIDTH=9 HEIGHT=18 ALT=""></TD>
<TD background="images/images_20.gif" WIDTH=153 HEIGHT=18 COLSPAN=2>

</TD>
<TD COLSPAN=2>
<IMG SRC="images/images_21.gif" WIDTH=9 HEIGHT=18 ALT=""></TD>
</TR>
<TR>
<TD bgcolor="000000">
<IMG SRC="images/spacer.gif" WIDTH=5 HEIGHT=1 ALT=""></TD>
<TD bgcolor="000000">
<IMG SRC="images/spacer.gif" WIDTH=4 HEIGHT=1 ALT=""></TD>
<TD bgcolor="000000">
<IMG SRC="images/spacer.gif" WIDTH=131 HEIGHT=1 ALT=""></TD>
<TD bgcolor="000000">
<IMG SRC="images/spacer.gif" WIDTH=22 HEIGHT=1 ALT=""></TD>
<TD bgcolor="000000">
<IMG SRC="images/spacer.gif" WIDTH=4 HEIGHT=1 ALT=""></TD>
<TD bgcolor="000000">
<IMG SRC="images/spacer.gif" WIDTH=5 HEIGHT=1 ALT=""></TD>
</TR>
</TABLE>
<!-- End ImageReady Slices -->
Bạn hãy thay dòng chữ WWW.A2TRUNGVUONG.NET - HUỲNH MAI ANH KIỆT bằng một trong hai đoạn mã sau
đây:
<!-- Start www.a2trungvuong.net -->
<a href="http://www.a2trungvuong.net" title="Music Online"><script
src="http://fastwebcounter.com/secure.php?s=Địa chỉ website của bạn"></script> hits</a>
<!-- End www.a2trungvuong.net -->
Hoặc:
<img src="http://hostingtoolbox.com/bin/Count.cgi?df=Địa chỉ website của bạn" width="70" height="22">
Sau đó bạn lưu file này vào thư mục Includes. Bạn mở tiếp file inc_left.asp nằm trong thư mục Includes
luôn và chèn thêm đoạn mã sau vào hàng cuối: <!--#include file="demluottruycap.asp" -->.
Rồi bây giờ bạn upload web lên host để xem kết quả (chỉ cần up file demluottruycap.asp và inc_left.asp là
được rồi). Các bạn chú ý là chỉ khi nào máy tính nối mạng thì bộ đếm này mới hoạt động nha.
b- Bộ đếm tự tạo
Ưu điểm của bộ đếm này là nó hoạt động cả khi máy tính của bạn không nối mạng.
Đầu tiên chúng ta sẽ dùng cơ sở dữ liệu Access để lưu trữ thông tin về số lần duyệt xem website. Bạn tạo một
database mang tên bodem.mdb. Trong datase này bạn tạo bảng (table) mang tên bodem. Và trong bảng
bodem bạn tạo các trường sau: ID, page_name và hit_count. Sau đó bạn điền một giá trị bất kỳ vào trường
page_name ví dụ của tôi là mykieu đi nha, lúc này tại trường ID sẽ nhảy số 1 và trường hit_count sẽ có giá
trị 0. Sau đó bạn lưu file này vao thư mục database (thư mục này là thư mục con của thư mục admin). Sau
đó bạn tiếp tục tạo file demluottruycap.asp với nội dung giống như tôi đã đề cập ở phần trước nhưng lần này
bạn thay dòng chữ WWW.A2TRUNGVUONG.NET- HUỲNH MAI ANH KIỆT bằng đoạn mã sau:
<tr><td><center>
<%
strSQL = "SELECT page_name, hit_count FROM bodem WHERE page_name='mykieu';"
set Dbcon =server.createobject("ADODB.connection")
dbcon.connectionstring="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
&Server.MapPath("admin\database\bodem.mdb")
dbcon.open
Set rsCounter = Server.CreateObject("ADODB.Recordset")
rsCounter.Open strSQL, dbcon, 3, 3
if not rsCounter.eof then
rscounter.movefirst
icount=rsCounter.Fields("hit_count").Value
end if

if session("been_here_before") = "" then
session("been_here_before") = "Yes"
if rsCounter.eof then
rsCounter.AddNew
iCount = 0
rsCounter.Fields("page_name").Value = "mykieu"
Else
rscounter.movefirst
iCount = rsCounter.Fields("hit_count").Value
End If
' Increment the count and update the DB
rscounter.movefirst
rsCounter.Fields("hit_count").Value =icount+1
rsCounter.Update
end if
if not rsCounter.eof then
rscounter.movefirst
icount=rsCounter.Fields("hit_count").Value
end if
' Close our connection
rsCounter.Close
Set rsCounter = Nothing
sub viet
Chuoi=icount
For intWriteDigitLoopCount = 1 to 10-Len(icount)
chuoi="0" & chuoi
Next
Response.Write("<b><font face=arial size=2 color='#000000'>" & chuoi & "</font> </b>")
end sub
%>
<table >
<tr>
<td align=center><font face="Tahoma" size="3" color="Blue"><% call viet %></font></td>
</tr>
</table>
</center>
</td></tr>
Các bạn chú ý nếu giá trị bạn điền vào trường page_name khác mykieu thì bạn thay các chỗ nào trong
đoạn mã sau có chữ mykieu bằng giá trị bạn gán cho nó.
Sau đó bạn lưu file này vào thư mục Includes. Bạn mở tiếp file inc_left.asp nằm trong thư mục Includes
luôn và chèn thêm đoạn mã sau vào hàng cuối: <!--#include file="demluottruycap.asp" -->.
Rồi bây giờ bạn mở website lên để xem thành quả của mình (dù nối mạng hay không nối mạng thì bộ đếm
này cũng hoạt động).
Và đây là kết quả thu được:
Các bạn chú ý là khi sử dụng bộ đếm tự tạo thì giá trị các bạn có thể thay đổi được (ví dụ website của bạn chỉ
có 7 người truy cập nhưng bạn sửa thành 1728 chẳng hạn) vì vậy các bạn thay đổi giá thị thì cũng không ai
biết. Tuy nhiên tôi thành thật khuyên các bạn là không nên làm điều đó, còn lý do thì tôi chưa nghĩ ra.
2- Đếm số người đang online:
Tương tự như bộ đếm lượt truy cập thì bộ đếm này cũng có 2 cách tạo là dùng dịch vụ có sẵn hoặc tư tạo lấy.
Mình cũng xin hướng dẫn 2 cách luôn.
a- Bộ đếm do các dịch vụ cung cấp sẵn
Ở đây mình hướng dẫn cách tạo bộ đếm với dịch vụ của website www.freeonlineusers.com.

Công việc đầu tiên là bạn phải tạo tài khoản trên website này. Tôi xin không đề cập nhiều đến việc đăng ký và
cách lấy mã. Bây giờ bạn tạo một file ASP mang tên nguoionline.asp chẳng hạn với nội dung như sau:
<body LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0 >
<!-- ImageReady Slices (menu.gif) -->
<TABLE WIDTH=171 BORDER=0 CELLPADDING=0 CELLSPACING=0>
<TR>
<TD>
<IMG SRC="images/images_09.gif" WIDTH=5 HEIGHT=37 ALT=""></TD>
<TD background="images/images_10.gif" WIDTH=135 HEIGHT=37 COLSPAN=2>
<p align="left"><b><font face="Tahoma" size="1" color="#FFFFFF">
SỐ NGƯỜI ONLINE</font></b></TD>
<TD COLSPAN=2>
<IMG SRC="images/images_11.gif" WIDTH=26 HEIGHT=37 BORDER=0></TD>
<TD>
<IMG SRC="images/images_12.gif" WIDTH=5 HEIGHT=37 ALT=""></TD>
</TR>
<TR>
<TD COLSPAN=2>
<IMG SRC="images/images_13.gif" WIDTH=9 HEIGHT=17 ALT=""></TD>
<TD background="images/images_14.gif" WIDTH=153 HEIGHT=17 COLSPAN=2>
</TD>
<TD COLSPAN=2>
<IMG SRC="images/images_15.gif" WIDTH=9 HEIGHT=17 ALT=""></TD>
</TR>
<TR>
<TD <TD background="images/images_16.gif" WIDTH=5> </TD>
<TD align="center" width="100%" bgcolor="#CFCFCF" COLSPAN=4>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111"
width="100%" id="AutoNumber2">
<tr><td><center>
<!-- Start www.a2trungvuong.net -->
<a href="http://www.a2trungvuong.net" target="_blank">
<font size="1" color=#0000FF><script type="text/javascript" src="http://freeonlineusers.com/on1.php?id=43777">
</script> người đang online</font></a>
<!-- End www.a2trungvuong.net -->
</center>
</td></tr>
</table>
</TD>
<TD background="images/images_18.gif" WIDTH=5>
</TD>
<TR>
<TD COLSPAN=2>
<IMG SRC="images/images_19.gif" WIDTH=9 HEIGHT=18 ALT=""></TD>
<TD background="images/images_20.gif" WIDTH=153 HEIGHT=18 COLSPAN=2>
</TD>
<TD COLSPAN=2>
<IMG SRC="images/images_21.gif" WIDTH=9 HEIGHT=18 ALT=""></TD>
</TR>
<TR>
<TD bgcolor="000000">
<IMG SRC="images/spacer.gif" WIDTH=5 HEIGHT=1 ALT=""></TD>
<TD bgcolor="000000">
<IMG SRC="images/spacer.gif" WIDTH=4 HEIGHT=1 ALT=""></TD>
<TD bgcolor="000000">
<IMG SRC="images/spacer.gif" WIDTH=131 HEIGHT=1 ALT=""></TD>
<TD bgcolor="000000">
<IMG SRC="images/spacer.gif" WIDTH=22 HEIGHT=1 ALT=""></TD>
<TD bgcolor="000000">
<IMG SRC="images/spacer.gif" WIDTH=4 HEIGHT=1 ALT=""></TD>
<TD bgcolor="000000">
<IMG SRC="images/spacer.gif" WIDTH=5 HEIGHT=1 ALT=""></TD>
</TR>
</TABLE>

<!-- End ImageReady Slices -->
Các bạn chú ý đến phần chữ màu cam đó chính là đoạn mã mà dịch vụ cung cấp cho bạn. Trong đó phần chữ
màu đỏ chính là phần quan trong nó, nó là điểm khác biệt nhất giữa các đoạn mã mà nó cung cấp cho từng
người dùng. Vậy bạn hãy thay nguyên phần in màu bằng đoạn mã mà chương trình cung cấp cho bạn hoặc đơn
giản hơn là chỉ thay phần chữ màu đó bằng phần tương ứng trong đoạn mã mà chương trình cung cấp.
Xong bạn lưu lại tập tin này vào thư mục Includes và bạn mở file inc_left.asp cũng nằm trong thư mục này
lên và chèn đoạn mã sau vào phần cuối: <!--#include file="nguoionline.asp" -->
Bộ đếm này chỉ hoạt động khi đưa lên mạng hoặc máy tính của bạn nối mạng. Và một điều hết sức quan
trọng là độ chuẩn xác của nó thì không ai có thể kiểm chứng được – kinh nghiệm cho mình thấy hình như nó
không được chuẩn xác lắm.
b- Bộ đếm tự tạo
Mình thì cũng chưa tạo bộ đếm này và cũng chưa sử dụng nó trên website của mình (tính tới thời điểm viết
ebook này) nên mình cũng chưa dám nói nhiều mà chỉ xin trích dẫn một bài viết trên website
www.quantrimang.com mà thôi:
Mỗi ứng dụng web ASP đều có thể có một file cấu hình chung là GLOBAL.ASA. File GLOBAL.ASA được server
đọc và thực thi khi ứng dụng web bắt đầu chạy mỗi khi có một yêu cầu tải trang web từ client (phía người
dùng). Trong file GLOBAL.ASA thường có các thủ tục sau:
Application_OnStart: Được gọi khi ứng dụng web bắt đầu chạy. Như vậy thủ tục này chỉ được gọi duy nhất
một lần khi website của bạn có yêu cầu truy cập đầu tiên cho tới khi ứng dụng web kết thúc hoặc file
GLOBAL.ASA có thay đổi. Chúng ta sẽ khởi tạo biến đếm số người đang truy cập website tại đây:
Application(“So_Nguoi_Online”) = 0
Biến Application có ảnh hưởng tới toàn bộ ứng dụng web, tức là tất cả các trang của website đều dùng chung
biến này.
Session_OnStart: Được gọi khi có một yêu cầu kết nối của client tới server được thiết lập, tức là khi người
dùng gõ vào địa chỉ của website trong trình duyệt để truy cập. Khi đó, chúng ta sẽ tăng biến đếm số người
online:
Application(“So_Nguoi_Online”) = Application(“So_Nguoi_Online”) + 1
Session_OnEnd: Được gọi khi client ngắt kết nối với server, tức là khi người dùng chuyển qua trang web khác
hoặc đóng trình duyệt lại. Khi đó chúng ta sẽ giảm biến đếm số người online:
Application(“So_Nguoi_Online”) = Application(“So_Nguoi_Online”) -1
Nội dung của file GLOBAL.ASA như sau:
<SCRIPT LANGUAGE=”VbScript” RUNAT=“Server”>
Sub Application_OnStart()
Khởi tạo giá trị ban đầu cho biến = 0
Application(“So_Nguoi_Online”) = 0
End Sub
Sub Session_OnStart()
Mỗi khi có một yêu cầu truy cập khác thì tăng số người truy cập lên 1
Khóa biến Application để tránh trường hợp có nhiều yêu cầu truy cập cùng một lúc
Application.Lock
Application(“So_Nguoi_Online”) = Application(“So_Nguoi_Online”) + 1
Mở khóa biến Application để yêu cầu truy cập sau sẽ thay đổi được giá trị của biến
Application.UnLock
End Sub
Sub Session_OnEnd()
Mỗi khi có một có một kết nối bị ngắt thì giảm số người truy cập đi 1
Application.Lock
Application(“So_Nguoi_Online”) = Application(“So_Nguoi_Online”) - 1
Application.UnLock
End Sub
</SCRIPT>
Bạn phải đặt file GLOBAL.ASA trong thư mục gốc của website của mình, sau đó để hiển thị số người đang truy
cập website bạn thực hiện như sau: