セッション

PHPにおける「セッション」は、ユーザーごとの状態を一時的にサーバー側で保持するための仕組みです。HTTPは本来「ステートレス(状態を保持しない)」なプロトコルであるため、ユーザーがページを移動するたびに情報は失われます。セッションを用いることで、ユーザーのログイン状態やカートの中身などの情報を一時的に保持し、連続したやり取りを可能にします。


セッションの基本的な仕組み

  1. セッションの開始

    php
    session_start();

    この関数をスクリプトの冒頭で呼び出すことで、セッションの利用が開始されます。これにより、PHPは自動的にセッションIDを発行し、クライアント(ブラウザ)にはこのIDがCookieとして保存されます(PHPSESSIDという名前のCookieが一般的)。

  2. セッション変数の使用
    セッション変数はスーパーグローバル変数 $_SESSION を通じて利用できます。

    php
    $_SESSION["username"] = "yamada";

    このようにすれば、"username" というキーに "yamada" という値が紐づけられ、サーバー上に保存されます。

  3. セッション変数の取得

    php
    echo $_SESSION["username"];

    これにより、保存された情報を他のページからも取得できます。

  4. セッションの削除
    セッションを終了させたい場合は、次の手順を取ります。

    php
    session_unset(); // 全てのセッション変数を削除 session_destroy(); // セッション自体を破棄

セッションの特徴

  • サーバー側にデータが保存される:クライアントにはセッションIDのみが送られるため、機密情報を扱うのに適しています。

  • セッションIDの管理が重要:セキュリティ上、セッションIDの盗用(セッションハイジャック)に注意が必要です。

  • 有効期限がある:PHPの設定(php.ini)でセッションの有効期限(session.gc_maxlifetime)を調整できます。


使用例(ログインシステム)

php
<?php session_start(); if ($_POST["username"] == "admin" && $_POST["password"] == "pass") { $_SESSION["login"] = true; echo "ログイン成功"; } else { echo "ログイン失敗"; } ?>

まとめ

  • セッションは「ユーザーごとの状態を一時的にサーバーに保存」する手段

  • session_start() を用いて開始し、$_SESSION を通じてデータを操作

  • ログイン管理やカート情報の保持に適している

  • クライアントにはセッションIDのみが保存され、情報の安全性が高い

生成日:2025/05/03