【PHP】サブドメインに親ドメインのセッション情報を引き継ぐには

この記事について

環境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ファイルのドメイン下で作られたクッキーは、すべてのサブドメインでも有効になる。ドメイン先頭のドット「.」を忘れないように。

あと、動作確認をするときは、必ずクッキーをクリアしてから行うこと。ログアウト→再ログインとかでは不十分。

関連記事

タイトルとURLをコピーしました