セッション管理

 PHP4から、とっても便利な「セッション管理」なるものがサポートされるようになっています。僕もここに来てようやく実際に使えるようになったのですが、今まではご多分に漏れずクッキー機能ばかり使って来ました。いやー、もっと早く勉強しとけば良かった。本当便利です、この「セッション管理」は!

何に使うの?

 機能的にはクッキー機能がもっと便利になったものだと思ってくれていいと思います。そして、クッキー機能にはあった制限事項(クッキーの記憶数が20個まで、とか…)が取っ払われて、ショッピング・カートなんかで使うと非常に便利です。僕もさっそくKOMONETで無料配布しているショッピングカート・スクリプトを、このセッションID使用版に改造しました。

セッション管理の仕組みは?

 セッションの仕組みは、簡単に言うとホームページを訪れた各ユーザーに、固有のIDをクッキー、又はURLへの埋め込みで保存させて、このセッションIDを各ページ間で共有する事によって、同じユーザーからのアクセスであるかどうかを判断させると言ったものです。

 セッションIDには、「1d8f1a75a82a5ac6cbdbde57e262990d」と言ったような文字列が割り当てられます。このIDはランダムに生成されたものですので、簡単には推測不可能です。そして、このセッションIDが引き継がれて行く訳ですが、引き継ぐためにはクッキーを利用するか、URLに埋め込むかのどちらかの方法を取ります。クッキーの場合、

 sess_1d8f1a75a82a5ac6cbdbde57e262990d

のようなファイル名で、標準ではサーバ上の「tmp」ディレクトリに保存されます。「tmp」ディレクトリとは、Windowsでの「Temp」に当たり、いわゆる一時フォルダの事です。

利用方法

セッションの開始

 セッションは、session_start関数を実行する事で有効になりますから、セッションを有効にしたいページには必ず「session_start();」を記述しなくてはいけません。

セッション変数の登録

 次にsession_register関数を使ってセッション変数を登録します。実際には以下のようなコードになります。

session_start ( );

if ( !session_is_registered("sample") {

  session_register("sample");

  $sample = 値;

}else{

  $sample = 値;

}

 もし、スーパーグローバル変数$_SESSION」を使用する場合は、session_register関数、session_is_registered関数、session_unregister関数など、セッション変数の登録に関連する関数は使わないようにしなくては行けませんので、注意が必要です。

 他にも、セッション名を設定するsession_name関数や、セッションIDを設定するsession_id関数などがありますが、サーバのデフォルトの状態で使う分には関係ありませんので、ここでは説明を割愛させて頂きます。

使用例

 実際の使用例としては、KOMONETで無料配布しているショッピングカート・スクリプトの[タイプ3]がそれに当たりますので、又ソースなどをご参照下さい。

環境変数と携帯サイト 前へ

HOME

次へ 文字コードの問題