- FuelPHP 教程
- FuelPHP - 首頁
- FuelPHP - 簡介
- FuelPHP - 安裝
- FuelPHP - 架構概述
- FuelPHP - 簡單 Web 應用
- FuelPHP - 配置
- FuelPHP - 控制器
- FuelPHP - 路由
- FuelPHP - 請求和響應
- FuelPHP - 檢視
- FuelPHP - 展示器
- FuelPHP - 模型和資料庫
- FuelPHP - 表單程式設計
- FuelPHP - 驗證
- 高階表單程式設計
- FuelPHP - 檔案上傳
- FuelPHP - Ajax
- FuelPHP - HMVC 請求
- FuelPHP - 主題
- FuelPHP - 模組
- FuelPHP - 包
- Cookie 和 Session 管理
- FuelPHP - 事件
- FuelPHP - 郵件管理
- FuelPHP - 效能分析器
- 錯誤處理和除錯
- FuelPHP - 單元測試
- 完整工作示例
- FuelPHP 有用資源
- FuelPHP - 快速指南
- FuelPHP - 有用資源
- FuelPHP - 討論
FuelPHP - Cookie 和 Session 管理
Cookie 提供客戶端資料儲存,並且只支援少量資料。通常,每個域為 2KB,具體取決於瀏覽器。Session 提供伺服器端資料儲存,並且支援大量資料。讓我們瞭解如何在 FuelPHP Web 應用中建立 Cookie 和 Session。
Cookies
FuelPHP 提供了一個Cookie 類來建立 Cookie 項。Cookie 類用於建立、分配和刪除 Cookie。
配置 Cookie
Cookie 類可以透過位於 fuel/app/config/config.php 的主應用程式配置檔案進行全域性配置。定義如下。
'cookie' => array ( //Number of seconds before the cookie expires 'expiration' => 0, //Restrict the path that the cookie is available to 'path' => '/', //Restrict the domain that the cookie is available to 'domain' => null, // Only transmit cookies over secure connections 'secure' => false, // Only transmit cookies over HTTP, disabling Javascript access 'http_only' => false, ),
方法
Cookie 類提供建立、訪問和刪除 Cookie 項的方法。如下所示:
set()
set 方法用於建立 Cookie 變數。它包含以下引數:
$name - $_COOKIE 陣列中的鍵。
$value - Cookie 的值。
$expiration - Cookie 的有效期(秒)。
$path - Cookie 可用的伺服器路徑。
$domain - Cookie 可用的域名。
$secure - 如果只想透過安全連線傳輸 Cookie,則設定為 true。
$httponly - 僅允許透過 HTTP 傳輸 Cookie,停用 JavaScript 訪問。
Cookie::set('theme', 'green');
get()
get 方法用於讀取 Cookie 變數。它包含以下引數:
$name - $_COOKIE 陣列中的鍵。
$value - 如果鍵在 $_COOKIE 陣列中不可用,則返回的值。
Cookie::get('theme');
delete()
delete 方法用於刪除 Cookie 變數。它包含以下引數:
$name - $_COOKIE 陣列中的鍵。
$value - Cookie 的值。
$domain - Cookie 可用的域名。
$secure - 如果只想透過安全連線傳輸 Cookie,則設定為 true。
$httponly - 僅允許透過 HTTP 傳輸 Cookie,停用 JavaScript 訪問。
Cookie::delete('theme');
Session
FuelPHP 提供了Session 類來維護應用程式的狀態。
配置 Session
Session 類可以透過特殊的配置檔案fuel/core/config/session.php進行配置。一些重要的配置項如下所示:
auto_initialize - 自動初始化 Session。
driver - Session 驅動程式的名稱。Session 使用驅動程式實現,可能的選項包括 cookie、db、memcached、redis 和 file。預設驅動程式為 cookie。
match_ip - 檢查客戶端 IP。
match_ua - 檢查客戶端使用者代理。
expiration_time - Session 超時時間(秒)。
rotation_time - 續期 Session 的時間。
Session 方法
Session 類提供用於操作 Session 資料的方法。如下所示:
instance()
instance 方法返回預設例項或由名稱標識的特定例項。
$session = Session::instance(); // default instance
$session = Session::instance('myseesion'); // specific instance
set()
set 方法用於分配 Session 變數。
Session::set('userid', $userid);
get()
get 方法允許您從 Session 中檢索儲存的變數。
$userid = Session::get('userid');
delete()
delete 方法允許您刪除儲存的 Session 變數。
Session::delete('userid');
create()
create 方法允許您建立一個新的 Session。如果已存在 Session,則會將其銷燬並建立一個新的 Session。
Session::create();
destroy()
destroy 方法用於銷燬現有的 Session。
Session::destroy();
read()
read 方法允許您讀取 Session。
Session::read();
write()
write 方法允許您寫入 Session。
Session::write();
key()
key 方法允許您檢索 Session 鍵的元素。鍵的值是唯一的。
$session_id = Session::key('session_id');