【PHPで作る】初めての携帯サイト構築
第5回 携帯サイトでセッションを取り扱う
携帯サイトでのセッション管理
今回は携帯で会員サイトを作る時のベースとなるログイン状態の管理方法を見ていきたいと思います。セッションとはユーザーがサーバーに接続し,サイトを巡回している間アクセスしてきているのが同一利用者であることを認識するための仕組みです。この仕組みを利用することで,一度会員ログインが完了した利用者がサイトにアクセス中,継続的に自分だけの情報を見るといったことが実現可能になります。
セッションを維持するためには,セッションIDを利用します。通常セッション管理はアクセスしてきた端末に対してセッションIDを割り振り,ブラウザに対して割り振られたセッションIDを渡します。サイト側はそのセッションIDに紐付いた情報を保持しておき,アクセスしてきたブラウザのセッションIDを元に情報を引き出すといった仕組みになっています。
ブラウザがセッション管理を行う方法には大きく2種類あります。
- Cookieに保存する
- URLに付与する
Cookieを利用する方法は,ブラウザの一時的な情報保存領域にセッションIDを保持して,ユーザーには見えない状態でセッションIDのやりとりを行う方法です。URLに付与する方法は,ユーザーに見えるURLのパラメータとしてセッションIDをやり取りする方法になります。
セッションIDは視認できてしまうとセキュリティ上問題があるため,PCのWeb上では一般的にCookieを利用してセッションを管理しています。そのため携帯サイトでもCookieを使ったセッション管理を行いたいところですが,各キャリアの対応状況は次のようになっております。
各キャリアのCookieの対応状況
| キャリア | Cookie対応状況 |
|---|---|
| docomo | Cookieが利用できない |
| au | Cookie利用可能 |
| SoftBank | C型,P型はCookieが利用できない |
表からわかるようにdocomoが一切Cookieに対応していないこともあり,携帯ではCookieを前提としたセッション管理ができない状態になっています。そのため携帯では基本的にURLに付与するセッションIDで管理していく方法を利用する形になります。
セッションIDを付与する
セッションIDをURLに付与する方法は,phpの設定を触るだけで簡単に切り替えることができます。設定方法は次の通りです。
php.iniの設定
ini_set('session.use_cookies', 0);
ini_set('session.use_only_cookies', 0);
ini_set('session.use_trans_sid', 1);
「session.use_cookies」はセッションIDの管理にCookieを利用するかどうかの設定です。ここではCookieを利用しないので「0」を設定します。「session.use_only_cookies」はセッションIDの保存をCookieのみで行うかどうかの設定になります。Cookieを利用せず管理したいので「0」を設定します。「session.use_trans_sid」はURLに自動的にセッションIDを埋め込むかどうかの設定になります。利用するので「1」に設定します。
これでCookieを使わずにURLにセッションIDを付与する状態になりました。ただし先ほど述べたとおり,URLにセッションIDが付与されている状態はセキュリティ上問題があります。ほかのユーザーになりすまされる可能性もあるので,利用するケースをdocomoだけにするなど必要最小限にとどめ,セキュリティに対して十分に理解して利用する必要があります。
次項ではセッションはもちろん「かんたんログイン」の仕組みにも利用することができる「個体識別情報」について見ていきましょう。
【PHPで作る】初めての携帯サイト構築
- 第6回 携帯サイトのテストをする
- 第5回 携帯サイトでセッションを取り扱う
- 第4回 絵文字を取り扱う
- 第3回 携帯サイトの文字コードに気をつける
- 第2回 携帯キャリアと端末を判別する
- 第1回 PCサイトと携帯サイトの違いを知る


