Đếm số lượt người đang online trên web của bạn bằng PHP

27/07/2012

user-online

Nếu bạn có một website và bạn muốn xem có bao nhiêu người hiện tại đang lướt web của bạn thì đoạn code sau đây sẽ giúp bạn làm điều đó, trước khi thực hiện thủ thuật này thì chúng ta cần làm 1 vài bước .

Bước 1 : Tạo database

Giả sử chúng ta sẽ đặt tên database là demo và table là  active_sessions, và sau đây là chi tiết từng fields mà bạn sẽ tạo :

database

Bước 2 : Tạo kết nối cơ sở dữ liệu:

Các bạn tạo mới một file và đặt tên là db.php , và copy đoạn code sau rồi dán vào nó

<?php
$db_host = "localhost"; // Giữ mặc định là localhost
$db_name    = 'demo';// Can thay doi
$db_username    = 'root'; //Can thay doi
$db_password    = '';// thường là để trống, nếu bạn có đặt mật khẩu thì ghi mật khẩu tại đây
@mysql_connect("{$db_host}", "{$db_username}", "{$db_password}") or die("Không thể kết nối database");
@mysql_select_db("{$db_name}") or die("Không thể chọn database");
?>
?>

Bước 3: Các bạn tạo file mới và đặt tên là onlineNow.php, sau đó copy đoạn code sau đây và dán vào nó :

<?php
session_start();
include"db.php"; # Connect To the database
$active_sessions = 0;
$minutes = 5; # period considered active
if($sid = session_id()) # if there is an active session
{
# DB connect here
$ip = $_SERVER['REMOTE_ADDR']; # Get Users IP address
# Delete users from the table if time is greater than $minutes
mysql_query("DELETE FROM `active_sessions` WHERE
`date` < DATE_SUB(NOW(),INTERVAL $minutes MINUTE)")or die(mysql_error());

# Check to see if the current ip is in the table
$sql = mysql_query("SELECT * FROM active_sessions WHERE ip='$ip'");
$row = mysql_fetch_array($sql);
# If the ip isn't in the table add it.
if(!$row){
mysql_query("INSERT INTO `active_sessions` (`ip`, `session`, `date`)
VALUES ('$ip', '$sid', NOW()) ON DUPLICATE KEY UPDATE `date` = NOW()")or die(mysql_error());
}
# Get all the session in the table
$sessions = mysql_query('SELECT * FROM `active_sessions`')or die(mysql_error());
# Add up all the rows returned
$active_sessions = mysql_num_rows($sessions);
}
# Print the final result
echo'<b>Online Now: </b>'.$active_sessions;
?>

Vậy là từ đây nếu bạn muốn xem có bao nhiêu người đang truy cập thì chỉ cần chạy file onlineNow.php là có thể biết kết quả.

Chúc các bạn thành công !

Chuyên Mục:

Bài viết được đăng bởi webmaster

Nếu các bạn thấy bài viết hữu ích thì giúp mình Like cái nhé !
  • Timon

    nếu ấn refresh thì lúc đấy số người truy cập lại tăng, chứng tỏ mã lệnh chưa đúng lắm