9月 10

この記事をブックマークする : このページをはてなブックマークに追加 このページをLivedoorクリップ! このページをニフティクリップに登録 newsing it! このページをdel.icio.usに登録 このページをBuzzurlにブックマーク

アマノです。

セッションを特殊な方法で保存したい場合に呼び出す
session_set_save_handler() 関数ですが、
この関数を使用している場合にリダイレクトを使用すると
正常にセッションを処理してくれない場合があるようです・・・

通常はリダイレクトした場合、リダイレクト元のページで
open
read
write
close
で処理され次にリダイレクト先のページで同じように処理されますが
どういうわけか
元ページのopen,read
先ページのopen,read
元ページのwrite,close
先ページのwrite,close
という順で処理される事があるようです。

こうなると前ページでのセッション変更が読み込めず
セッションの中身をうまく渡すことができなくなります。

この問題が起きるようであればリダイレクトしている直前に
session_write_close();
を入れると、その時点でwrite,closeを呼び出してくれますので
同じような問題が起きている場合は参考にしてみてください。

この記事をブックマークする : このページをはてなブックマークに追加 このページをLivedoorクリップ! このページをニフティクリップに登録 newsing it! このページをdel.icio.usに登録 このページをBuzzurlにブックマーク

Comments are closed.