看板 Web_Design 關於我們 聯絡資訊
我目前的作法是當使用者登入的時候,寫入一個記錄登入時間跟使用者的session變數 然後用php寫入mysql資料庫,再用mysql找出離現在一段固定時間登入的使用者當成線上 人數,可是問題來了,如果那個使用者一直在那個網站逛超過我預設的登入時間,那這 位使用者就變成顯示不在線上,可是事實上他還是在阿,我有想過如果當使用者看網頁的 時候也順便修正mysql裡的登入時間,可是我在登出的時候是選擇找使用者跟登入時間做 AND運算在mysql資料庫刪除並用session_unregister()刪除session,但如果想用這樣的 話,最後mysql的登入時間早被我改過了,使用者登出後,mysql就找不到相對應的資料來 刪,我找好久,都找不到能夠直接修改session裡面的變數值的方法,有沒有人可以指點 一下,我也有想過登入時,多加一個以亂數當成惟一的登入session變數,可是我的疑問 會不會重覆到,如果資料庫有兩筆相同的登入值,那最後如果某個人按登出,豈不會多砍 一筆資料 下面是我的程式,connect.php只是單純連資料庫的東西 <?php session_start(); include('./connect.php'); $MM_Username=$_SESSION['MM_Username']; $sql="select `login_name`,`login_time` from whoisonline"; $result = mysql_query($sql); $now_time=date("U"); //$sql1="UPDATE `whoisonline` SET `login_time` = '$now_time' WHERE `login_name`='$MM_Username'"; //mysql_query($sql1); echo "現在有"; while( list($a0,$a1)=mysql_fetch_row($result)){ if(($now_time-$a1)<30*60){ if($a0==$MM_Username){ echo $a0.","; $i++; } else { echo "<a href=imEdit.php?u=$a0>$a0</a>,"; $i++; } } } echo "<p>"; echo "共'$i'人在線上"; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.128.194.77