目的に応じて適材適所で使うPHPライブラリ(11)
WINGSプロジェクト 片渕 彼富 [著] 山田 祥寛 [監修] 2010/10/01 14:00

サンプルファイル 12.43 KB
1 2 3 4 5 6 →

はじめに

 携帯電話ブラウザを使ってWebサイト上で認証する場合、通常は携帯電話端末に割り当てられている一意なID(端末ID、後述)を取得して認証情報として利用します。

 携帯電話向けブラウザの多くはまだクッキーに対応していませんので、認証ページを通過した以降の処理は

  1. 画面ごとに毎回端末IDを取得してDBと照合するなどして認証の確認を行う
  2. 認証されたという情報をセッションに保存してセッションを参照することで認証の確認を行う

 上記2通りの方法に分類されると考えられます。

 1)の方法だと毎回認証の処理が呼び出されサーバーへの負荷も大きくなりがちなので2)の方法を用いる場合が多いです。

 本記事ではセッション管理ライブラリHTTP_Session2を用いて携帯電話からのユーザー認証、会員制ページの作成、セッション管理、デバッグの例についてサンプルを交えながら説明します。

 端末IDはキャリアによって呼び名が違います。NTTドコモでは「iモードID」、auでは「EZ番号」、ソフトバンクモバイルでは「端末シリアル番号」と呼ばれておりますが、本記事内では便宜上「端末ID」とします。

今回使用するライブラリ
ライブラリ名概要
HTTP_Session2セッションを扱うライブラリ
Net_UserAgent_Mobile携帯電話機種判別、プロパティ取得を行うライブラリ

 上記ライブラリを利用して各機能の実装を説明します。

対象読者

 PHPでのWebアプリケーション開発について基本的なことを理解している方を対象とします。

サンプルアプリケーションの概要

 本記事で作成するサンプルは、以下の表のとおりです。

サンプルファイル構成
ファイル名概要
Session.class.phpセッション管理を行うクラス
config.phpDB接続情報を記述しておくPHP
insert.phpサンプルで使用するユーサーデータを作成するPHP
login.phpログイン、かんたんログインを行う画面を出力するPHP
index.phpログイン後の画面を表示するPHP
image.phpログイン / 未ログインの状態を判断して画像を表示するPHP
logout.phpログアウトを行うPHP
profile.phpユーザー情報を変更するPHP
output_session.phpデバッグ用のPHP
option.cnfMySQL接続オプション定義ファイル

 作成するサンプルの概要図は以下のようになります。

今回の作成するサンプル概要図
今回の作成するサンプル概要図

動作確認環境

  • CentOS 5.3
  • Httpd 2.2.14
  • PHP 5.3.2
  • MySQL 5.1.50

事前準備

 ライブラリのインストールは以下のコマンドで行います。「--alldeps」オプションで依存する他のパッケージも同時にインストールします。

リスト1 ライブラリインストール
# pear install --alldeps HTTP_Session2
# pear install --alldeps Net_UserAgent_Mobile

プロフィール
WINGSプロジェクト 片渕 彼富 カタフチ カノトミ

WINGSプロジェクトについて>
有限会社 WINGSプロジェクトが運営する、テクニカル執筆プロジェクト(代表 山田祥寛)。海外記事の翻訳から、主にWeb開発分野の書籍・
雑誌/Web記事の執筆、講演等を幅広く手がける。2008年8月時点での登録メンバは25名で、現在も一緒に執筆をできる有志を募集中。執筆に興味のある方は、どしどし応募頂きたい。著書多数


プロフィール
山田 祥寛 ヤマダ ヨシヒロ

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。
主な著書に「入門シリーズ(サーバサイドAjax/XMLDB/PEAR/Smarty)」「独習シリーズ(ASP.NET/PHP)」「10日でおぼえる入門教室シリーズ(ASP.NET/PHP/Jakarta/JSP&サーブレット/XML)」「Pocket詳解辞典シリーズ(ASP.NET/PHP/Perl&CGI)」「今日からつかえるシリーズ(PHP/JSP&サーブレット/XML/ASP)」「書き込み式 SQLのドリル」他、著書多数


注目の求人情報
システムエンジニア/オンラインゲーム会社
◇こんな会社です: ・オンラインゲームの企画開発、運営を主な事業としています。自社開発コンテンツ...
システムエンジニア/人材紹介WEBポータル
・UNIX、Linuxベースの開発経験 ・PHP、JAVA、PostgreSQL、MySQLなどの経験2年以上 ・オブジェクト指...
コンサルタント/コンサルティング企業
エクセレントカンパニーを対象とし、全体最適の視点を持ったITのグランド・デザインから構築・運用ま...

(最新日付順)
名前(ゲストの方もコメントをどうぞ):*
アイコン:
なし

内容(テキストのみ1200文字まで):*

投稿規定に同意して

スポンサーサイト

この記事のトラックバックURL: