28

WebサイトでセッションベースのCookieを使用しています。驚いたことに、セッションCookie(永続的なCookieではない)を設定し、タブを閉じてからサイトに再接続すると、セッションCookieがまだ残っていることに気付きました。実際、それは私が期待していたことではありません。セッションCookieが削除されることを期待していました。

ブラウザを閉じるとセッションCookieが削除されるので、同じ結果になるようにタブを閉じてみませんか?

したがって、私はPHP5とjQueryを使用しています。タブを閉じたときにこのセッションの問題を修正できるようにできることはありますか?残念ながら、BODYタグのonbeforeunloadイベントは、ページから離れてクリックすると、タブを閉じるだけでなく、そのイベントを発生させるため、ここでは役に立ちません。

4

5 に答える 5

22

セッションCookieは、ウィンドウごとではなくプロセスごとです。したがって、[新しいウィンドウ]を選択した場合でも、同じセッションIDを取得できます。この動作は理にかなっています。ユーザーがサイトの閲覧中に新しいウィンドウを開くたびに再サインインすることは望ましくありません。

私はこれを回避する実際の方法をすぐに知りません。

于 2009-04-30T08:20:10.933 に答える
7

これは仕様によるものであり、変更しようとするのは非常に悪い考えです。ユーザーが新しいタブでリンクを開いて閉じた場合はどうなりますか?元のタブのセッションを破棄する必要がありますか?もちろん違います!これは、これについて考えるべきではない理由を示しています。

最後のブラウザウィンドウが閉じると、セッションは終了します。他のものが必要な場合は、次のようにします。

  1. セッションは必要ありません。
  2. 独自の「ミニセッション」インフラストラクチャを作成する必要があります。
  3. おそらく傷とバグの世界にいます。
于 2009-04-30T08:19:27.533 に答える
3

タブが閉じられたことを検出するJavaScriptを記述し、JavaScript内のCookieを削除することもできます

于 2011-03-06T11:29:04.410 に答える