まず、関連するデータ テーブル構造、つまり 4 つのフィールドを紹介します。
コードは次のとおりです。
コードをコピーします コードは次のとおりです。
uid
session_id
login_time
を取得する関数
まず、ユーザーが正常にログインした後、ユーザーの uid と session_id を記録し、現在の時刻をログイン時刻として、現在の時刻 600 秒をログアウト時刻として使用し、データベースに挿入します。 コードは次のとおりです:
コードをコピーします
コードは次のとおりです:
$uid = $_SESSION[ uid] = $info[id];
$session_id = $_SESSION[session_id] = session_id();
$logout_time = time(); sql = "INSERT INTO member_login (uid,session_id,login_time,logout_time)values($uid,$session_id,$login_time,$logout_time)";
mysql_query($sql);ユーザーがアクティブ化するたび、つまりページがクリックされるたび、セッションが存在する場合、つまりユーザーがログインしている場合、ユーザーのログアウト時間
コードをコピーします コードは次のようになります:
if($_SESSION[uid]){$uid = $_SESSION[uid]; $session_id = $_SESSION[session_id];
$logout_time = time()
$sql = "UPDATE member_login SET logout_time=$logout_time WHERE uid=$uid AND session_id=$session_id"; ($sql);
}
この方法の利点は、実装が比較的簡単で、ほとんどの Web サイトに適用でき、追加のサーバー要件がなく、正確にカウントできることです。ユーザーのオンライン時間。
データベースの更新操作が増加し、システム負荷が増加するというデメリットもありますが、中小規模の Web サイトでは問題になりません。