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'); 
廣告

© . All rights reserved.