• ベストアンサー
  • 困ってます

ブラウザ終了時にセッションを削除する方法

  • 質問No.3989488
  • 閲覧数5114
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 46% (6/13)

ログイン入力画面を作成し、以下の動作を確認しています。
(1)正常にログインしてブラウザを終了する。
(2)再びブラウザを起動してログイン後の画面を表示する。
(3)セッションがないため自動的にログイン入力画面へ移動する。

IEだとセッションが消えてログイン入力画面へ移動しますが、
Firefoxではセッションが消えず、ログイン入力画面へ移動しません。
Firefoxでもブラウザ終了後にセッションを消す方法はないでしょうか?

下記のプログラムで確認しました。
--------------------------------------------------------------------
login.php
<?php
session_start();

$error_message = "";

if(isset($_POST["login"])){
if($_POST["member_name"] == "php" && $_POST["pass"] == "pass"){

$_SESSION["login_name"] = $_POST["member_name"];

$login_url = "http://{$_SERVER["HTTP_HOST"]}/admin/anq_result.php";
header("Location: {$login_url}");
exit;

}
$error_message = "メンバー名かパスワードが間違ってます。";
}
?>
<html>
<body>
<?php
if($error_message){
print '<font color="red">'. $error_message. '</font>';
}
?>

<form name="form1" method="post" action="login.php">
<p>メンバー名
<input type="text" name="member_name" value="">
<br>
パスワード
<input type="password" name="pass" value="">
<br>
<input type="submit" name="login" value="ログイン">
</p>
</form>

</body>
</html>
-------------------------------------------------------------------------------------------------------------------------
anq_result.php

<?php
session_start();


if (!isset($_COOKIE["member_name"])) {
unset($_SESSION["login_name"]);
}

if (!isset($_SESSION{"login_name"})) {


$no_login_url = "http://{$_SERVER["HTTP_HOST"]}/admin/login.php";
header("Location: {$no_login_url}");
exit;

} else {

print "ログイン成功です。";


}


?>

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 54% (865/1590)

サーバ側で「ブラウザを閉じた」というのが検知できない以上は無理だと思います。

実際にはセッションではなくCookie(保存期限なし=ブラウザを閉じるまでの期限)をチェックしていますよね?

>if (!isset($_COOKIE["member_name"])) {
>  unset($_SESSION["login_name"]);
>  }

こればかりはブラウザの仕様なので、如何ともし難いです。セッションもFirefoxは(サーバ側でタイムアウトするまでは)復元可能ですしね。
補足コメント
takaroby

お礼率 46% (6/13)

すみません。
↓のクッキーは間違えです。
if (!isset($_COOKIE["member_name"])) {
unset($_SESSION["login_name"]);
}
投稿日時:2008/05/01 13:54
お礼コメント
takaroby

お礼率 46% (6/13)

回答ありがとうございます。

>こればかりはブラウザの仕様なので、如何ともし難いです。
そうですか。
ブラウザの仕様では仕方がないので諦めます。
投稿日時:2008/05/01 13:59
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ