[PHP-users 26747] セッションの変更

木村 幸弘 kimura @ kmtec.co.jp
2005年 9月 3日 (土) 15:18:22 JST


下記のようなプログラムを
index.phpからroguin.phpに移る際に、セッションの作成。
roguin.phpでセッションの中身を表示
といった流れで組んだのですが、
roguin.phpに移って、ブラウザを閉じてから、再度index.phpにアクセスして
処理をすれば正常にroguin.phpで値が表示されるのですが、
roguin.phpからブラウザの戻るでindex.phpに移った場合、
前の値が残っているらしく、新しく入力した値が
取得できません。
これは回避する方法があるのでしょうか。


index.php
<?php
if($_GET['ok'] == ''){
echo '<HTML>';
echo '<HEAD>';
echo '<TITLE>ログイン</TITLE>';
echo '</HEAD>';
echo '<BODY>';
echo '<form method="post" action="index.php?ok=0"
enctype="multipart/form-data"> ';
echo '<table border=4 width=250 align=center>';
echo '<tr align=center>';
echo '<td>ユーザーID:</td>';
echo '<td><input type="text" maxlength=20 name="userid"></td>';
echo '</tr>';
echo '<tr align=center>';
echo '<td>パスワード:</td>';
echo '<td><input type="password" size=15 maxlength=20
name="password"></td>';
echo '</tr>';
echo '<tr align=center>';
echo '<td colspan=2>';
echo '<input type="submit" value="アクセス"> </td>';
echo '</tr></table></form> ';
} else {
include("classa.inc");
$obj1 = new POGET_class ( );

$obj1 -> userid = $_POST['userid'];
$obj1 -> password = $_POST['password'];
$obj1 -> ok = $_GET['ok'];


session_start();

//testオブジェクトをセッションに格納
$_SESSION['obj1'] = serialize($obj1);
header("Location: roguin.php");
}
?>
</body>
</html>


roguin.php
<?php
include("classa.inc");
$obj1 = new POGET_class ( );
session_start();
  //testオブジェクトをセッションから取り出す
  $obj1 = unserialize($_SESSION['obj1']);

//CLASSデータをローカル関数で使えるように置き換え
$userid = $obj1 -> userid;
$password = $obj1 -> password;
$ok = $obj1 -> ok;

echo $userid;
?>



PHP-users メーリングリストの案内