• Thứ Bảy, 27/12/2003 11:42 (GMT+7)

    Câu hỏi :
    Xin hướng dẫn đoạn code đếm số lượt người đã truy cập vào trang Web của mình.

    Trả lời :

    Có nhiều cách khác nhau để giải quyết vấn đề của bạn, ở đây chúng tôi xin giới thiệu cách dùng công nghệ ASP của Microsoft. Ý tưởng cơ bản của cách giải quyết là quản lý 1 counter ở máy Web Server, counter này lúc đầu bằng 0 và tăng lên 1 mỗi khi có người dùng truy xuất trang Web. Để vừa quản lý counter, vừa quản lý thông tin chi tiết của từng lần truy xuất trang Web, ta sẽ tạo 1 database mà mỗi record của nó chứa thông tin chi tiết của từng lần truy xuất trang Web. Qui trình xây dựng trang Web theo yêu cầu của bạn dùng môi trường InterDev của Microsoft gồm các bước chính sau đây :

    1. Dùng Access (hay bất kỳ 1 hệ quản trị cơ sở dữ liệu nào) tạo 1 file database (giả sử tên là WebSiteAdmin.mdb), tạo 1 table tên là “Counters” chứa thông tin của từng lần truy xuất trang web gồm 3 field chính tên là RemoteHost (chứa địa chỉ IP của client), PathInfo (chứa đường dẫn của file Web), HTTPUserAgent (chứa thông tin về trình duyệt client). Lúc này table chưa có record dữ liệu nào cả.

    2. Vào Control panel.ODBC Data Source Administrator, chọn tab “System DSN”, “add” 1 Data Source Name (DSN) với tên là WebSiteAdmin và liên kết nó với file database vừa tạo ra ở bước 1. Mục đích của bước 2 là đặt tên luận lý (DSN) để nhận dạng file database, chương trình ứng dụng hay trang Web sẽ truy xuất database thông qua tên DSN này, nhờ đó ứng dụng hay trang Web sẽ độc lập với vị trí vật lý của file database và hệ quản trị cơ sở dữ liệu quản lý nó.

    3. Chạy trình InterDev, theo qui trình Web Wizard của InterDev để tạo 1 project tên là MyWebSite.

    4. Nhấn phải chuột vào Project vừa tạo ở cửa sổ trên phải của InterDev, chọn mục “Add Data Connection” để tạo 1 connection tên là MyConnection liên kết với DSN WebSiteAdmin được tạo ra ở bước 2. Mục đích của bước này là cho phép các trang web trong project hiện hành truy xuất database thông qua tên luận lý riêng của Project.

    5. Nhấn phải chuột vào Project ở cửa sổ trên phải của InterDev, chọn mục “Add Active Server Page” để tạo 1 trang ASP mới với tên là homepage.asp. Một website gồm từ 1 tới n tài nguyên web được liên kết với nhau bắt đầu từ trang homepage.

    6. Tạo 1 điều khiển Recordset trong trang ASP (chọn icon RecordSet ở cửa sổ ToolBox bên trái của màn hình InterDev), rồi thiết lập 4 thuộc tính cơ bản của nó là Name=CounterRecordSet, Connection=MyConnection, Database Object=Tables, Object Name=Counters.

    7. Vào cửa sổ “Script Outline” bên trái màn hình InterDev, vào mục Server Objects & Events, vào mục CounterRecordSet rồi nhấn kép chuột vào mục ondatasetcomplete để tạo hàm xử lý sự kiện tương ứng. Viết đoạn lệnh sau vào thủ tục vừa tạo, mục đích của đoạn lệnh này là tạo 1 record ghi nhận thông tin của lần truy xuất hiện hành và ghi vào table “Counters”.

    <SCRIPT ID=serverEventHandlersVBS LANGUAGE=vbscript RUNAT=Server>

    Sub CounterRecordset_ondatasetcomplete()

    Dim fieldsArray(2)

    Dim valuesArray(2)

    ‘ tạo dãy tên các field cần ghi

    fieldsArray(0) = “RemoteHost”

    fieldsArray(1) = “PathInfo”

    fieldsArray(2) = “HTTPUserAgent”

    ‘ tạo dãy các giá trị tương ứng các field

    valuesArray(0) = Request.ServerVariables(“Remote_Addr”)

    valuesArray(1) =  Request.ServerVariables(“Path_Info”)

    valuesArray(2) = Request.ServerVariables(“HTTP_User_Agent”)

    ‘ ghi record vào database

    CounterRecordset.addImmediate fieldsArray, valuesArray

    End Sub

    </SCRIPT>

    8. Kết quả của đoạn script được viết ở bước 7 là số record trang table “Counters” chính là số lần người dùng truy cập vào trang Web. Bây giờ, bạn hãy soạn thảo tiếp nội dung trang ASP theo yêu cầu của bạn, nếu bạn thêm đoạn dữ liệu sau ở vị trí nào đó của trang Web thì lúc hiển thị bạn sẽ thấy được số lần người dùng truy xuất trang Web:

    Số lần trang Web này được truy cập là <%=CounterRecordset.getCount()%>.

    Chuyên mục: Mạng - truyền thông