PHP でユーザーのオンライン時間をカウントしようとする試み
以下に、より一般的に使用されるメソッドの一部を示します。
まず、関連するデータ テーブル構造と 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ヘンタイを無料で生成します。

人気の記事

ホットツール

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

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
