セッション情報が上書きされる
created: 2009-03-02 18:33 | modified: 2009-03-04 00:52 | reply: 4
[4264] セッション情報が上書きされる - pyon - 2009-03-02 18:33- [4265] Re.セッション情報が上書きされる - ゆうじ - 2009-03-03 00:47
- [4266] Re.セッション情報が上書きされる - pyon - 2009-03-03 10:40
- [4267] Re.セッション情報が上書きされる - ゆうじ - 2009-03-03 19:47
- [4268] セッションの上書きを再現出来るパターン - ゆうじ - 2009-03-04 00:52
[4266] Re.セッション情報が上書きされる
user: pyon | created: 2009-03-03 10:40
説明不足で申し訳ありません。
実は、ローカルの環境と開発環境がありまして、ローカル環境(WindowsXP+Apache2.2.8+PHP5.2.8+MySQL5.1.3)では問題なく動きますが、開発環境(CentOS5.2+Apache2.2.8+PHP5.2.6+MySQL5.1.3)ではセッション情報が上書きされてしまいます。
セッションハンドラ関数の「write」のタイミングで書き込んでいる情報をファイルに落としてみたんですが、スクリプト終了時(もしくはリダイレクト後のスクリプト開始時かセッション開始時?)に、セッション情報が再度書き込まれています。
これはローカル環境でも同様ですが、ローカルの場合は正しいセッション情報が書き込まれるのに対し、開発環境では空で書き込まれているようです。
また、開発はZendFrameworkを使っていますが、ZendFrameworkを使わないでセッション管理した場合も同じ動きをしています。
リダイレクト時、スクリプト終了時に「session_write_close」は行っています。
確実に再現するコードがあるわけではないので環境の問題かとは思うんですが、既知のPHPのバグ(?)のようなものがあるかと思い質問させていただきました。
実際のコードは、コメントいただいているコードとほぼ同様な処理です。
セッションをDBに保存せずにファイルシステムを使う場合は現象が発生しないので、そのあたりが関係しているかと思うんですが・・・
実は、ローカルの環境と開発環境がありまして、ローカル環境(WindowsXP+Apache2.2.8+PHP5.2.8+MySQL5.1.3)では問題なく動きますが、開発環境(CentOS5.2+Apache2.2.8+PHP5.2.6+MySQL5.1.3)ではセッション情報が上書きされてしまいます。
セッションハンドラ関数の「write」のタイミングで書き込んでいる情報をファイルに落としてみたんですが、スクリプト終了時(もしくはリダイレクト後のスクリプト開始時かセッション開始時?)に、セッション情報が再度書き込まれています。
これはローカル環境でも同様ですが、ローカルの場合は正しいセッション情報が書き込まれるのに対し、開発環境では空で書き込まれているようです。
また、開発はZendFrameworkを使っていますが、ZendFrameworkを使わないでセッション管理した場合も同じ動きをしています。
リダイレクト時、スクリプト終了時に「session_write_close」は行っています。
確実に再現するコードがあるわけではないので環境の問題かとは思うんですが、既知のPHPのバグ(?)のようなものがあるかと思い質問させていただきました。
実際のコードは、コメントいただいているコードとほぼ同様な処理です。
セッションをDBに保存せずにファイルシステムを使う場合は現象が発生しないので、そのあたりが関係しているかと思うんですが・・・
