session_id()で、mysqlにセッションIDと時間を保存していき、mysql_num_rowsでセッション数が保存されている行をカウントし、一定時間経過したらセッションIDを削除します。
<?php session_start(); $session=session_id(); $time=time(); $time_check=$time-300; $host="localhost"; $username="dbuser"; $password="xxxx"; $db_name="online"; $tbl_name="online_user"; mysql_connect("$host", "$username", "$password") or die("could not connect to server."); mysql_select_db("$db_name") or die("cannot select DB"); $sql="SELECT * FROM $tbl_name WHERE session='$session'"; $result=mysql_query($sql); $count=mysql_num_rows($result); // if count is 0, then enter the values if($count=="0"){ $sql1="INSERT INTO $tbl_name(session, time)VALUES('$session', '$time')"; $result1=mysql_query($sql1); } // else update the values else { $sql2="UPDATE $tbl_name SET time='$time' WHERE session='$session'"; $result2=mysql_query($sql2); } $sql3="SELECT * FROM $tbl_name"; $result3=mysql_query($sql3); $count_user_online=mysql_num_rows($result3); echo "<b>Users Online: </b> $count_user_online "; //after 5 minutes, session will be deleted $sql4="DELETE FROM $tbl_name WHERE time<$time_check"; $result4=mysql_query($sql4); mysql_close(); ?>