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); 
?>
广告