09/10/2018, 23:14
làm thế nào đếm số người đang online trongPHP
Mình thấy 1 số website có hiển thị thông tin như Hiện có XX người đang online ? Bạn nào có đoạn code làm được việc này không thì vui lòng share cho mình với nhé ! Cảm ơn !
Bài liên quan





<?php class UsersOnline { /* Các tham số kết nối được sử dụng để dùng chung */ var $host = 'localhost'; var $database = 'gido'; var $user = 'root'; var $password = 'password'; var $timeoutSeconds = 120; var $numberOfUsers = 0; function UsersOnline() { $this->refresh(); } function getNumber() { return $this->numberOfUsers; } function printNumber() { if($this->numberOfUsers == 1) { echo "$this->numberOfUsers"; } else { echo "$this->numberOfUsers"; } } function refresh() { global $REMOTE_ADDR, $PHP_SELF; $currentTime = time(); $timeout = $currentTime - $this->timeoutSeconds; mysql_connect($this->host, $this->user, $this->password) or die('Error conecting to database'); mysql_db_query($this->database, "INSERT INTO usersonline VALUES ('$currentTime','$REMOTE_ADDR','$PHP_SELF')") or die('Error writing to database'); mysql_db_query($this->database, "DELETE FROM usersonline WHERE timestamp < $timeout") or die('Error deleting from database'); $result = mysql_db_query($this->database, "SELECT DISTINCT ip FROM usersonline WHERE file='$PHP_SELF'") or die('Error reading from database'); $this->numberOfUsers = mysql_num_rows($result); mysql_close(); } } ?>CREATE TABLE `usersonline` (
`timestamp` int(11) NOT NULL default '0',
`ip` varchar(30) NOT NULL default '',
`file` varchar(255) NOT NULL default ''
) TYPE=MyISAM;