忍者ブログ

きままなひとりごと

引っ越しました。新しいブログはnmtysh.logです。
2015/12/27

ブログを引っ越しました

ブログの引っ越しを行いました。
別サービスへの移行になるため過去記事をすべて再確認しつつ、記事の削除やリンクの差し替えなどを行っています。
現在では役に立たなくなっているtipsなどは削除していますのでご了承ください。

新しいブログはこちらです。
nmtysh.log

今後は新しいブログのほうで更新していきますのでそちらをご覧ください。
2017/05/24 (Wed) 20:40

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2013/06/26 (Wed) 23:25

CakePHP と Content-Length と imodeブラウザ(未解決)

携帯電話(いわゆるFP:フィーチャーフォン)向けの、Webサイトを構築中な訳だが、Cookieが使えない下位端末への対応に悪戦苦闘中。

Cookieが使えない場合はセッション情報を引き継ぐ手段としてURLにセッションIDを付与するわけだが、このセッションIDの付与処理で悩まされている。

session.use_trans_sid を 1 にするとセッションIDの付加が行われるが、このタイミングが問題。
どうも CakePHP の処理が終わった後に変換しているようで、 CakePHP で Content-Length ヘッダーが設定されたあとにセッションIDの付加が行われている。
どういう事かというと、IDがURLに付加されるとその分コンテンツのデータ量が増えるわけだが、Content-Lengthは元のまま。つまり実際よりも小さい値になってしまう。

そのため、Content-Lengthを見て律儀に処理してしまうブラウザだと(それが悪いわけではないが)、コンテンツが最後まで表示されないという問題が起こってしまう。

セッションIDが付与されないようにすればこの問題は起こらないわけだが、そうすると今度はセッション情報が引き継がれなくなってしまう。
あるいは「接続が中断されました」というエラーメッセージが表示される。

さらにややこしいのが構築しているサイトの全ページで、ページの表示ができない問題が起きないところ。
一部のページでのみ起こっている。共通なレイアウトファイルを使っているのだからどのページでも起こって良さそうなんだが…

ままならぬ。

2013/06/30 追記:
解決方法を見つけたので別記事に書きました!
session.use_trans_sid を使わずに CakePHP 2.3 でURLにセッションIDを付与する方法

拍手[0回]

PR