ในที่สุดเราก็จะได้รู้กันเสียทีว่ามีผู้ที่ใช้งานเว็บไซต์ตอนนี้มีกี่คน คนในที่นี้หมายถึง 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 ความคิดเห็น:
แสดงความคิดเห็น