Yii Cookies
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 = codingdict.com Connection: close Content-Type: text/html
PHP提供了 setcookie() 函数来设置cookie -
setcookie(name, value, expire, path, domain, security);
- name - 设置cookie的名称并存储在名为HTTP_COOKIE_VARS的环境变量中。
- 值 - 设置指定变量的值。
- 到期 时间 - 指定自1970年1月1日00:00:00 GMT以后的未来时间,以秒为单位。在此时间之后,Cookie将无法访问。
- 路径 - 指定cookie有效的目录。
- 域 - 这可以用来在非常大的域中定义域名。 所有cookie只对创建它们的主机和域有效。
- 安全性 - 如果设置为,则表示该cookie只能通过HTTPS发送,否则当设置为0时,可以通过常规HTTP发送cookie。
要使用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); ?>
Cookie允许数据在各个请求之间持续存在。在PHP中,您可以通过 $ _COOKIE 变量访问它们。Yii将cookie作为yii \ web \ Cookie 类的对象。在本章中,我们将介绍几种用于读取Coo ...