質問: ### PHPでセッションが継続しない? 内容の全く同じファイルを用意し、片方をドキュメントルートディレクトリ(ファイルA)、片方を1階層下のディレクトリ(ファイルB)に設置しました。 テスト用の別サーバーに、ファイルA、ファイルAと同じ階層にあるindex.html、ファイルBの3つのリンクを貼ったHTMLファイルを用意しました。 ケース1 テストサーバーからファイルAへリンク → [ファイルA]リファラをセッションに格納 → ファイルBへリンク => [ファイルB]セッションにリファラなし → ファイルAへリンク → [ファイルA]セッションにリファラあり ケース2 テストサーバーからファイルBへリンク → [ファイルB]リファラをセッションに格納 → ファイルAへリンク → [ファイルA]セッションにリファラあり → もう一度ファイルBへリンク → [ファイルB]セッションにリファラあり ケース3 テストサーバーからindex.htmlへリンク → [index]リファラをセッションに格納 → ファイルAへリンク → [ファイルA]セッションにリファラあり → ファイルBへリンク → [ファイルB]セッションにリファラ無し このような感じです。つまり、直接下層ディレクトリのファイルBへリンクした場合は他のページヘ行ってから戻ってきてもきちんとセッションが取得出来るのですが、ルートディレクトリにあるファイルを経由してからファイルBにアクセスするとセッションが取得出来ないのです。ファイルBからルートディレクトリにあるファイルに戻るとそこではセッションが復活しています。 session_id() で確認したところ全てのページで同じIDが取得出来ました。 全くもって意味が分かりません。 ちょっとでも原因に繋がるようなことがあれば何でも良いので教えて下さい。 なおレンタルサーバーのためサーバーの設定などはいじることが出来ません。htaccessは使用可能です。 どうぞよろしくお願いいたします。
回答: 自己解決しました。 どうやら下層ディレクトリとルートディレクトリでsessionの保存する所が違っていたようです。 session_save_pathで共通のパスを指定したら解決しました。