ในที่สุดเราก็จะได้รู้กันเสียทีว่ามีผู้ที่ใช้งานเว็บไซต์ตอนนี้มีกี่คน คนในที่นี้หมายถึง session_id วิธีการก็คือ เราจะเก็บ session_id และ time() ทุกๆหน้าของเว็บเพจที่เราต้องการ เพื่อบันทึกลงฐานข้อมูล จากนั้นเราก็จะนำเอา time() มาเช็คกับเวลาที่เรากำหนดไว้ คือ 15 นาที.....
เริ่มด้วย session_start() ก่อนเพราะเราต้องเก็บตัวแปร session_id
session_start(); include 'config.php';
จากนั้นก็เก็บตัวแปรที่ต้องการก่อนคือ
$useronline = session_id(); $time = time(); $timecheck = time() - 900;//เอาไว้เช็คเวลา กำหนดไว้ 15 นาที
ต่อมาก็นับแถวในฐานข้อมูลว่ามี session_id ของผู้ที่เพิ่งจะเข้ามาหรือไม่
$sql = "select * from useronline where session = '$useronline'"; $result = mysql_query($sql); $num = mysql_num_rows($result);
ถ้ามีอยู่แล้วก็ให้ update time()
if($num > 0){
mysql_query("update useronline set time_online = '$time'
where session = '$useronline'");
}
ถ้ายังไม่มีก็ insert เข้าไป
else{
mysql_query("insert into useronline (session,time_online) values
('$useronline','$time')");
}
จากนั้นก็นำเวลาที่ update ของ user มาเช็คกับเวลาที่กำหนด คือ 15 นาที
$sql = "select * from useronline where time_online > '$timecheck'"; $result = mysql_query($sql); $useronline = mysql_num_rows($result);
Code ที่กล่าวมาทั้หมดนั้น ท่านสามารถนำไป include ตามเพจต่างๆตามที่ต้องการได้เพื่อ
ติดตาม update เวลาของ user เวลาที user คลิกไปตามลิงค์ต่างๆ
มาในส่วนขอการแสดงผลของการนับจำนวนของ useronline เพียงแค่ echo ออกมาแค่นั้นเอง...
<div id="user"> <div id="useronline">ผู้ใช้งานขณะนี้ <font color='blue'> <b><?=$useronline?></b></font> ท่าน</div> <center><div id="update">update 15 นาที</div></center> </div>
Code ที่เสร็จแล้ว
<?php session_start(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<style>
#useronline{background:#FFF3AE;border:2px solid #1BAFD5;padding:5px;}
#user{width:160px;padding:8px 8px 3px 8px; border:1px solid #999999;
background:#eeeeee;}
#update{font-size:9px;color:#999999;}
</style>
</head>
<body>
<?php
include 'config.php';
$useronline = session_id();
$time = time();
$timecheck = time() - 900;
$sql = "select * from useronline where session = '$useronline'";
$result = mysql_query($sql);
$num = mysql_num_rows($result);
if($num > 0){
mysql_query("update useronline set time_online = '$time'
where session = '$useronline'");
}
else{
mysql_query("insert into useronline (session,time_online) values
('$useronline','$time')");
}
$sql = "select * from useronline where time_online > '$timecheck'";
$result = mysql_query($sql);
$useronline = mysql_num_rows($result);
?>
<div id="user">
<div id="useronline">ผู้ใช้งานขณะนี้ <font color='blue'>
<b><?=$useronline?></b></font> ท่าน
</div>
<center><div id="update">update 15 นาที</div></center>
</div>
</body>
</html>









0 ความคิดเห็น:
แสดงความคิดเห็น