PHPのセッション変数($_SESSION)が作成されない原因と解決方法
PHPプログラミングをしていて、
print_r($_SESSION);
と書くことにより、print_r関数でセッション変数($_SESSION)の値を全て出力しようとしても、何も出力されなくて悩んでしまうことがあった。
セッション変数が作成されない?
セッション変数が消えた?
ひょっとして、プログラムではなく、PHPの設定に問題があるのでは、などと考え、PHPコンフィグファイル(php.ini)の設定や.htaccessの設定を見直したけれども、原因が分からなかった。
しかし、少し落ち着いてプログラムを見ていると、初歩的なミスがあった。
セッション関数「session_start」を実行するための記述
session_start();
をプログラム冒頭で書いていなかった。
これを書いていないと、セッションが開始されない。
プログラム冒頭に
session_start();
と書くことで、無事にセッション変数($_SESSION)が作成されるようになった。
今後、セッション変数が作成されない?消えた?と思うような時は、
プログラム冒頭に
session_start();
を書いているかどうかを確認しようと思った。