什么是 Cookie?

cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

如何创建 cookie?

setcookie() ,setrawcookie()函数用于设置 cookie,setrawcookie() 函数不对 cookie 值进行 URL 编码。

注释:setcookie() 函数必须位于 <html> 标签之前。

语法

setcookie(name, value, expire, path, domain);
参数 描述
name 必需。规定 cookie 的名称。
value 必需。规定 cookie 的值。
expire 可选。规定 cookie 的有效期。
path 可选。规定 cookie 的服务器路径。
domain 可选。规定 cookie 的域名。
secure 可选。规定是否通过安全的 HTTPS 连接来传输 cookie。

例子

在下面的例子中,我们将创建名为 "user" 的 cookie,把为它赋值 "Alex Porter"。我们也规定了此 cookie 在一小时后过期:

setcookie("user", "Alex Porter", time()+3600);

可以通过 $HTTP_COOKIE_VARS["user"] 或 $_COOKIE["user"] 来访问名为 "user" 的 cookie 的值。

<html>
<body>

<?php

// 输出个别的 cookie
echo $_COOKIE["TestCookie"];
echo "<br />";
echo $HTTP_COOKIE_VARS["TestCookie"];
echo "<br />";

// 输出所有 cookie
print_r($_COOKIE);
?>

</body>
</html>

输出

my cookie value
my cookie value
Array ([TestCookie] => my cookie value)

例子 2

创建一个数组 cookie:

<?php
setrawcookie("cookie[three]","cookiethree");
setrawcookie("cookie[two]","cookietwo");
setrawcookie("cookie[one]","cookieone");

// 输出 cookie (在重载页面后)
if (isset($_COOKIE["cookie"]))
  {
  foreach ($_COOKIE["cookie"] as $name => $value)
    {
    echo "$name : $value <br />";
    }
  }
?>

<html>
<body>

输出

three : cookiethree
two : cookietwo
one : cookieone

删除

要删除cookie需要确保它的失效期是在过去,才能触发浏览器的删除机制。

//将过期时间设为一小时前
setcookie("TestCookie", "", time() - 3600);

-----关于删除cookie的说明结束-----

在php中使用“setcookie($cookiename, '');”或者“setcookie($cookiename, NULL);”都会删除cookie。参考地址