最初どこにも情報が無くて唖然としてたけど、ようやく有力っぽい記事にめぐり会えた!
Paradigm Shift Design:IE8でセッションがブツブツ切れる現象について
session_start()で1回、明示的にsetcookieを呼び出して1回、計2回クッキーが送信されることになります。firebugで見てみると、
Set-Cookie
TEST_SID=9124aae2f8b09c6db00c887fa2173a1f; path=/
TEST_SID=9124aae2f8b09c6db00c887fa2173a1f; expires=Fri, 28-Aug-2009 08:53:45 GMT; path=/ってな感じです。
実はこちらはC@ApacheModuleで実装しているんだが、原因はほとんど同じっぽい。
apr_table_set(r->headers_out, 'Set-Cookie', Cookie_Value );
apr_table_set(r->err_headers_out, 'Set-Cookie', Cookie_Value );
何故こんなことをしているかというと、Apache2.0系のHeaders_outは何故か正常なステータスコードの時にしか送信しないのだ。
つまり、headers_outでCookieをセットしたつもりでその先の処理に渡した結果、
特に302 Found, 304 not modifiedのときにCookieがセットされない結果になってしまう。
こいつはどうやって回避したもんかと、両方仕込んだら上手く動いたので両方仕込んでおいたのだが...まさかこういう結果が待ってるとは思わなかった...(-_-;;
こちらの実装では全く同じCookieを2回送っているが、それでも同じ現象が起こってるので、Set-Cookieを2回送ること自体がNGのような感じなので、ひとまずerr_headers_outを切って様子見。。
...あ!IE8を窓から投げ捨てるのが一番い(ry
コメントする