誰かのセッションが終了しているかどうか、もしあれば何かできるかどうかを知ることができるのだろうかと思っていました。PHPセッションが破棄されたときに何かする
たとえば、セッションが終了した場合、プレーヤーのステータスをオフラインに設定します。
誰かのセッションが終了しているかどうか、もしあれば何かできるかどうかを知ることができるのだろうかと思っていました。PHPセッションが破棄されたときに何かする
たとえば、セッションが終了した場合、プレーヤーのステータスをオフラインに設定します。
独自のセッションハンドラを実装している場合、これについては何もできません。
いくつかのアイデアについては、http://nl2.php.net/manual/en/function.session-set-save-handler.phpを参照してください。
ユーザーがサーバーに要求しない場合は、データベースシステムを使用しない限り、セッションが終了した時点を確実に知ることはできません。たとえば、セッションテーブルがあるとします。
session_id | user_id | session_start_time
ページをロードするたびに、session_start_timeが削除可能な古いものかどうかを調べます。たとえば:
if (($data['session_start_time'] + USER_SESSION_TTL) < time()) {
// delete row
}
USER_SESSION_TTL
は、彼がアクティブでない場合、ユーザーのセッションが生きたままの時間です。
ユーザーが関連付けられているセッションを持っていない場合は、安全にオフラインであると見なすことができます。私は少し一般化しましたが、多くのシステムに適用できます。
希望します。
ありがとうございますが、この部分はどういう意味ですか? USER_SESSION_TTL –
私はその部分の説明を追加しました。基本的には、ユーザーセッションがあなたのサイトにアクセスしていない場合(アクティブではない)、ユーザーセッションが存続する時間(秒)です。 – vanneto
セッションを破棄した場合は、ユーザーがサイトの訪問を停止した場合 – Brad
アプリケーションフレームワーク(Symfony、CodeIgniter、Cakeなど)を使用していますか? –
私のサイトに行ったことはありません。だから彼らがブラウザを閉じるならば、私は –