WEBの勉強ノート
Loading

PHP とセッションのまとめ

2009 年 5 月 27 日 カテゴリー: php

PHP を勉強中です。さっそくセッションでつまっています。最終的に、ログイン認証を行って、ユーザー固有のページを表示することです。今回は、セッション動作に関してまとめてみました。

セッションとは

以下の説明が一番直観的でわかりやすかったです。

セッションとは、ページ間で変数の内容を維持するための仕組み。
http://www.phppro.jp/school/phpschool/vol8/1

セッションの仕組み

ページ間で変数の内容を維持するためには、クライアントからのアクセスをサーバーが識別する必要があります。

PHP でのセッションの管理では、セッション ID をクッキーとしてクライアントに持たせ、2回目以降のアクセスの際、http ヘッダーに含まれるセッション ID で、サーバーに保存されたセッションと、そこに保存されたセッション変数を使える状態に復帰します。

サーバー側のセッションの保存場所

セッションの保存場所は、php.ini ファイルでの設定によって変わります。今回の環境(CenOS5.3, Apache2.2, PHP5.1.6)では以下の場所になっていました。

[root@localhost /]# cat /etc/php.ini
(すごく省略)
session.save_path = "/var/lib/php/session" 

セッションは、こんな感じで保存されます。

[root@localhost session]# ls -a
. .. sess_h30n26sijgt513rlagqvuvh065 

クライアント側のセッションの保存場所

クライアント側では、セッションはクッキーとして保存されます。また、クッキーの一般的な話として、有効期限をつけないと、クッキーはメモリ上に保存され、ブラウザの終了時に一緒に消去されるようです。有効期限を設定すると、ユーザープロファイル内の Cookie フォルダに保存されます。

やってみたこと

とにかくセッションの仕組みと実際の動作を知りたかったので、実際にやってみました。やってみたのは、PHP BOOK : セッション変数の書き込みと読み込み に書かれている、アクセス回数をカウントするスクリプトです。

IE にインストールした ieHTTPHeaders で HTTP ヘッダーを監視しつつ、サーバー側のセッションファイルの状態と中身を確認してみました。 その結果がしたの絵。

image

image 

やってみて、セッションID、セッション変数、クッキーの繋がりがわかってきました。次はこの仕組みを、どうやってログイン認証に利用していくかというところです。 


参考にしたサイト

バシャログ : 10日で覚えるPHPのキソ 第 10 回 セッション(SESSION)

→すごくわかりやすかったです。

PHP BOOK : セッション管理

マニュアル

PHPプロ!Saity先生のPHP基礎講座 : 第8回 セッションの仕組みを知ろう (その1)

コメントをどうぞ