Xây dựng b�? �?ếm cho Website bằng ngôn ngữ ASP [3/25/2005 11:16:00 AM]
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!
HÃ Minh Nam
[email protected]
Các bà i m�?i nhất:
Tìm hi�?u và sỠdụng h�? th�?ng �?�?a ch�? và giao thức mạng m�?i IPv6 12/24/2004 9:50:00 AM
Administering CISCO QoS for IP Networks 10/29/2004 2:45:00 PM
Xây dựng m�?t ứng dụng từ �?i�?n �?ơn giản 10/25/2004 10:32:00 AM
Bảo v�? thông tin �??nhạy cảm�?? kh�?i các chương trình tìm kiếm 10/21/2004 10:22:00 AM
Bư�?c tiến vượt báºc của PHP 5 9/13/2004 4:49:00 PM
SALT: Ngôn ngữ h�? trợ tiếng nói trên web 9/13/2004 5:51:00 PM
Deploying Network Access Quarantine Control, Part 2 9/9/2004 10:17:00 AM
Deploying Network Access Quarantine Control, Part 1 9/9/2004 10:14:00 AM
Kiến thức bảo máºt mạng máy tÃnh 9/7/2004
Quản tr�? và bảo máºt Windows XP SP 2 sá» dụng chÃnh sách nhóm 8/27/2004 10:48:00 AM
Xem toà n b�? >>
Các bà i �?ược �?�?ng trư�?c tin hi�?n tại:
Tìm hi�?u và sỠdụng h�? th�?ng �?�?a ch�? và giao thức mạng m�?i IPv6 12/24/2004 9:50:00 AM
Administering CISCO QoS for IP Networks 10/29/2004 2:45:00 PM
Xây dựng m�?t ứng dụng từ �?i�?n �?ơn giản 10/25/2004 10:32:00 AM
Bảo v�? thông tin �??nhạy cảm�?? kh�?i các chương trình tìm kiếm 10/21/2004 10:22:00 AM
Bư�?c tiến vượt báºc của PHP 5 9/13/2004 4:49:00 PM
SALT: Ngôn ngữ h�? trợ tiếng nói trên web 9/13/2004 5:51:00 PM
Deploying Network Access Quarantine Control, Part 2 9/9/2004 10:17:00 AM
Deploying Network Access Quarantine Control, Part 1 9/9/2004 10:14:00 AM
Kiến thức bảo máºt mạng máy tÃnh 9/7/2004
Quản tr�? và bảo máºt Windows XP SP 2 sá» dụng chÃnh sách nhóm 8/27/2004 10:48:00 AM
Xem toà n b�? >>
Tr�? v�? �?ầu trang