PHPの$_SESSIONとは?ユーザー情報を一時的に保持する仕組みを解説
$_SESSION は、PHPでセッションデータを管理するためのスーパグローバル変数です。
ユーザーごとに一時的な情報を保持したい場合に使われ、ログイン状態やカート情報などに活用されます。
セッションの特徴
- ブラウザを閉じるまで情報が保持される(または明示的に破棄される)
- クライアント側にデータが見えない(安全性が高い)
- ユーザーごとに固有のセッションIDで管理される
セッションの基本構文
@ セッションの開始
使用する前に必ず session_start()
を実行します(スクリプトの先頭推奨)。
<?php
session_start();
A セッションへの値の保存
$_SESSION["user_name"] = "山田太郎";
B セッションの値を取得
echo $_SESSION["user_name"]; // 山田太郎
C セッション変数の削除
unset($_SESSION["user_name"]);
D セッション全体の破棄
session_destroy();
ログイン処理の簡単な例
<?php
session_start();
if ($_POST["password"] === "secret") {
$_SESSION["logged_in"] = true;
echo "ログイン成功!";
} else {
echo "パスワードが違います";
}
セッションの安全対策
- セッションIDの固定化を防ぐため、ログイン時に
session_regenerate_id(true)
を使う
- HTTPS環境で
session.cookie_secure
を有効に
- 外部に漏らさないように情報量を最小限に
セッション保存場所
セッション情報はサーバー側にファイルとして保存されます(通常は /tmp
など)。
クライアントにはセッションIDのみがクッキーで渡されます。
まとめ
$_SESSION
はユーザーごとの一時情報を保存する仕組み
session_start()
を忘れずに最初に実行する
- ログイン管理やカート処理などに使われる
unset()
や session_destroy()
で削除も可能
- セキュリティ対策としてID再生成・HTTPS利用を意識する
$_SESSION はユーザーごとの情報を管理するために非常に便利な機能です。
しっかりと仕組みと使い方を理解して、安全なWebアプリケーションを作っていきましょう。