お世話になっています。
セッションの設定でブラウザを閉じたらセッションを破棄で
いろいろ検索してみましたがうまくいきません。
試してみたもの
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");
ご存知の方ご指導ご教授宜しくお願いします。
コメント(4件)
Google Chromeの場合は、設定によって次のような動作になるようです。
http://q.hatena.ne.jp/1349166030
※Firefoxの場合も、セッションを復元すると前回終了時に開いていたタブとセッションが復活して引き継がれます。
ブラウザはIE9、Firefox、Chromeで検証しましたがセッションは残ったままでした。
ログイン機能でセッションを使用しています。
ログイン画面以外のURLでアクセスした際にセッションがあるかないかで判定をし
セッションが空ならログイン画面へリダイレクト
ブラウザを閉じたときセッションが削除できないため
$this->Session->check()で判定していますが
ログイン画面にリダイレクトされません。
手順
一度ログインしてセッションを作成
ブラウザを閉じる
再度ブラウザを立ち上げログイン画面のURL以外にアクセスするです。
ご指導ご指摘宜しくお願いします。
設定変更後、動作確認前にブラウザのメニューからクッキーの削除を行ったでしょうか?
以前のクッキーが残っていると設定変更後の動作確認が不十分になります。
該当ドメインのクッキーを完全に削除してから、もう一度確認してみてください。
ブラウザを閉じるまで有効なセッションは、「session.cookie_lifetime」で可能なはずです。
Configure::write('Session', array(
'defaults' => 'php',
'ini' => Array(
'session.cookie_lifetime' => 0,
)
));
無事解決できました有難う御座います。