以下に、より一般的に使用されるメソッドの一部を示します。
まず、関連するデータ テーブル構造と 4 つのフィールドを紹介します。
コードをコピー コードは次のとおりです:
uid
session_id
login_time
logout_time
1 を取得します。サーバー側に定期的にリクエストを送信します。実装方法は、ユーザーがログインした後のレコードに uid、session_id、login_time を挿入し、クライアント JS でタイマーを設定します。たとえば、ログアウトを更新する目的を達成するために 10 分ごとにサーバーにリクエストを送信します。もちろん、この間隔を短く設定するとデータの精度は高くなりますが、対応するシステム負荷は実際の状況に基づいて適切な値に設定できます。このメソッドは、Web ゲームで広く使用されています。Web ゲームのほとんどすべてのリクエストが Ajax リクエストであり、ページが更新されるとタイマーの値が失われるためです。これがこのメソッドの制限でもあります。
2. サーバーはスケジュールされたポーリング スクリプトを設定します。この方法は、サーバー側でスケジュール実行スクリプトを記述し、例えば5分に1回実行し、各セッションのsession_idがサーバー上に存在するかどうかをデータベース内のレコードに基づいて判断します。 、logout_time が存在しない場合はスキップされます。これによりオンライン時間を正確にカウントすることもできますが、サーバーを制御する必要があるという欠点があります。そうでないと、Linux システムでは crontab を介してタイミング スクリプトを設定でき、Windows システムではスケジュールされたタスクを介してこれを実行できます。仮想ホストを購入したばかりの場合、この方法も適していません。
3. ユーザーがアクティブになるたびにログアウト時間を更新します。このように、ユーザーが非アクティブであるかログアウトすると、ログアウト時刻がデータベースに自然に存在します。これは、この記事で焦点を当てている解決策でもあります。実装方法は以下の通りです。
まず、ユーザーが正常にログインした後、ユーザーの uid と session_id を記録し、現在の時刻をログイン時刻として、現在の時刻 600 秒をログアウト時刻として使用し、データベースに挿入します。
コードをコピー コードは次のとおりです:
$uid = $_SESSION['uid'] = $info[' id'] ;
$session_id = $_SESSION['session_id'] = session_id();
$logout_time = time() 600; INSERT INTO member_login (uid,session_id,login_time,logout_time) value($uid,'$session_id',$login_time,$logout_time)";
mysql_query($sql);
その後、ユーザーアクティビティの時間、つまりページがクリックされるたび、セッションが存在する場合、つまりユーザーがログインしている場合、ユーザーのログアウト時間が更新されます
コードをコピー コードは次のとおりです。
if($_SESSION['uid']){$uid = $_SESSION['uid']; session_id = $_SESSION['session_id'];
$ logout_time = time() 600;
$sql = "UPDATE member_login SET logout_time=$logout_time WHERE uid=$uid AND session_id='$session_id'"; 🎜>mysql_query($sql);
}
この方法の利点は、実装が比較的簡単で、ほとんどの Web サイトに適用でき、追加のサーバー要件がなく、また、ユーザーのオンライン時間を正確にカウントします。
データベースの更新操作が増加し、システムの負荷が増加するというデメリットもありますが、中小規模の Web サイトでは問題になりません。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1
使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
