Yii Cookies
Cookies是存储在客户端的纯文本文件,您可以用它们进行跟踪。
识别返回用户的三个步骤如下:
- 服务器向客户端(浏览器)发送一组Cookies,例如id或token。
-
浏览器将其存储。
-
下次浏览器向Web服务器发送请求时,它还会发送这些Cookies,以便服务器使用该信息来识别用户。
通常,Cookies是在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起算。在此时间之后,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 */ echoHTTP_COOKIE_VARS["token"]. "<br />";
echo _COOKIE["id"] . "<br />"; /* is equivalent to */ echoHTTP_COOKIE_VARS["id"] . "<br />";
?>
要删除一个cookie,你需要设置cookie的日期为已经过期的日期。
<?php
setcookie( "token", "", time()- 60, "/","", 0);
setcookie( "id", "", time()- 60, "/","", 0);
?>