[PHP-users 9575] セッション変数の内容が復活する

Koichi Shimamura php-users@php.gr.jp
Wed, 28 Aug 2002 10:39:14 +0900


こんにちは、島村です。

二つのページを行ったり戻ったりするときに、なくなっているはずのセッション
変数の値がセットされてしまいます。

---------- test1.cgi ----------

#!/usr/local/bin/php
<?php
  session_start();
  print_r($_SESSION);
?>
<html>
<head>
</head>
<body>
  <?php
    if ($_SESSION['C1'] == "ON")
      echo "ON";
    else
      echo "off";
  ?>
</body>
<form method="POST" action="test2.cgi">
  <input type="checkbox" name="C1" value="ON">abc
  <input type="submit" value="送信" name="B1">
  <input type="reset" value="リセット" name="B2">
</form>
</body>
</html>
---------- test1.cgi ----------

---------- test2.cgi ----------
#!/usr/local/bin/php
<?php
  session_start();
  $_SESSION = $_POST;
  print_r($_SESSION);
?>
<html>
<head>
</head>
<body>
  <?php
    if ($_SESSION['C1'] == "ON")
      echo "ON";
    else
      echo "off";
  ?>
  <a href="test1.cgi">back</a>
</body>
</html>
---------- test2.cgi ----------

test1.cgi のチェックボックスを付けたり、消したりしながら二つのページを行
ったり来たりしていると、チェックをはずしたにもかかわらず、行って帰ってく
るとチェックが付いている事になってしまいます。

何がどうなっているのでしょうか?

対策をご存知の方がいらっしゃいましたら、よろしくお願いします。

環境
  レンタルサーバ FreeBSD 4.5
    PHP 4.2.2 cgi 版

です。

島村幸一
http://www.bekkoame.ne.jp/~joe90/