Yii - Cookie



Cookie 是儲存在客戶端的純文字檔案。您可以將其用於跟蹤目的。

識別回訪使用者有三個步驟:

  • 伺服器向客戶端(瀏覽器)傳送一組 Cookie。例如,ID 或令牌。

  • 瀏覽器將其儲存。

  • 下次瀏覽器向 Web 伺服器傳送請求時,它也會發送這些 Cookie,以便伺服器可以使用這些資訊來識別使用者。

Cookie 通常在 HTTP 標頭中設定,如下面的程式碼所示。

HTTP/1.1 200 OK
Date: Fri, 05 Feb 2015 21:03:38 GMT
Server: Apache/1.3.9 (UNIX) PHP/4.0b3
Set-Cookie: name = myname; expires = Monday, 06-Feb-16 22:03:38 GMT;
   path = /; domain = tutorialspoint.com 
Connection: close
Content-Type: text/html

PHP 提供了 `setcookie()` 函式來設定 Cookie:

setcookie(name, value, expire, path, domain, security);

其中:

  • **name** - 設定 Cookie 的名稱,並存儲在一個名為 HTTP_COOKIE_VARS 的環境變數中。

  • **value** - 設定命名變數的值。

  • **expiry** - 指定自 1970 年 1 月 1 日 00:00:00 GMT 以來的秒數,表示未來的時間。在此時間之後,Cookie 將變得不可訪問。

  • **path** - 指定 Cookie 有效的目錄。

  • **domain** - 這可用於在非常大的域中定義域名。所有 Cookie 僅對建立它們的宿主和域名有效。

  • **security** - 如果設定為 1,則表示 Cookie 只能透過 HTTPS 傳送,否則,如果設定為 0,則 Cookie 可以透過常規 HTTP 傳送。

要訪問 PHP 中的 Cookie,可以使用 `$_COOKIE` 或 `$HTTP_COOKIE_VARS` 變數。

<?php 
   echo $_COOKIE["token"]. "<br />"; 
   /* is equivalent to */ 
   echo $HTTP_COOKIE_VARS["token"]. "<br />"; 
   echo $_COOKIE["id"] . "<br />"; 
   /* is equivalent to */ 
   echo $HTTP_COOKIE_VARS["id"] . "<br />"; 
?>

要刪除 Cookie,應將 Cookie 設定為已過期的日期。

<?php 
   setcookie( "token", "", time()- 60, "/","", 0); 
   setcookie( "id", "", time()- 60, "/","", 0); 
?>
廣告