[PHP-users 10241] Re: session格納法について(サマリ)

S.Okazaki php-users@php.gr.jp
Thu, 19 Sep 2002 10:42:39 +0900


おはようございます、岡崎です。
自己レスです。

> ページが "mode" によってが複数に別れたスクリプトがあります。
> (snip)
> 何がしたいかと言えば、ページ毎に分けたデータを
> $ses1 , $ses2 , $ses3 , …のようにセッションに登録したいのです。
> (snip)
> ときっちりと別れて登録されていますが、print_r($ses1)で見てみると
> 
> Array ( 
>          [0] => Array ( [0] => 2002 [1] => 9 [2] => 18 …) //ses1
>          [1] => Array( [0] => 8 [1] => 202 [2] => 5 …)    //ses2
> )
> 
> と、一つの配列として表示されてしまいます。

これに関しては、コードにミスがありました。
しかし、「これは仕様では!?」と思いこんでいたため、
ミスを見つけることが出来ませんでしたが、お陰様で、
仕様ではないとわかり、くまなく見たところ発見できました。
ありがとうございました。

> また、session_unregister("ses1");
> とやれば、全てのセッションデータが削除されます。

これに関しては、凄く愚かな理由でした(^^;

case "2":
    if(isset($bt)) {
        session_unregister("ses2");
        header("Location: $_SERVER[PHP_SELF]?mode=2");
    }

    $ses1=array($_POST[data1],$_POST[data2],…);
    session_register("ses1");
           :
           :
    print<<<EOF
<form action="$_SERVER[PHP_SELF]?mode=2" method=post>
  <input type=submit name="bt" value="delete session">
</form>

EOF;

break;

と書いていたため、セッションを消した後に、「空の」POSTされた
データを再び、セッションに書き込んでいました。
その為に、全てのセッションが消されたように見えていただけでした。
お恥ずかしいことですが、ずっと気がつきませんでした(^^;

どうもありがとうございました。

/_/_/_/_/_/_/_/_/_/_/_/_/_/
Japan Human Base 
Sotaro Okazaki
Email : okazaki@jp-hb.com
/_/_/_/_/_/_/_/_/_/_/_/_/_/