[PHP-users 20145]Re: セッションが復元できない理由を検証する方法

yoshiyuki fukutome tome @ nekomyu.org
2004年 1月 31日 (土) 11:11:33 JST


ふくとめです。

 セッションって、一連のリクエスト中、同一の端末に対して必要
な情報を維持するということができればいいのですよね。

1. 端末(ブラウザ)  --- リクエスト --> HTTP サーバー
2. 端末(ブラウザ)  <-- レスポンス --- HTTP サーバー

 1. のリクエストでは端末を特定できる情報を送り、2. レスポン
スでその端末のために保存しておいた情報を復元し、必要な応答を
する。

 サーバーの行うべき情報を保存しておくという部分は PHP で簡単
に処理できますので、あとは端末を特定する方法を考えればいいのだ
と思います。端末から固有の識別子を送ってもらうには、

 URL 埋め込み。
 FORM 要素中の INPUT(type="hidden") 要素に埋め込む。
 Cookie を使用する。

という方法がありますが、セッション情報を復元できればいいとい
うだけであればどれでもいいはずです。

Vodafone Developers Support Site のウェブ技術資料ダウンロード
ページ
http://www.dp.j-phone.com/dp/tool_dl/web/tech.php

# あら、Vodafone のページは PHP なのね。

に資料が公開されているので、一読してみることをお勧めします。

 Vodafone の端末には C 型, P 型, W 型という端末の種別があるそ
うで Cookie を受け付ける機能を持っているのは、W 型のみというこ
とです。

 エミュレーターの仕様がどうなっているのかよくわからないですが、
全ての端末で機能することを考えれば、URL 埋め込みか hidden で送
る。というのが確実ですね。

 もっとも確実な検証方法は、現行機種全てでテストすることですが、
Vodafone 端末が満たしていなければならないとされる仕様に沿って
アプリケーションを作り、いくつかの端末で検証する。ということで
十分な場合もあるかと思います。

 PHP がどのようにセッション処理を行っているか、端末がどういう
仕様のブラウザを持っているか、PHP とブラウザ間でどのようなメッ
セージがやり取りされるのかを理解すれば、問題があったときの対処
方法も思いつくようになるはずです。

では。

On 01/31, MT wrote:
> 今晩は。MTです。
> 
> 引き続きセッション関連なのですが、docomo,au そして普通のブラウザではセッションでデータの復元ができるようになったのですが、vodafone(J-PHONE/3.0/J-SH08) では普通にやってもセッションが復元できません。
> 
> セッションIDを自分でURLパラメータとしてくっつけたり、hiddenに入れたりするとうまくいく事は確認しました。
> 
> VODAFONEのエミュレータ(919シミュレータ)はステーション未対応程度を想定していると思うのですが、そちらでは特に意識しなくてもセッションを復元できます。
> 
> 手持ちのvodafoneは先ほどの通り、自分でなんとかしなければなりません。
> 
> 今回も一応対処はできているのですが、問題がネットワークなのか、機種の問題なのか、スクリプトの問題なのかわかりません。きちんとした理由と対処方法を理解しておきたいと思うのですが、こういう場合の検証方法はどうすればよいのでしょうか。
> 
> よろしくお願いします。
> -- 
> MT <akc @ mutt.freemail.ne.jp>
> 
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3

-- 
fukutome yoshiyuki
tome @ nekomyu.org


PHP-users メーリングリストの案内