[PHP-users 5279] Re: session_register 内での配列について
千秋 元宏
php-users@php.gr.jp
Thu, 7 Feb 2002 12:22:27 +0900
宮原さま、setoさまご回答ありがとうございます。
確かに、 session_register()内で配列を使うのは
想定外の使用法かもしれませんね。
自分の疑問のみを小出しにするのは失礼にあたるかと
思いますので、全体の構想と、なぜ配列を利用したいと
考えたかの経緯をざっとお話します。
モノ自体は、ショッピングカーとつきの通販サイトを
想定しています。
PostgreSQLに商品のデータベースをおき、phpで
商品の検索、表示、ショッピングカートの制御を
しようというものです。かなり省略して書かせていただきますが、
例えばこんな感じです。
商品を検索すると、shouhin_hit.php に飛ぶ
------ shouhin_hit.php -----
〜省略 pg_connect()後、検索にヒットした商品のデータを受け取る
for -- { //ヒットした商品数だけループ
print<<<foo
<table> 〜 //商品の表示と同時に<form
action="">を
<form action="cart.php"> //つけ、選択した商品のsubmit
で商品名や
<input [$hinmei=-- $nedan=--] > // 値段等の情報がcart.phpに渡さ
れる
<input type="submit"></form> //
</table>
foo;
}
------ cart.php ----------
<?php
session_start();
session_register("count"); //カートの中の商品数
for ($i=1;$i <= $count_s;$i++) { //カートの中の商品数分だけ
session_register("hinmei[$i]"); //配列変数でセッション変数を
session_register("nedan[$i]"); //登録する
}
〜省略 カート内の表示等
<form><input type="submit"></form> //購入申し込み
sendmail 等の処理
というシステムを考えたとき、カート内を保持しておくために
・cookie を使う
・postgreSQLに一時的なデータベースを生成する
・session を使う
という方法が考えられると思います。ただ、
cookie だと情報量が限られる
postgreSQL だとuser [nobady あるいは httpd] に
書き込み権を与える事になるので、セキュリティに問題がある
ということで、session_register ( ) で効率よく配列が利用できない
かなあと考えたわけです。
もう少しほかの手段も含め、考えてみます。
なにかご助言がありましたら、よろしくお願いいたします。
千秋@タスク