110 lines
2.6 KiB
Markdown
110 lines
2.6 KiB
Markdown
|
---
|
|||
|
title: PHP Cookies
|
|||
|
localeTitle: PHP Cookies
|
|||
|
---
|
|||
|
# PHP COOKIES
|
|||
|
|
|||
|
## 什么是Cookie?
|
|||
|
|
|||
|
Cookie通常用于标识用户。它是服务器嵌入用户计算机的小文件。 每次同一台计算机通过浏览器请求页面时,它也会发送cookie。
|
|||
|
Cookie旨在成为记住有状态信息或记录用户浏览活动的可靠机制。
|
|||
|
它们还可用于记住用户先前在表单字段(如姓名,地址,密码等)中输入的任意信息。
|
|||
|
|
|||
|
## 使用PHP创建Cookie
|
|||
|
|
|||
|
使用PHP,您可以创建和检索cookie值。 使用setcookie()函数创建cookie。
|
|||
|
|
|||
|
`setcookie(name, value, expire, path, domain, secure, httponly);`
|
|||
|
|
|||
|
只有_name_参数是必需参数。所有其他参数都是可选的。
|
|||
|
|
|||
|
## PHP创建/检索Cookie
|
|||
|
|
|||
|
以下示例创建名为“user”的cookie,其值为“John Doe”。
|
|||
|
Cookie将在30天后(86400 \* 30)过期。
|
|||
|
“/”表示cookie在整个网站中可用(否则,您可以选择您喜欢的目录)。
|
|||
|
然后我们检索cookie“user”的值(使用全局变量$ \_COOKIE)。
|
|||
|
我们还使用isset()函数来确定cookie是否已设置:
|
|||
|
|
|||
|
**例:**
|
|||
|
```
|
|||
|
<?php
|
|||
|
$cookie_name = "user";
|
|||
|
$cookie_value = "John Doe";
|
|||
|
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
|
|||
|
?>
|
|||
|
<html>
|
|||
|
<body>
|
|||
|
|
|||
|
<?php
|
|||
|
if(!isset($_COOKIE[$cookie_name])) {
|
|||
|
echo "Cookie named '" . $cookie_name . "' is not set!";
|
|||
|
} else {
|
|||
|
echo "Cookie '" . $cookie_name . "' is set!<br>";
|
|||
|
echo "Value is: " . $_COOKIE[$cookie_name];
|
|||
|
}
|
|||
|
?>
|
|||
|
</body>
|
|||
|
</html>
|
|||
|
```
|
|||
|
|
|||
|
**注意:** setcookie()函数必须出现**在。之前** 标签。
|
|||
|
|
|||
|
输出:
|
|||
|
Cookie'用户'已设置!
|
|||
|
价值是:John Doe
|
|||
|
|
|||
|
## PHP修改Cookie值
|
|||
|
|
|||
|
要修改cookie,只需使用setcookie()函数再次设置该值:
|
|||
|
|
|||
|
**例:**
|
|||
|
```
|
|||
|
<?php
|
|||
|
$cookie_name = "user";
|
|||
|
$cookie_value = "Jane Porter";
|
|||
|
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
|
|||
|
?>
|
|||
|
<html>
|
|||
|
<body>
|
|||
|
|
|||
|
<?php
|
|||
|
if(!isset($_COOKIE[$cookie_name])) {
|
|||
|
echo "Cookie named '" . $cookie_name . "' is not set!";
|
|||
|
} else {
|
|||
|
echo "Cookie '" . $cookie_name . "' is set!<br>";
|
|||
|
echo "Value is: " . $_COOKIE[$cookie_name];
|
|||
|
}
|
|||
|
?>
|
|||
|
|
|||
|
</body>
|
|||
|
</html>
|
|||
|
```
|
|||
|
|
|||
|
输出:
|
|||
|
Cookie'用户'已设置!
|
|||
|
价值观是:Alex Porter
|
|||
|
|
|||
|
## PHP删除Cookie
|
|||
|
|
|||
|
要删除cookie,请使用过去有过期日期的setcookie()函数:
|
|||
|
|
|||
|
**例:**
|
|||
|
```
|
|||
|
<?php
|
|||
|
// set the expiration date to one hour ago
|
|||
|
setcookie("user", "", time() - 3600);
|
|||
|
?>
|
|||
|
<html>
|
|||
|
<body>
|
|||
|
|
|||
|
<?php
|
|||
|
echo "Cookie 'user' is deleted.";
|
|||
|
?>
|
|||
|
|
|||
|
</body>
|
|||
|
</html>
|
|||
|
```
|
|||
|
|
|||
|
输出:
|
|||
|
Cookie'用户'已删除。
|