php cookie的使用与注意
**什么是 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>
<span class="hljs-section"><?php
// 输出个别的 cookie
echo $_COOKIE["TestCookie"];
echo "<br /></span>";
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:
```
<span class="hljs-section"><?php
setrawcookie("cookie[three]","cookiethree");
setrawcookie("cookie[two]","cookietwo");
setrawcookie("cookie[one]","cookieone");
// 输出 cookie (在重载页面后)
if (isset($_COOKIE["cookie"]))
{
foreach ($_COOKIE["cookie"] as $name =></span> $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。[参考地址](https://www.cnblogs.com/alibai/p/4127343.html)
</body></html>
评论区