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'用户'已删除。 |