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

110 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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