CodeIgniter - Cookie 管理



Cookie 是伺服器傳送到客戶端計算機上儲存的一小段資料。CodeIgniter 有一個名為“Cookie Helper”的輔助函式用於 Cookie 管理。

語法

set_cookie($name[, $value = ''[, $expire = ''[, $domain = ''[, $path = '/'[, $prefix = ''[, $secure = FALSE[, $httponly = FALSE]]]]]]]])

引數

  • $name (混合型別) − Cookie 名稱或包含此函式所有可用引數的關聯陣列

  • $value (字串) − Cookie 值

  • $expire (整數) − 到期之前的秒數

  • $domain (字串) − Cookie 域名(通常為:.yourdomain.com)

  • $path (字串) − Cookie 路徑

  • $prefix (字串) − Cookie 名稱字首

  • $secure (布林值) − 是否僅透過 HTTPS 傳送 Cookie

  • $httponly (布林值) − 是否隱藏 Cookie,防止 JavaScript 訪問

返回型別

void

set_cookie() 函式中,可以使用兩種方式傳遞所有值。第一種方式,只能傳遞陣列;第二種方式,也可以傳遞單個引數。

語法

get_cookie($index[, $xss_clean = NULL]])

引數

  • $index (字串) − Cookie 名稱

  • $xss_clean (布林值) − 是否對返回值應用 XSS 過濾

返回

Cookie 值,如果未找到則返回 NULL

返回型別

混合型別

get_cookie() 函式用於獲取使用 set_cookie() 函式設定的 Cookie。

語法

delete_cookie($name[, $domain = ''[, $path = '/'[, $prefix = '']]]])

引數

  • $name (字串) − Cookie 名稱

  • $domain (字串) − Cookie 域名(通常為:.yourdomain.com)

  • $path (字串) − Cookie 路徑

  • $prefix (字串) − Cookie 名稱字首

返回型別

void

delete_cookie() 函式用於刪除 Cookie。

示例

建立一個名為 Cookie_controller.php 的控制器,並將其儲存到 application/controller/Cookie_controller.php

<?php 
   class Cookie_controller extends CI_Controller { 
	
      function __construct() { 
         parent::__construct(); 
         $this->load->helper(array('cookie', 'url')); 
      } 
  
      public function index() { 
         set_cookie('cookie_name','cookie_value','3600'); 
         $this->load->view('Cookie_view'); 
      } 
  
      public function display_cookie() { 
         echo get_cookie('cookie_name'); 
         $this->load->view('Cookie_view');
      } 
  
      public function deletecookie() { 
         delete_cookie('cookie_name'); 
         redirect('cookie/display'); 
      } 
		
   } 
?>

建立一個名為 Cookie_view.php 的檢視檔案,並將其儲存到 application/views/Cookie_view.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter View Example</title> 
   </head> 
	
   <body> 
      <a href = 'display'>Click Here</a> to view the cookie.<br> 
      <a href = 'delete'>Click Here</a> to delete the cookie. 
   </body>
	
</html>

修改 application/config/routes.php 中的 routes.php 檔案,為上述控制器新增路由,並在檔案末尾新增以下行。

$route['cookie'] = "Cookie_controller"; 
$route['cookie/display'] = "Cookie_controller/display_cookie"; 
$route['cookie/delete'] = "Cookie_controller/deletecookie";

之後,您可以在瀏覽器中執行以下 URL 來執行示例。

http://yoursite.com/index.php/cookie

它將產生如下截圖所示的輸出。

cookie_management
廣告