2007/07/13

sessionの役目

 データ層にアクセスするのは頻繁でない事が好まれる。
データの破損や、データの整合性を高めるためには必要な気配り。

PHPではsessionが簡単に利用できるのは知っていると思うが、
session_start();
さえ言ってしまえば、配列だろうがなんだろうが$_SESSIONに格納することができる。

こいつはphp.iniや.htaccess(api版)により、sessionの有効範囲を指定していない場合、
画面を閉じるまでの間有効となる。

そこで、通販の場合の注文予定商品や、ページをまたぐテスト問題の回答を行う際に、
$_SESSION["cart"][$itemnumber] = $amount;
と、商品番号と数を保持したり、
$_SESSION["qustion"][$question_number] = $answer;
と、問題番号と回答番号を保持したりしておき、

注文確定時や、回答採点時に、

foreach($_SESSION["question"] as $key => $value){
$insert_query = "insert into answer_log values($key,$value,,,,,); ";
}
のように、問題番号に対する回答を登録したりする。

その他にも、ページ単位のアクセスログなんかも、度々記録されるとたまったもんじゃないが、
画面を閉じたというアクションを取得する方法をしらんので、その場合は$_SESSIONは活用できない。

とりあえずfileに格納しておいて、cronなどのサーバサイド自動実行処理を利用し、定期的に収集するのがオーソドックスなやりかたじゃないだろうか。

まぁ、便利やわ。
リンクの引数が多すぎる場合とかも$_SESSION["post"]とかで持っといても良いしね。

0 件のコメント:

コメントを投稿