Yii Cookies

Cookie是存儲在客戶端上的純文本文件。可以使用它們作爲跟蹤的目的。

一般使用三個步驟來識別老用戶 -

  • 服務器發送一組Cookie到客戶端(瀏覽器);例如,ID或令牌

  • 瀏覽器將其存儲

  • 下一次當瀏覽器發送請求到Web服務器時,它也發送那些cookies,以便服務器可以使用該信息來識別用戶。

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 = yiibai.com
Connection: close
Content-Type: text/html

PHP 提供 setcookie()函數來設置 Cookie -

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

在這裏−

  • name − 設置 cookie 的名稱,並存儲在 HTTP_COOKIE_VARS 的環境變量。

  • value − 設置上面命名變量的值。

  • expiry − cookie指定從GMT在1970年1月1日 00:00:00 這段時間後的秒數,超過設置的時間後變量的值將不可訪問。

  • path − 指定 cookie 的有效目錄。

  • domain − 可用於定義域名。所有 Cookie 僅適用於產生它的主機和域名。

  • security −如果設置,這意味着 Cookie 應僅由 HTTPS 發送,否則當設置爲0時,cookies 可以通過常規的HTTP發送。

在 PHP 中訪問 cookie,可以使用 $_COOKIE 或 $HTTP_COOKIE_VARS 變量來實現。

"; /\* is equivalent to \*/ echo $HTTP\_COOKIE\_VARS\["token"\]. "
"; echo $\_COOKIE\["id"\] . "
"; /\* is equivalent to \*/ echo $HTTP\_COOKIE\_VARS\["id"\] . "
"; ?>

若要刪除 cookie,應該使用已過期日期設置 cookie ,如下代碼所示: