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 = cainiaoya.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 - 如果设置为,则表示 cookie 只能通过 HTTPS 发送,否则,当设置为 0 时,cookie 可以通过常规 HTTP 发送。
    要在 PHP 中访问 c​​ookie,您可以使用$_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); 
    ?>