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 của Hostingtoolbox Fast Web Counter (bạn chỉ chọn một
trong hai thôi) cho khỏi rắc rối 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 nếu bạn sử dụng chúng thì bạn sẽ được cung cấp cho một đoạn
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">&nbsp;&nbsp;&nbsp;
S&#7888; L&#431;&#7906;T TRUY C&#7852;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>&nbsp;</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 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 inc_left.asp
đượ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. trong bảng
bodem bạn tạo các trường sau: ID, page_name 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 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ỉ
7 người truy cập nhưng bạn sửa thành 1728 chẳng hạn) 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">&nbsp;&nbsp;&nbsp;
S&#7888; NG&#431;&#7900;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>&nbsp;</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&#432;&#7901;i &#273;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 phần quan trong nó, điểm khác biệt nhất giữa các đoạ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. một điều hết sức quan
trọng độ chuẩn xác của thì không ai thể kiểm chứng được kinh nghiệm cho mình thấy hình như
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 cũng chưa sử dụng 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 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 thể một file cấu hình chung GLOBAL.ASA. File GLOBAL.ASA được server
đọc thực thi khi ứng dụng web bắt đầu chạy mỗi khi 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 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ả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 một yêu cầu kết nối của client tới server được thiết lập, tức khi người
dùng 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ứckhi 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: