【PHP】セッション変数($_SESSION)を使って出来ること【基本と応用】
セッション変数とは
PHPのセッション変数($_SESSION
)は、ユーザーごとに異なる情報をサーバー側で保持する仕組みです。セッションは、Webブラウザが閉じられるまでデータを維持するため、ページをまたいで情報を共有できます。
セッション変数の基本的な使い方
セッションを使うには、最初に session_start()
を呼び出す必要があります。
session_start();
$_SESSION['username'] = 'Taro';
echo 'こんにちは、' . $_SESSION['username'] . 'さん!';
ユーザー認証
セッションを利用すると、ログインしたユーザーの情報を保持し、認証状態を管理できます。
session_start();
if ($_POST['username'] == 'admin' && $_POST['password'] == 'password123') {
$_SESSION['loggedin'] = true;
$_SESSION['username'] = 'admin';
header('Location: dashboard.php');
exit;
}
ショッピングカート
オンラインショップでは、セッションを使ってカートの中身を保存できます。
session_start();
$_SESSION['cart'][] = ['item' => 'ノートPC', 'price' => 100000];
echo 'カートに追加しました!';
ページの訪問回数を記録する
訪問回数をセッションで管理することで、ユーザーが何回ページを訪れたかをカウントできます。
session_start();
if (!isset($_SESSION['visit_count'])) {
$_SESSION['visit_count'] = 1;
} else {
$_SESSION['visit_count']++;
}
echo 'あなたの訪問回数: ' . $_SESSION['visit_count'];
複数ページにまたがるフォームのデータ保持
長いフォームを複数ページに分ける場合、セッションを使って入力情報を保持できます。
session_start();
$_SESSION['form_data']['name'] = $_POST['name'];
$_SESSION['form_data']['email'] = $_POST['email'];
header('Location: step2.php');
ユーザーの設定や選択を記憶
テーマカラーや言語設定をセッションで記憶することで、サイトの利便性を向上できます。
session_start();
$_SESSION['theme'] = 'dark';
echo '選択したテーマ: ' . $_SESSION['theme'];
セッションのセキュリティ対策
セッションハイジャック対策として、セッションIDの再生成を行うことが推奨されます。
session_start();
session_regenerate_id(true);
セッションの終了と破棄
セッションを終了するには session_destroy()
を使用します。
session_start();
session_destroy();
unset($_SESSION);
echo 'セッションを終了しました。';