09/10/2018, 23:22

Lưu thời gian lần cuối cùng online ?

Làm sao để biết được thời gian lần cuối cùng online của 1 thành viên để lưu vào CSDL ? Có ai biết cách làm này không ?
namleb viết 01:33 ngày 10/10/2018
Vào table Users hay Members thêm cột OnlineCuoi kiểu Date, khi user/member "online" thì sửa thời gian hiện tại vào cột đó (OnlineCuoi).
NumPad0 viết 01:36 ngày 10/10/2018
Thời gian của lần cuối đăng nhập chính là thời gian của phát click cuối cùng (The Final Click). Đó chính là phát click triệu gọi logout. (Tất nhiên là nếu người dùng có logout he he...)
Đùa vậy, bạn tạo một table có lưu
- Tên người dùng (id)
- Thời gian click
Mỗi khi người dùng triệu gọi một script, bạn sẽ lưu thông tin lúc đó vô bảng. Như vậy nếu cả khi người dùng không logout, bạn cũng sẽ có thời gian cuối cùng mà người dùng đã duyệt site.
Chúc bạn code vui, đừng có phê vì code. He he...
firemanq6 viết 01:26 ngày 10/10/2018
OK, tôi đã hiểu rồi, cảm ơn các bạn nhiều nha. À, cho hỏi thêm một vấn đề này nữa : Khi một người đến thăm trang Web thì được gọi là khách, đăng nhập vào thì gọi là thành viên, vậy làm thế nào để tính được số khách và số thành viên đang online (liệt kê tên các thành viên đó ra luôn) ?
babyinternet viết 01:27 ngày 10/10/2018
tạo một bảng đặt tên là Online User hay gì gì đó !
Trong đó khóa chính của bảng là số IP, mỗi lần người dùng truy cập thì ghi lại số IP, nếu số IP chưa tồn tại thì insert một dòng vào bảng, nếu đăng nhập thì sửa field nickname thành tên truy cập của thành viên đó, tên truy cập mặc định là guest. Sau mỗi vài phút thì bác refesh lại một lần để nó cập nhật lại.
Cuối cùng chỉ việc đếm số dòng là ra số thành viên, đếm số dòng có field nickname = 'guest' là ra số khách, đếm số dòng có nickname!='guest' thì ra số thành viên rồi nhân tiện select luôn cái tên ra.
firemanq6 viết 01:25 ngày 10/10/2018
Tôi đã làm theo giải thuật của các bạn như sau :
- Trong GLOBAL.asa, tôi tạo 1 biến Application("guest") = 0
- Khi Sesion_OnStart() thì
Application("guest") = Application("guest") + 1
Session.TimeOut = 15
- Khi Sesion_OnEnd() thì
Application("guest") = Application("guest")- 1
- Khi thành viên đăng nhập vào thì biến Application("guest") = Application("guest")- 1, đồng thời xét cập nhật thời gian lastvisit = thời gian hiện tại. Khi thành viên bấm vào nút Logout và Close trình duyệt thì Application("guest") = Application("guest") + 1
- Nhưng có một tình huống như sau : khi thành viên không bấm gì trên trình duyệt khoảng 15 phút (trang Web vẫn mở) thì Session sẽ Timeout, khi đó trang Web sẽ yêu cầu đăng nhập trở lại. Tại sao biến Application("guest") lại không tăng lên 1 khi thành viên đó đã trở thành "guest" rồi, các bạn có biết cách khắc phục điều này không ?
namleb viết 01:33 ngày 10/10/2018
Session_OnStart()
Application.Lock <-- Thêm
Application("guest") ++
Application.Unlock <- Thêm

...
Close trình duyệt mà tăng "guest" lên 1 à?

- "guest" ko tăng lên 1 vì session timeout = Session_OnEnd(), request hay refresh lại = Session_OnStart().

Thử lại xem
Bài liên quan
0