CakePHP2.2 セッション設定


お世話になっています。

セッションの設定でブラウザを閉じたらセッションを破棄で
いろいろ検索してみましたがうまくいきません。

試してみたもの
core.php
①Configure::write('Session.cookieTimeout', 0);

Configure::write('Session', array(
'defaults' => 'php',
'ini' => Array(
'session.cookie_lifetime' => 0,
)
));

if (!$this->Session->check('loginFlg'))
ブラウザを一度閉じもう一度アクセスするとloginFlgがあることになっています。

環境
// ini
session.auto_start = 0
session.use_trans_sid = 0
session.use_only_cookies = 0
// Cake
Configure::write('Security.level', 'medium');
session_cache_limiter("must-revalidate");

ご存知の方ご指導ご教授宜しくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/12/04 11:50:07

回答0件)

回答はまだありません

  • id:rouge_2008
    ブラウザは何を使っていて、どのような手順で試したのでしょう?
    Google Chromeの場合は、設定によって次のような動作になるようです。

    http://q.hatena.ne.jp/1349166030

    ※Firefoxの場合も、セッションを復元すると前回終了時に開いていたタブとセッションが復活して引き継がれます。
  • id:oracle11011
    コメント有難う御座います。

    ブラウザはIE9、Firefox、Chromeで検証しましたがセッションは残ったままでした。

    ログイン機能でセッションを使用しています。
    ログイン画面以外のURLでアクセスした際にセッションがあるかないかで判定をし
    セッションが空ならログイン画面へリダイレクト

    ブラウザを閉じたときセッションが削除できないため
    $this->Session->check()で判定していますが
    ログイン画面にリダイレクトされません。

    手順
    一度ログインしてセッションを作成
    ブラウザを閉じる
    再度ブラウザを立ち上げログイン画面のURL以外にアクセスするです。

    ご指導ご指摘宜しくお願いします。
  • id:rouge_2008
    1と2は別々に試したのですね?(※動作確認後は一旦無効にして、さらに別の設定の動作確認)
    設定変更後、動作確認前にブラウザのメニューからクッキーの削除を行ったでしょうか?
    以前のクッキーが残っていると設定変更後の動作確認が不十分になります。
    該当ドメインのクッキーを完全に削除してから、もう一度確認してみてください。
    ブラウザを閉じるまで有効なセッションは、「session.cookie_lifetime」で可能なはずです。

    Configure::write('Session', array(
    'defaults' => 'php',
    'ini' => Array(
    'session.cookie_lifetime' => 0,
    )
    ));
  • id:oracle11011
    以前のクッキーが残っていたため動作確認が不十分でした。

    無事解決できました有難う御座います。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません