ダウンロード sample.zip (14.7 KB)
セッション更新時のデバッグ
開発時にセッション更新前後のデータを参照したい場合があると思います。
その際には.htaccessに以下の設定を記述することでセッション更新画面の前後でPHPを実行し、セッション内容を参照することができます。
| 設定 | 意味 |
| php_value auto_prepend_file [PHPファイル名] | 対象PHP実行前に呼び出すPHPを指定する |
| php_value auto_append_file [PHPファイル名] | 対象PHP実行後に呼び出すPHPを指定する |
サンプルでは以下のように記述してデバッグしました。
php_value auto_prepend_file output_session.php php_value auto_append_file output_session.php
<hr> <?php require_once 'Session.class.php'; $ss = & new Session(); var_dump ($_SESSION); ?> <hr>
セッション管理クラスを呼び出し、セッションを開始した後にセッション変数「$_SESSION」を参照してセッション内のすべてのキーと値を出力しています。ユーザー名を「鳩山」から「菅」に変更した場合の例が下図になります。

セッション更新の前後で「user_name」の値が変更されていることが分かります。
サンプルではパスワードも同時に変更しておりますが、実際のシステム開発ではパスワード変更前に現在のパスワードでの認証画面を設ける等の対応を行うべきです。
ログイン / 未ログインの状態に応じてコンテンツを出し分ける例
image.php内でセッションよりログイン、未ログインの状態を判断して画像を出し分けています。
// セッションクラス
$ss = & new Session();
// ログインしている場合
if($ss->isLogin()){
header('Content-Type: image/gif');
readfile('images/member.gif');
}
// 未ログインの場合
else{
header('Content-Type: image/gif');
readfile('images/non_member.gif');
}
index.php内でimage.phpをimgタグで呼び出す際にはsession.use_trans_sidパラメータによるセッション引数の自動付加が行われませんのでセッション管理クラスのメソッドを使って以下のように明示的に記述します。
$smarty->assign("SessionName", $ss->getSessionName());
$smarty->assign("SessionId", $ss->getSessionId());
<img src="image.php?{$SessionName}={$SessionId}" />
ログイン、未ログイン時にindex.phpにアクセスすると以下のように画像が表示されます。


セッションを利用するとimage.phpのようにPHP内部でアクセスされた時点での状態を判断してコンテンツを出し分けることができます。
ヘッダを指定することで画像だけでなく、FLASHやデコメール素材等の出力も可能です。
ログアウト
ログアウトする場合はセッション管理クラスのセッション破棄メソッドを使ってセッションを破棄しています。
// セッションクラス $ss = & new Session(); // セッションの破棄 $ss->destroy();
logout.php内の「トップ」リンクからindex.phpに遷移すると、前項のimage.phpにより未ログインの場合の画像が表示され、セッション上のユーザーデータがなくなっていることが分かります。
まとめ
session.use_trans_sidパラメータを利用するとクッキーを利用できない携帯電話ブラウザでもセッションを利用でき、プログラム内で特に意識しなくてもセッションを各画面で利用することができます。
セッション管理ライブラリHTTP_Session2を利用するとPHPのセッション関連の関数を意識して記述することなく、メソッドの呼び出しのみで比較的容易にセッションを利用したシステムを開発できます。
最近増えている携帯向けゲームサイトやコミュニケーションサイトの構築に役に立つのではないでしょうか。
- 修正履歴
-
- 2010/10/11 22:48 PHP内部文字コードと出力文字コードを分ける処理を追加
- 2010/10/07 17:01 パスワード保存時の処理を変更
- 2010/10/06 14:15 かんたんログイン利用時の注意点を追加
- 2010/10/03 22:44 MySQLへの接続の際の文字コード指定、簡単ログインの際に携帯キャリアのIPアドレスか判定する処理を追加
この記事は参考になりましたか?
既に会員の方はを行ってください。
- 目的に応じて適材適所で使うPHPライブラリ連載記事一覧
-
- PHPで作成する携帯会員サイトの基本
- PHPUnitでできる単体テスト
- PHPで行う動画変換(後編)
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 片渕 彼富(カタフチ カノトミ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
