2012-05-09 7 views
0

私はPHPプロジェクトに取り組んでいます。ブラウザを閉じてセッションを解除するか破棄するとき、私はそれをしたいだけです。ここmac osでブラウザを閉じるときにセッションを破壊するには?

Iはまた、)(のsession_start前

ini_set( 'session.cookie_lifetime'、0)およびsession_set_cookie_params(0)を試みました。

Windows OSではうまく動作しますが、MAC OSではうまく動作しません。

ありがとうございました。

+0

どのブラウザが使用していますか? –

+0

chromeとfirefox – nic

+0

あなたも**そのコードを試しました。あなたはその前に何を試しましたか?技術的に何をしようとしていますか?クッキー仕様のどの機能を使用しますか?クッキー仕様があることをご存知ですか? – hakre

答えて

4

セッションには2つの部分があります。

  1. データブラウザを閉じたときに、サーバー上のデータを削除する信頼できる方法はありませんクライアント

にセッションIDを使用してサーバー

  • クッキーに保存されています。すべての正常なセッションシステムは、古いデータを定期的に消去します(N分間の間、関連付けられたブラウザの兆候がない場合)。

    通常、ブラウザのCookieは有効期限なしに送信されます。つまり、ブラウザが終了すると有効期限が切れます。これは確実に機能します。

    Windowsクライアントで何をしているのか分かっていれば、そのクッキーが期限切れになっていると思います。

    これはMacとWindowsで発生します。私の最高の推測は、あなたのテストに問題があるということです。 Windowsでは、アプリケーションは通常、最後のウィンドウが閉じられると終了します。 Macでは、アプリケーションでは明示的に終了する必要がありますが、最後のウィンドウを閉じるだけでは開いたままにしておく必要があります。

    クッキーが期限切れになっていることを確認するには、ブラウザから明示的に終了する必要があります(メニューから終了を選択するか、Dockのアイコンを右クリックして終了を選択します)。

    最後のウィンドウが閉じられたときをサーバーが検出し、リモートでセッションを終了する方法はありません。

  • 1

    多かれ少なかれ、それが動作意味するのWindows

    を正常に動作しています。

    ではなく、これはおそらく誤解されたMAC OS

    で働いています。 すべてブラウザーウィンドウでセッションCookieを破棄する必要があります。ほとんどの場合、複数のウィンドウのうちの1つしか閉じず、少なくとも1つのブラウザインスタンスが存在します(端末ウィンドウでtopを使用してその種類のものを確認できます)。

    関連する問題