この記事について
| 環境 | PHP、php.ini |
|---|---|
| 目的 | 親ドメインのセッション情報をサブドメインに引き継ぐ |
| 結果 | php.iniにsession.cookie_domain = “.example.com”を書き、サブドメインにも有効なクッキーを作る |
つまずきポイント要約
- クッキーの有効範囲にサブドメインが含まれていないのが原因(IEはOKでもsafari/firefoxでNGになる)
- ドメイン先頭のドット「.」を忘れないように
- 動作確認は必ずクッキーをクリアしてから。ログアウト→再ログインでは不十分
親ドメインのセッション情報が、サブドメインに引き継がれないのは、クッキーの有効範囲にサブドメインが含まれていないため。(IEだとOKなのに、safariやfirefoxだとNGになるものこのケースが当てはまる)
サブドメインにもセッション情報を引き続きたい場合は、一番最初にクッキーを作る段階で「サブドメインにも有効なクッキー」を作る必要がある。
やり方は、クッキーが作られるドメインのphp.iniに次の記述をすればいい。
session.cookie_domain = ".example.com"
この記述があるphp.iniファイルのドメイン下で作られたクッキーは、すべてのサブドメインでも有効になる。ドメイン先頭のドット「.」を忘れないように。
あと、動作確認をするときは、必ずクッキーをクリアしてから行うこと。ログアウト→再ログインとかでは不十分。
