2010-11-20 6 views
1

私は何人のユーザーをオンラインで計算していますが、ログアウトせずにウィンドウを閉じると、彼はオンラインではないので、javascriptまたはjqueryを通じて動的にログアウトする必要があります。 私はbody onunloadイベントを使用してこれをチェックしても動作しますが、ページをリフレッシュするとbody unloadイベントも呼び出されます。JavaScriptのウィンドウのアンロードイベント

は、ここに私のコード

<script> 
function LogmeOut() 
{ 
    window.location='logout.php'; 
} 
</script 
<body onUnload="LogmeOut();"> 
    ..... 
    ..... 
</body> 

ログアウトPHPは、ウィンドウを閉じる前に、現在のユーザーをサインアウトしますです。 提案がありますか?

+0

あなたはUIやjQueryを使ってこれを完全に行うことができない、あなたはセッション管理などのバックエンドのサポートを必要とします。 – kobe

答えて

5

信頼できる方法はありません。

ユーザーがページにアクセスし、アクティビティをデータベースに更新し、新しい有効期限(たとえば15分)を設定するとよいでしょう。

ユーザーがクエリを実行してもアクティビティがなかった場合は、オフラインとしてカウントする可能性があります。

+0

+1タイムアウトのコンセプトを回避するセッションIMOを管理する最善の方法を提案します。ユーザーがx時間の間アクティブでない場合、ログアウトされます。 – Alex

0

私は

...あなたのJavaScriptを通して、あなたのアクティブユーザーを追跡して行くならば、それは間違いなく、ブラウザをクラッシュに起因するエラーを持っているだろう「アクティブ」しかしなどアイドルにブラウザを左に実際に非アクティブなユーザーが、アレックスの答えが好きアレックスの方法はそれをすべて避けます。

+0

あなたのコメントありがとう.... – Jute

0

代わりwindow.onunloadを使用しての、私はwindow.onbeforeunloadを使用して好むし、次のようにlogout.phpするAJAX呼び出しを行います:

window.onbeforeunload = function(){ 
    // make an ajax call to logout.php 
}; 
+0

あなたのコメントをありがとう..... – Jute

関連する問題