• 締切済み

PHPセッションIDの変更

お世話になります。 phpでのセッションIDの変更の処理(セッションの中身も初期化する)がうまくいかず困っております。 以下のようなコードでセッションの管理をしているのですが。。 現象としては、最初に発行したセッションIDを保持したクッキーが削除されていない。 下記のコードの中の2度目にsession_start()を実行している 部分の後のセッションIDを見ると 新しいIDになっているがブラウザのクッキーのセッションIDは 古いIDのまま。 という現状です。 どなたか、原因が判る方、ご教示頂ければ幸いです。 宜しくお願いします。 ------------------------------ session_start(); //セッションクッキーを破棄・ if (isset($_COOKIE[session_name()])) {   setcookie(session_name(), '',time()-42000, '/'); } //セッションを完全に破棄・ if('' != ($myid = session_id())){   $_SESSION = array(); //セッション変数を初期化・   session_destroy(); } session_id(md5(uniqid(rand(), true))); //新しいセッションID session_start(); $_SESSION['userid'] = 'hoge'; -------------------------------------------------

みんなの回答

  • gmataw
  • ベストアンサー率50% (12/24)
回答No.1

session_regenerate_id() という関数がありますよ。

参考URL:
http://jp2.php.net/manual/ja/function.session-regenerate-id.php
kmayo
質問者

お礼

ご返信遅れてすいません。 session_regenerate_id() は存じ上げていましたが、 セッションIDをハッシュ化させたかったので使いませんでした。 結論から言うと、クッキーの発行、削除の方法を修正することで 解決しました。発行する場所と削除するプログラムが 違う階層のフォルダだった為、うまく動作していなかったことが 分かりました。同一フォルダに変更したところ解決しました。 ご協力ありがとうございました。

関連するQ&A