[PHP-users 16347]セッション破棄後画面が表示されない現象について
aiko
vvv_aiko_vvv @ hotmail.com
2003年 7月 2日 (水) 04:47:24 JST
いつもお世話になっております。
システムのログアウト処理で
ログアウトボタンを押下 → セッション破棄 → ログイン画面に戻る
という遷移をさせているのですが、ログイン画面に戻る段階で
ログイン画面が表示されず白い画面のままの場合があります。
ブラウザを更新すると、通常のログイン画面が表示されます。
★セッション破棄ファイル
***************************************************
<?php
ob_start();
session_start();
//セッション変数のクリア
session_unset();
ob_end_clean();
// ログイン画面へ
header("Location: ". login.php );
?>
***************************************************
★ログインファイル
***************************************************
<?php
ob_start();
session_start();
// ここで、
// ログインに必要なセッション変数をセットしている
// ex) $_SESSION["xxxx"] = "xxxxxxxx" ;
// ob_end_flush(); // <-- 入れてみたのですが結果は変わりませんでした。
?>
<html>
<head>
<title>ログイン</title>
</head>
<body>
<?php
// 画面作成
?>
</body>
</html>
***************************************************
上記の様に
セッション変数クリア後、
header()でログイン画面に遷移して
sessionを再開すると何か不都合があるのでしょうか。gc関係?
とりあえずの解決策としてセッション破棄ファイルを
JavaScriptで遷移する様に改良した所、上記現象はなくなりました。
★セッション破棄ファイル<改良版>
***************************************************
<?php
ob_start();
session_start();
//セッション変数のクリア
session_unset();
ob_end_clean();
// ログイン画面へ
// header("Location: ". login.php );
?>
<html>
<head>
<title></title>
<script language="JavaScript">
<!--
// ログイン画面へ遷移
window.top.location.href="login.php";
//-->
</script>
</head>
<body>
</body>
</html>
***************************************************
上記の様な原因について問題等分かる方がおられましたら
ご教示の程よろしくお願いいたします。
_________________________________________________________________
ネットを使うひとに有利な特典いっぱい MSN カード http://card.msn.co.jp/
PHP-users メーリングリストの案内