Xây dựng bộ đếm cho Website bằng ngôn ngữ ASP

Trong chuyên mục 'Thủ thuật Internet' đăng bởi Newsun, 14/10/2009. — 4.108 Lượt xem

  1. Newsun

    Newsun Dreamer Thành viên thân thiết

    Xây dựng bộ đếm cho Website bằng ngôn ngữ ASP

    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:
    Mã:
    <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:
    Mã:
    <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:

    Mã:
    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: Code:
    Mã:
    <%
    
    '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 -->
    Mã:
    <%
    Response.Write(“Trang web đã được duyệt “ & SoLanXem & “ lần”)
    %> 
    Chúc các bạn thành công!


    (Suutam)
     



Chia sẻ cùng bạn bè


Đang tải...