首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 使用 $_SESSION 儲存與讀取 Session 變數

     編輯:PHP 綜合知識

PHP $_SESSION 超全域陣列用於跨請求保存使用者狀態。必須在輸出前呼叫 session_start()。

基本操作

<?php
session_start();

// 寫入
$_SESSION["sitename"] = "W3M";
$_SESSION["MyChoice"] = "red";

// 讀取
echo $_SESSION['sitename'] . "\n"; // W3M
echo $_SESSION['MyChoice'] . "\n"; // red

// 刪除單一變數
unset($_SESSION["MyChoice"]);

// 銷毀整個 Session
session_destroy();
?>

Session 運作流程

  1. session_start():檢查 Cookie 中 PHPSESSID,載入對應儲存檔
  2. 腳本結束時自動序列化寫回儲存處理器(預設檔案)
  3. 下次請求攜帶相同 Cookie 即可恢復狀態

常見設定 (php.ini)

設定預設建議
session.save_handlerfilesRedis/Memcached (分散式)
session.gc_maxlifetime1440 (秒)視業務調整
session.cookie_httponlyOffOn (防 XSS 竊取)
session.cookie_secureOffOn (僅 HTTPS)
session.use_strict_modeOffOn (防 Session Fixation)

安全最佳實踐

  • 登入後 重新產生 Session ID:session_regenerate_id(true)
  • 敏感操作前驗證 $_SESSION['user_id'] 存在
  • 登出時 session_destroy() + setcookie('PHPSESSID', '', time()-3600)

陣列與物件存入

$_SESSION['user'] = ['id'=>1, 'name'=>'Tom', 'roles'=>['admin']];
// 物件需實作 __sleep/__wakeup 或 Serializable
$_SESSION['cart'] = new Cart();

善用 Session 管理使用者狀態,注意安全設定與分散式部署時的儲存處理器切換。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved