私はFacebookのPHP SDKを使用してコメントを残すようにしています。いったん検証されると、私はセッション変数にユーザー情報を格納しますが、最初にsession_regenerate_id()
を呼び出して、ページをリロードします。ページがリロードされると、Facebook SDKの状態変数を含め、古いセッションデータは引き続き使用できますが、追加したセッション変数は使用できません。次のコードの抜粋です:session_regenerate_id()の問題
session_regenerate_id();
$_SESSION[...] = ...;
header('Location: ...');
die();
私が取る場合session_regenerate_id()
その後、すべてが完璧に動作します。私が間違っていることは何ですか?
EDIT
私はすべてのページのロードsession_id()
をログインした場合、私はsession_regenerate_id()
は、新しいIDを生成し、セッションは、私が期待するすべてのものが含まれていることを参照してください。しかし、ページリロードが発生すると、セッションIDは新しいセッション変数ではなく前のセッションIDになります。したがって、新しいセッション変数にアクセスすることはできません。なぜこれが起こるのだろうか?
'<?ph session_start(); session_regenerate_id(); $ new_sessionid = session_id(); echo "新しいセッション:$ new_sessionid
"; print_r($ _ SESSION); ?> –
セッションを使用している場合は、なぜ 'session_regenerate_id();'を実行していますか? – RiggsFolly
@Anant私はそれを行いました。しかし、もう一度テストしている間に、私は、 'session_regenerate_id()'の後に報告されたセッションIDが、古いセッションであるページをリロードしたときと同じではないことに気付きました。だから、私は疑問に思う、なぜセッションIDが実際に変わっていないのだろう? – steveo225