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