PHPのテストサイトでセッションが使えない

本番サイトではセッションが使えるのに、テストサイトではセッションが使えない。

何故だろう。

と思って軽くハマったので残しておく。

 

本番サイトは https 、テストサイトは http。

ここがポイント。

 

 

以前、本番のセッション情報をよりセキュアにするために、

session.cookie_secure を ON にしていた。忘れてた。

https://www.php.net/manual/ja/session.configuration.php#ini.session.cookie-secure

 

だから、http通信のテストサイトではセッションが使えない状態だった。

サーバ側でセッションを保持していないから。ただ、同一ファイル内では $_SESSIONが使えた。

 

対策としては、テストサイトにだけPHPファイルに、

ini_set( 'session.cookie_secure', '0' );

の設定を入れた。

結果、セッションが使えるようになった。

 

ググっても、同じ事例が出てこなかったので、残しておきます。

 

 

参考 セッションに関連するINI 設定をセキュアにする

https://www.php.net/manual/ja/session.security.ini.php