B đ m WEB ế
B n mu n bi t t i m t th i đi m có bao nhiêu ng i đang truy c p website c a ế ườ
mình? Vi c này không th th c hi n đ c v i mã l nh HTML thu n túy hay ượ
JavaScript mà ph i dùng đ n ngôn ng k ch b n ch y trên server (server-side ế
scripting language) nh ASP, PHP hay JSP. Bài vi t này gi i thi u cách hi n thư ế
thông tin th ng kê v s ng i đang truy c p (online), s l t truy c p, s l n ườ ượ
duy t xem các trang trong website b ng ngôn ng ASP thông d ng c a Microsoft.
Nh ng thông tin v s l t truy c p đ c g i là b đ m cho website - m t trong ượ ượ ế
nh ng ng d ng c b n mà các website chuyên nghi p th ng dùng đ n. B đ m ơ ườ ế ế
giúp cho chính b n và khách truy c p bi t đ c website ho t đ ng hi u qu nh ế ượ ư
th nào, “đông khách” hay “v ng khách”.ế
1.Hi n th s ng i đang truy c p website: ườ
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: ườ ư
<h1>
S ng i đang xem website: <% = Application(“So_Nguoi_Online”) %> </h1> ườ
2.Hi n th s l t truy c p website: ượ
S l t truy c p website đ c tính b ng s l n yêu c u truy c p website trên ượ ượ
server c a b n. S l t truy c p website luôn tăng, do đó chúng ta ch c n khai báo ượ
bi n trong th t c Application_OnStart:ế
Application(“So_Luot_Truy_Cap”) = 0
Và tăng bi n này lên 1 trong th t c Session_OnStart:ế
Application(“So_Luot_Truy_Cap”) = Application(“So_Luot_Truy_Cap”) + 1
Và hi n th trong website:
S l t truy c p: <% = Application(“So_Luot_Truy_Cap”) ượ
3.Hi n th s l n duy t xem các trang c a website:
Trong m t phiên truy c p thì ng i dùng có th duy t xem nhi u trang trong ườ
website c a b n, chúng ta ph i l u thông tin này vào c s d li u. M i trang ASP ư ơ
trong website c a b n s include file ch a b đ m (chúng ta t m đ t tên là ế
bodem.asp) vào đ u trang đ đ m s l n duy t xem website. ế
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 b ng DUYETXEM v i các tr ng nh sau: ườ ư
Tên tr ng Ki uườ
ID AutoNumber
SO_LAN_XEM Long Integer
N i dung c a file bodem.asp nh sau: ư
<%
Bi n đ truy xu t CSDLế
Dim rs
Bi n ghi s l n duy t xem các trang trong websiteế
Dim SoLanXem
Ch a chu i l nh SQL c n th c hi n
Dim strSQL
Chu i k t n i v i CSDL ế
Dim strConnection
Bi n thi t l p k t n iế ế ế
Dim myConnection
Đ u tiên xác đ nh chu i k t n i v i CSDL, thay đ i đ ng d n t i CSDL ế ườ
cho phù h p v i đ ng d n và tên CSDL c a website c a b n ườ
strConnection = “provider=microsoft.jet.oledb.4.0; data source = “ &
Server.MapPath(“../db/DATA.MDB”)
Câu l nh SQL dùng đ truy xu t CSDL
strSQL = “SELECT * FROM DUYETXEM WHERE SO_LAN_XEM > 0”
Kh i t o k t n i ế
Set myConnection = Server.CreateObject(“ADODB.Connection”)
M k t n i và th c hi n câu l nh SQL ế
myConnection.Open strConnection
Set rs = myConnection.Execute(strSQL)
N u s l n xem > 0 thì tăng bi n đ m lên 1ế ế ế
If Not rs.EOF Then
SoLanXem = rs(“SO_LAN_XEM”)
SoLanXem = (SoLanXem + 1)
C p nh t vào CSDL
strSQL = “UPDATE DUYETXEM SET SO_LAN_XEM = “ & SoLanXem
Set rs = myConnection.Execute(strSQL)
Else N u ch a có l n xem nàoế ư
SoLanXem = 1
Thêm vào CSDL
strSQL = “INSERT INTO DUYETXEM (SO_LAN_XEM) VALUES (“ &
SoLanXem & “);”
Set rs = myConnection.Execute(strSQL)
End If
Đóng k t n iế
Set myConnection = Nothing
Set rs = Nothing
%>
Trong đ u m i trang ASP b n include file bodem.asp vào và hi n th nh sau: ư
<!--#INCLUDE FILE = bodem.asp -->
<%
Response.Write(“Trang web đã đ c duy t “ & SoLanXem & “ l n”)ượ
%>
Chúc các b n thành công!