2023.10.13
【PHP】セッションの使い方($_SESSION)

Unsplasheberhard 🖐 grossgasteigerが撮影した写真

はじめに

サーバーに一時的に値を保管しておける$_SESSION変数は認証機能やコントローラ間の値の受け渡しなどに便利です。

$_SESSION変数は連想配列として値を保持します。

セッション変数の使い方

■値を格納する

$_SESSION['キー'] = 値;
例)$_SESSION['mail'] = "example@gmai.com";

■値を使う

$_SESSIONに格納した値は「$_SESSION[‘キー’]」でどこでも簡単に呼び出せます。

例)echo $_SESSION['mail'];

セッションを操作するための主な関数

関数名内容
session.start()セッションを開始する
session_name()セッションクッキー名を取得する
session_get_cookie_params()セッションクッキーの属性値を取得する
session_destroy()サーバー上のセッションデータを削除する
session_regenerate_id()セッションIDを新たに生成し、現在のセッションIDと差し替える

セッションに関するphp.iniの主な設定

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

設定内容
session.save_pathセッションの保存先ファイルのパスの指定
session.use_strict_mode未生成のセッションIDがブラウザから送られてきたとき、拒否するか
session.gc_maxlifetimeセッションの有効期限を秒で指定
※セッションは期限を過ぎるとGabageCollectionにより自動で破棄される
session.gc_probability
session.gc_divisor
GabageCollection(GC)の起動確率を設定する
※GCはPHPプログラム実行時に一定確率で起動する
※GCの起動確率=session.gc_probability / session.gc_divisor