dポイントプレゼントキャンペーン実施中!

お世話になります。
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';
-------------------------------------------------

A 回答 (1件)

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



参考URL:http://jp2.php.net/manual/ja/function.session-re …
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/06/07 22:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!