Thứ Tư, 15 tháng 9, 2010

Đếm số người online dùng session

//---------------------------------
// Tình hình truy cập: http://phpcodevn.com/forum/viewtopic.php?f=29&t=1487
//---------------------------------
$sid = session_id();
    $CurrentTime = time();
    $TimeOut = $CurrentTime - 300; // kiểm tra mỗi 5 phút.
    //Xóa các record da truy cap truoc do 5 phut
    mysql_query("DELETE FROM online WHERE time < $TimeOut");
    $UserName = $_SESSION['name'];// Biến tên của User đã đăng nhập.
    mysql_query("DELETE FROM online WHERE name='' and sid=\"$sid\"");
    //Kiễm tra Session này có trong Database không?
    $check_sid_exist = mysql_num_rows(mysql_query("SELECT * FROM online WHERE sid = \"$sid\""));
    if ($check_sid_exist!=0)
    {
        //User này đã có trong bảng Online thì cập nhật thời gian online
        mysql_query("UPDATE online SET time = \"$CurrentTime\" WHERE sid = \"$sid\"");
    }
    else
    {
        //Nếu không tạo Record mới
        mysql_query("INSERT INTO online(name, sid, time)
                                            VALUES (\"$UserName\", \"$sid\", \"$CurrentTime\")");
    }
    //Tổng số Guest đang online
    $totalguest_qr = mysql_query("SELECT count(*) AS gnum FROM online WHERE name = ''");
    while ($gnum = mysql_fetch_array($totalguest_qr))
    { $ttg = $gnum['gnum']; }
    //Tổng số User đang online
    $totaluser_qr = mysql_query("SELECT count(DISTINCT name) AS unum FROM online WHERE name != ''");
    while ($unum = mysql_fetch_array($totaluser_qr))
    { $ttu = $unum['unum']; }
    //Danh sách user đang truy cập
    $userlist_qr = mysql_query("SELECT name FROM online WHERE name != ''");
    while ($ulist = mysql_fetch_array($userlist_qr))
    { $userlist .= $ulist['name'].", "; }
//--------------------------------- [/PHP]
Nguồn: http://freecodevn.com/for@um/showthread.php?t=53149

Không có nhận xét nào: