- ベストアンサー
PHPでクッキーを使用して
たとえば http://test.com/index.php?id=a01 でアクセスした場合a01という引数をクッキーに保存し、 その引数を画像ファイル名やインクルードファイル名に使用し、 a01専用のデザイン、要素に変えるということをしています。 わかりにくいかもしれませんが、つまり、 お客さんによってヘッダーやフッターだけはお客さん用に、 変えて共通で使える部分は共通で使っているということです。 そこで、問題なのですが、 http://test.com/index.php?id=a01でアクセスした場合、 以降、どのページ移動しようが、クッキーに保存しているので、 ヘッダーやバナーは引き継がれたままなのですが、 http://www.test.com/index.php?id=a01(ホスト名が付いている) でアクセスするとまた別のクッキーとして新たに登録されていまい、 困っています。どちらからアクセスしてもひとつのクッキーとして 保存したいのですが、何か良い方法はないでしょうか。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
setcookie関数を使用しているのかな?と思うのですが、第5引数に、ドメインを指定してあげるといいんじゃないかな?と思います。 setcookie("id",'a01',expire,'/','.test.com'); こんな感じでしょうか。 #expireはtime()+有効秒数
その他の回答 (1)
- inu2
- ベストアンサー率33% (1229/3720)
PHPに限らず、他の言語でも同じ症状出たと記憶しています それがCOOKIEの仕様(だったはず・・・ちょっと定かではないですが) 関係ない話ですが、クッキーの値をそのまま画像ファイル名やインクルードファイル名にするのはすごく危ないですよ クッキーなんていくらでも改変できますから、意図的にクッキーの値を変更させてアクセスしにいけば、本来ならば直接インクルードさせたくないファイルを読み込み放題になります。 たとえば、簡単なデータや設定値を.dataや.txtで保存させていたと仮定します。読み込みエラーでそのファイル名が表に出てしまいました。その名前を基にクッキーの値を意図的に改変しそファイル名をクッキー名に設定します。あなたのロジックではクッキー名=インクルードファイル ですから、そのtxtファイルをごっそり見られてしまいますよ。
お礼
わざわざご指摘ありがとうございました。 参考にさせていただきます。
お礼
ごかいとうありがとうございます! 試してみます!!!