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 = xuhuhu.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 變數來實現。
<?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);
?>

上一篇: Yii使用Flash數據 下一篇: Yii使用Cookies