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