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。参考地址