[PHP] Hướng dẫn viết ứng dụng đếm số người đang online bằng PHP

Đăng bởi : Admin | Lượt xem : 1828 | Chuyên mục : PHP

Trong bài này, vncoder.vn sẽ hướng dẫn các bạn cách thức xây dựng tính năng thống kê số người đang online trên website của bạn. Chức năng này cũng khá là quan trọng, nó giúp chúng ta có cái nhìn tổng quát hơn về hệ thông của chính mình, khi chúng ta nhìn thấy số lượng người đang online mà Website của bạn đang hoạt động một cách trì trệ thì bạn có thể linh hoạt hơn trong việc điều chỉnh lại Server của bạn.

Trong bài này, vncoder.vn sẽ hướng dẫn các bạn cách thức xây dựng tính năng thống kê số người đang online trên website của bạn. Chức năng này cũng khá là quan trọng, nó giúp chúng ta có cái nhìn tổng quát hơn về hệ thông của chính mình, khi chúng ta nhìn thấy số lượng người đang online mà Website của bạn đang hoạt động một cách trì trệ thì bạn có thể linh hoạt hơn trong việc điều chỉnh lại Server của bạn. Cùng vncoder.vn làm theo các bước dưới đây nhé.

Trước hết, tất cả chúng ta khởi tạo cở sở dữ liệu như sau :

mysql> create table useronline(tgtmp INT(15) DEFAULT "0" NOT NULL ,
ip VARCHAR(50) NOT NULL ,
local VARCHAR(100) NOT NULL,
PRIMARY KEY(tgtmp),
KEY ip(ip),
KEY local(local));

Trong đó :

  • tgtmp là thời gian mà họ truy cập được tính khi họ truy vào trang web đó.

  • IP là dãy số lưu thông tin IP của họ khi viếng thăm website của chúng ta.

  • local là nơi lưu đường dẫn mà họ đang truy cập.

Khi người dùng truy vấn vào website, tất cả chúng ta sẽ thực thi insert thông tin của họ vào cơ sở tài liệu với những tham số cơ bản nhưng trong database .

tgtmp được tính ra bằng hàm time(). Hàm này sẽ lấy ra thời gian hiện tại của người truy cập. Tiếp tục ta lại tính thời gian mới của họ, được tính bằng việc quy ước thời gian quy định. Cụ thể ở đây chúng ta cho là 900 giây tương đương với 15 phút truy cập của họ.

Như vậy nếu thời gian lưu trong database mà nhỏ hơn thời gian new này thì chúng ta có thể hiểu rằng vị khách ấy đã rời khỏi website của chúng ta. Cụ thể hơn.

Ví dụ: bạn ghé thăm website đó là 7h.

Như vậy mạng lưới hệ thống sẽ ghi thông tin lúc đó là 7 h .

Nếu sau 1 thời gian tôi không làm gì, hoặc bạn không truy cập website đó nữa thì hệ thống sẽ không ghi nhận thông tin mới. Như thế nếu bây giờ 8h và trừ đi 15 phút tôi quy ước, rõ ràng là thời gian mới hiện tại là 7h45, Thời gian này vẫn lớn hơn thời điểm lưu thông tin 7h (7h45 > 7h). Do vậy, nếu chúng thỏa điều kiện đó thì chúng ta chỉ việc xóa đi các record trong cơ sở dữ liệu là xong.

Vậy ta có code liên kết CSDL như sau :

Sau đó ta thực thi ghi nhận thông tin người dùng vào CSDL .

$REMOTE_ADDR là biến môi trường dùng để lấy ra IP của người truy cập.

$PHP_SELF là biến môi trường dùng để lấy ra đường dẫn mà người dùng đang truy cập.

Tiếp đến ta tiến hành xóa record khi thời gian thực lớn hơn thời gian trong cơ sở dữ liệu.

Tiếp tục là công việc hiển thị thông tin ra bên ngoài bằng cách liệt kệ các record có trong database.

DISTINCT là cú pháp cho phép liệt kệ các dòng record mà không cho phép chúng có dữ liệu trùng lặp như cú pháp select bình thường.

Vậy chúng ta sẽ liệt kê tất cả những ip của những ai đang truy cập trên trang useronline.php.

Phần việc ở đầu cuối còn lại là tất cả chúng ta sẽ xuất thông tin ấy ra trình duyệt .

Và sau đây là toàn bộ nội dung code của trang useronline.php

Kết luận

Vậy là vncoder.vn đã kết thúc bài hướng dẫn cách đếm số người đang online trên Website bằng PHP. Vui lòng để lại bình luận nếu không hiểu hoặc có câu hỏi cho vncoder.vn. Chúc các bạn thành công!.

Tài liệu tham khảo

5/5 - (1 vote)

Bài viết liên quan

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments