session_regenerate_id 後でセッションが空になっている
created: 2010-03-12 23:49 | modified: 2010-03-13 17:39 | reply: 4
[4361] session_regenerate_id 後でセッションが空になっている - ただの課長 - 2010-03-12 23:49- [4362] 現象の再現コード - ゆうじ - 2010-03-13 01:39
- [4363] ありがとうございます - ただの課長 - 2010-03-13 13:57
- [4364] リクエストの送信先の件 - ゆうじ - 2010-03-13 16:59
- [4365] なるほど - ただの課長 - 2010-03-13 17:39
[4361] session_regenerate_id 後でセッションが空になっている
user: ただの課長 | created: 2010-03-12 23:49
よろしくお願いいたします。
ログイン処理をテストしています。
login.php でIDとパスワードを入力してもらい、自分自身へPOSTしてIDとパスワードをチェックします。入力が正しければ、header('location:~'); をして、index.php に遷移するようにしています。
location をする前に、session_regenerate_id(true) を実行し、その直後、sha1 を通した session_id を セッション変数に保存しています。
問題は location した index.php で起こります。
index.php の先頭では、sha1(session_id()) と 保存セッション変数 を比較するのですが、何故か 保存セッション変数 が空になっているのです。
さらにその時 session_id() が返す値が regenerate する前の session_id になっているのです。
session_regenerate_id しなければ問題なく動作するのですが、ログイン後に session_regenerate_id をした方が良いというネットの記事を見かけるので入れてみたのですが、入れると上記の状態になり先に進めません。
何が間違っているかご指摘いただけると助かります。
ログイン処理をテストしています。
login.php でIDとパスワードを入力してもらい、自分自身へPOSTしてIDとパスワードをチェックします。入力が正しければ、header('location:~'); をして、index.php に遷移するようにしています。
location をする前に、session_regenerate_id(true) を実行し、その直後、sha1 を通した session_id を セッション変数に保存しています。
問題は location した index.php で起こります。
index.php の先頭では、sha1(session_id()) と 保存セッション変数 を比較するのですが、何故か 保存セッション変数 が空になっているのです。
さらにその時 session_id() が返す値が regenerate する前の session_id になっているのです。
session_regenerate_id しなければ問題なく動作するのですが、ログイン後に session_regenerate_id をした方が良いというネットの記事を見かけるので入れてみたのですが、入れると上記の状態になり先に進めません。
何が間違っているかご指摘いただけると助かります。
