Session 操作
<?php
session_start(); // 必須在輸出前呼叫
// 設定/建立
$_SESSION['user_id'] = '123';
// 讀取
echo $_SESSION['user_id'];
// 清空所有 session 變數
$_SESSION = array();
// 銷毀 session
session_destroy();
?>
Cookie 操作
<?php
// 建立(預設瀏覽器關閉失效)
setcookie('user_id', '123');
// 讀取
echo $_COOKIE['user_id'];
// 刪除(設定過期時間為過去)
setcookie('user_id', '', time() - 3600);
?>
Session vs Cookie 差異
| 特性 | Session | Cookie |
| 儲存位置 | 伺服器端 | 客戶端 |
| 安全性 | 較高(僅傳遞 Session ID) | 較低(明文傳輸) |
| 生命週期 | 瀏覽器關閉或 gc 回收 | 可設定過期時間 |
| 容量限制 | 較大(受伺服器記憶體/檔案限制) | 4KB 左右 |
運作機制
- 建立 Session 時,伺服器生成加密 Session ID,透過 Cookie(或 URL 參數)回傳給客戶端。
- 後續請求攜帶 Session ID,伺服器識別用戶身份。
完整範例(分頁演示)
文中提供的重複代碼已整合,實際專案中請將不同功能拆分至對應頁面(登入頁寫入、驗證頁讀取、登出頁銷毀)。