1 of 7

セッションとはなにか

Web アプリケーション開発 入門

ログイン情報はどのように保持されているのか

ログイン

購入

認証

保存

2 of 7

身近なWebアプリケーション

一度ログインするだけで、あらゆる機能が使える

ユーザー

ログイン

商品検索

購入決済

レビュー記載

アカウント編集

支払情報

どの機能でも「ログイン状態」が保たれている

3 of 7

なぜ難しいのか?

Webサイト:1ファイル = 1ページ の原則

login.php

ログインページ

top.php

トップページ

product.php

商品ページ

checkout.php

決済ページ

Q. ログインしたユーザーID を、4つのファイル間で共有できるか?

$userId = ?

$userId = ?

$userId = ?

$userId = ?

通常、複数ファイル間で変数の値を共有することはできない

4 of 7

セッションの仕組み

サーバー側 セッション

session_id = abc123

user_id = 42

username = Tanaka

login.php

$_SESSION['user_id']

top.php

$_SESSION['user_id']

product.php

$_SESSION['user_id']

checkout.php

$_SESSION['user_id']

どのファイルからでも $_SESSION でアクセスできる

5 of 7

ログイン・ログアウトの流れ

ログイン時

ユーザーがID/PW入力

フォームから送信

DBでID/PWを照合

一致したらOK

$_SESSION['user_id'] = 42

セッションに記録

✔ どのページでも user_id が使える

ログアウト時

ログアウトボタン押下

logout.php にリクエスト

session_destroy()

セッション全削除

user_id がなくなる

未ログイン状態に

✔ user_id 削除だけで完全ログアウト

6 of 7

PHP でのセッション操作

① セッション開始(全ページ共通)

<?php

session_start();

// セッションが使えるようになる

② ログイン成功時

// ユーザーIDをセッションに保存

$_SESSION['user_id'] = $userId;

③ 他ページでセッション取得

// どのファイルでも取得できる

$id = $_SESSION['user_id'];

④ ログアウト時

// セッションを削除する

session_destroy();

ポイント:session_start() を最初に呼び出し、$_SESSION['キー名'] で値を読み書きするだけ

7 of 7

まとめ

01

セッションとは サーバー側にデータを保存し、複数ページ間で情報を共有できる仕組み

02

ログイン状態の保持 $_SESSION['user_id'] にユーザーIDを入れることでログイン情報を保持する

03

ログアウトの実装 session_destroy() でセッションを破棄するだけでログアウトできる

04

session_start() 必須 セッションを使うファイルの先頭では必ず session_start() を呼ぶ

セッションを使いこなして、本格的なWebアプリケーションを開発しよう!