[PHP-users 10199] session格納法について
S.Okazaki
php-users@php.gr.jp
Wed, 18 Sep 2002 15:14:03 +0900
こんにちは、岡崎です。
subjectの付け方が難しかったのですが、次のような問題
にぶつかりました。
ページが "mode" によってが複数に別れたスクリプトがあります。
----a.php-----
case "1":
case "2":
case "3":
:
それぞれのmodeからデータをPOSTし、次ページで配列で格納してから
sessionに登録しています。
case "1":
<form action=\"$_SERVER[PHP_SELF]?mode=2\" method=post>
<input type=text name=\"data1\">
<input type=text name=\"data2\">
:
</form>
case "2":
$ses1=array($_POST[data1],$_POST[data2],・・・);
session_register("ses1");
case "3":
$ses2=array($_POST[data10],$_POST[data11]・・・);
session_register("ses2");
と言った感じです。
何がしたいかと言えば、ページ毎に分けたデータを
$ses1 , $ses2 , $ses3 , …のようにセッションに登録したいのです。
登録が終了し、/tmp/sess_*****(セッションファイル)を見てみると
ses1|a:7:{
i:0;s:4:"2002";
i:1;s:1:"9";
i:2;s:2:"18";
:
}
ses2|a:19:{
i:0;s:1:"8";
i:1;s:3:"202";
i:2;s:8:"5";
:
}
ときっちりと別れて登録されていますが、print_r($ses1)で見てみると
Array (
[0] => Array ( [0] => 2002 [1] => 9 [2] => 18 …) //ses1
[1] => Array( [0] => 8 [1] => 202 [2] => 5 …) //ses2
)
と、一つの配列として表示されてしまいます。
ses2以下にも同様に全く同じものが登録されています。
また、session_unregister("ses1");
とやれば、全てのセッションデータが削除されます。
どうやら、ses1 = ses2 = … = Array($ses1 , $ses2 , …)
と見なされているようです。
これは正しい仕様なのでしょうか?
よろしくお願い致します。
/_/_/_/_/_/_/_/_/_/_/_/_/_/
Japan Human Base
Sotaro Okazaki
Email : okazaki@jp-hb.com
/_/_/_/_/_/_/_/_/_/_/_/_/_/