freeCodeCamp/guide/chinese/php/php-cookies/index.md

110 lines
2.6 KiB
Markdown
Raw Normal View History

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