【PHP】SESSION(セッション)の使い方
セッションはユーザーログインなどにも頻繁に使われる値の保持方法です。
PHPでSESSION(セッション)を使う方法を紹介します。
session_start()でセッション開始
session_start();
セッションを使う場合、必ずsession_start()を最初に実行する必要があります。
セッションの場合は、基本的にはサーバー上に値を保持するので、ブラウザ側には値は保持されません。
セッションに値を格納する $_SESSION
session_start();
$_SESSION['VIEW_COUNT'] = 1;
echo $_SESSION['VIEW_COUNT'];
上のように$_SESSIONというスーパーグローバル変数を使うことで、セッションに値を格納することができます。
上の例だと、VIEW_COUNTというキーに1という値を紐付けています。
セッションの確認方法
検証のNetWorkタブを開いて一度command+Rもしくはcontrol+Rで更新します。
ApplicationタブのCookiesの該当のドメインをクリックすると、PHPSESSIDというのが付与されています。
Valueの値は、送られる端末ごとに違うので、それを元にサーバーでキーを特定することができます。
セッションの流れ
- ブラウザからサーバーに対してリクエストを送信します。
- サーバーでResponse HeadersのCookieに対してセッションIDをセットします。
- ブラウザでセッションIDを保持します。
- 2回目以降はセッションIDを付きでリクエストします。
- そのキーを元にサーバーで値を探して取得します。
上のケースでは、PHPSESSIDというのがサーバーでCookieに付与したセッションIDです。
PHPセッションファイルの格納場所の確認方法
session_start();
$_SESSION['VIEW_COUNT'] = 1;
echo $_SESSION['VIEW_COUNT'];
phpinfo();
phpinfo()を実行すると、phpのいろんな情報を一覧で確認できます。
control+Fもしくはcommand+Fで「upload_tmp_dir」を探します。
そこにパスが記載されていれば、そのパスに対してPHPのセッションファイルが作成されます。
そのファイルを開くと、上で指定したVIEW_COUNTというキーと値を確認することができます。
セッションを使って訪問回数を記録する
session_start();
// 2回目以降の訪問
if(isset($_SESSION['VISIT_COUNT'])) {
$_SESSION['VISIT_COUNT']++;
} else {
// 1回目の訪問
$_SESSION['VISIT_COUNT'] = 1;
}
echo '訪問回数:' . $_SESSION['VISIT_COUNT'];
1回目はsession IDが保持されていないため、1回目と2回目以降で条件分岐する必要があります。
1回目なら1をセットし、2回目以降なら1ずつ足せば訪問回数を記録することができます。