2012-03-19 5 views
2

ユーザーがWebサイトに正常にログインすると、そのイベントは「loggedin」という名前のセッションを作成し、trueに設定します。ユーザーがセッション状態をログに記録するのは、サイトを離れるまでのみです。

if (criteria satisfied){ 
    $_SESSION['loggedin'] = true;} 
else { ... } 

このセッションは、ユーザーがウェブサイトを終了すると期限切れになることがありますか?

ウェブサイトを終了すると、ウェブサイトから直接離れることを意味します。タブ、ブラウザ、または別のウェブサイトを訪れているかどうかは、ユーザがウェブサイトを離れる場合を意味します。

私はこの質問をする前に他の質問をチェックしましたが、この質問に直接答えるものはありません。すべてすべての質問者に関連する一意のインスタンスを扱うようです。

session.cookie_lifetime = 0; 

をphp.iniで:

+4

「ウェブサイトを終了」とは何を意味しますか? – jprofitt

+1

これに関する多くの質問があります。それらを見直してください:http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes – sikander

+0

@ryanあなたはタブ/ウィンドウの終了を追跡することを意味しますか? – hjpotter92

答えて

3

を入れてみてください。ユーザーがウェブサイトを終了している場合(ブラウザを閉じるなどして、コンピュータをシャットダウンした場合など)、セッションCookieが削除されます。 session.cookie_lifetimeを参照してください。

+1

+1、注:タブを閉じたり、別のウェブサイトにアクセスしたりすることはできません。追加の注釈:ユーザーは複数のタブを開いていることができ、サーバーはユーザーが持つタブの数を知ることができないため、タブを閉じたり他のWebサイトにアクセスしたりすることはできません。 (したがって、最後のタブが閉じられたときにセッションを削除することはできません) – Kaii

0

クライアント側のセッションは、そのセッションのID番号が入っているクッキーに過ぎません。

クッキーの有効期限を非常に小さく設定できますが、ページ上で誰かがアイドル状態になっているとセッションが期限切れになる可能性があります。セッションのCookieの有効期限を更新するMETAリフレッシュを使用して、すべてのページ(マスターページ/マスターテンプレート)に隠れたIFRAMEを置くことができます。

onUnload JavaScriptイベントを使用して、LogOutページへのAjax呼び出しを行い、セッションを中止してCookieを消去することもできます。

関連する問題