PHP: セッションクッキーを観察する

1. このページの目的

PHPのセッションクッキーを観察する。

2. 値を表示する

2.1. 追加機能

2.2. 各種値の出力

(1) セッションクッキーの名前

PHPSESSID

(2) セッションクッキーの出力(Set-Cookie)

Set-Cookie: PHPSESSID=31b9616a48c988ad2ee1fd41d8f7f0ed; path=/; secure; HttpOnly; SameSite=lax

(3) session_id() の出力

31b9616a48c988ad2ee1fd41d8f7f0ed

(4) $_SESSION['current-time'] の出力

2024-10-06T13:52:16+09:00

(5) session_encode() の出力

'name|s:3:"Foo";age|i:100;current-time|s:25:"2024-10-06T13:52:16+09:00";'

3. このページに書いてあるPHPコードの一部

session_start([
  'cookie_secure' => true,
  'cookie_httponly' => true,
  'cookie_samesite' => 'lax',
]);

if (isset($_GET['clear'])) {
    $_SESSION = [];
}

if (isset($_GET['regenerate'])) {
    session_regenerate_id();
}

if (!isset($_SESSION['name'])) {
    $_SESSION['name'] = 'Foo';
}
if (!isset($_SESSION['age'])) {
    $_SESSION['age'] = 100;
}
if (!isset($_SESSION['current-time'])) {
    $_SESSION['current-time'] = date('c', time());
}

4. 関連する関数

session_start()

session_regenerate_id()

警告 現在の session_regenerate_id は、不安定なネットワークをうまく扱えません。 たとえば、モバイルネットワークや WiFi ネットワークです。 よって、 session_regenerate_id を 呼ぶことで、セッションの消失を経験するかもしれません。

引用元:PHP: session_regenerate_id - Manual

session_id()

session_name()

session_encode()

session_create_id()

session_abort()

session_register_shutdown()

session_reset()

etc.