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