性格いい人が優勝

フォームからのデータを受け取るPHP、sesssion.phpが下記のとおりだとします。

<?
header('Cache-Control: nostore, no-cache, must-revvalidate');
session_cache_limiter('private_no_expire');
session_start();
header("Content-Type: text/html; charset=EUC");
$http= $_SERVER['HTTP_REFERER'];//どこから来たか
$form_id = $_POST['form_id'];
$form_pass = $_POST['form_pass'];
$flg= $_POST['t'];
$session = session_id();

if($http == "http://192.168.1.250/~fukazawa/session/form.html"){
$_SESSION['id'] = $form_id;
$_SESSION['pass'] = $form_pass;
}

$test = $_SESSION['id'];
$test1 = $_SESSION['pass'];

if($flg == "t"){


echo <<<EOM
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">

<title>
</title>
</head>
<body>
◎$test<br />$test1
<br><br><br><a href="session.php">test</a><br><br>
<a href="session.php?t=test">test2</a>
</body>
</html>
EOM;

}else{

echo <<<EOM
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">

<title>
</title>
</head>
<body>
◎$test<br />$test1
<a href="session.php">test</a><br>
<a href="session.php?t=test">test2</a>
</body>
</html>
EOM;
}
?>

引数で表示させる内容を異なるようにするPHPファイルです。

仮に一回目にIDを「てすと」、パスワードを「ttt」でログインした場合、session.php・session.php?t=testに表示されるのは、
「◎てすと
ttt」
です。

そして、これをいったんログアウトして、今度は
ID「二回目」、パスワード「two」でログインすると、
session.phpには
「◎二回目
two
」と表示されますが、
session.php?t=test
に飛んだ場合、
一回目のIDとパスワード、つまり
「◎てすと
ttt」
が表示されてしまいます。

ブラウザをリロードすると
「◎二回目
two

と表示されます。

これは、前のセッションがまだ残ってしまっているということなのでしょうか。

対処法が分からず困っています。

A 回答 (1件)

本質問で肝心なのは、ログイン処理と、ログアウト処理になると思いますが、それらが記載されておりません。



どのような処理を行いましたか?
    • good
    • 0
この回答へのお礼

すみません、自己解決いたしました。
回答いただき、ありがとうございました。

お礼日時:2009/09/04 15:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!