• ベストアンサー

Cookieの値の取得

お世話になっています。 Cookieの値の取得について疑問がありますので、どなたか教えていただけないでしょうか? ------------------------------------------------------- /test/test1.php の中に <? setcookie ("test" , "hogehoge" ,time() + 86400 * 30); ?> ------------------------------------------------------- /test/test2.php の中に <? echo $HTTP_COOKIE_VARS[test]; ?> ------------------------------------------------------- /test2/test3.php の中に <? echo $HTTP_COOKIE_VARS[test]; ?> ------------------------------------------------------- というファイルを作成しました。(test3.phpのみ階層が違います) まず始めにtest.phpを表示させて、Cookieの情報を保存させます。 次にtest2.phpを表示させると、Cookieの情報を取得することが できますが、test3.phpを表示させると、Cookieの情報を取得すること ができません。これは、なぜなのでしょうか?また、取得する方法 はあるのでしょうか(無いわけは無いと思いますが・・・)? 以上です よろしく、お願い致します。 teraum

質問者が選んだベストアンサー

  • ベストアンサー
  • 3rd
  • ベストアンサー率30% (7/23)
回答No.2

#1 の方が問題なく表示される状況が私には不思議なのですが。 これは、cookie の Path の設定に問題があると思われます。 上記では、Path の指定を省略しているため、 test.php が存在する Path 以下に有効な Cookie が 設定されていることになります。 #Path に "/test/" を指定したのと同じ状況 なので、/test2/ 以下にある test3.php に Cookie 情報が 取得できないのは、あたりまえとなります。 なので、test.php の記述を、 setcookie ("test" , "hogehoge" ,time() + 86400 * 30, "/"); とすると、test3.php でも取得できるようになります。 ただ、Cookie の Path の設定は慎重に行うべきだと思います。

teraum
質問者

お礼

お世話になります teraumです。 Pathの設定は、省略しても、問題なく動くと書いてあり それを鵜呑みにしたまま設定をしてました。 クッキーを有効にさせるパスを指定するんですね。 ご親切に有難うございました。 以上です teraum

その他の回答 (1)

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.1

上記と全く同じディレクトリ構成、同じファイルで試してみました。 私の環境では問題なく表示されます。 何か他の問題点はないですか?

teraum
質問者

補足

お世話になっています。 わざわざテストしていただき、感謝しています。 ブラウザがおかしいのかと思い(この状況から、そんなことは無いと思ってましたが・・・)他のマシンでテストをしたのですが、結果は同じで、/test2/test3.phpのみ、うまく行きませんでした。 ちなみに、 環境は、 red hat linux7.2 php4.06(都合によりアップデートできません) です。 php.iniは、セキュリティ上register_globals = offに 設定しています。 試しに、register_globals = onにしてアパッチをrestartしても 結果は同じ・・・ キャッシュを消しても結果は同じ・・・ kusukusuさんも、似たような環境でしょうか? もう少し、考えてみたいと思います。

関連するQ&A