【发布时间】:2018-01-20 16:07:19
【问题描述】:
我正在向this link学习PHP中Cookies的概念
到现在我都明白了
cookie 通常用于识别用户。 cookie 是服务器嵌入在用户计算机上的一个小文件。每次同一台计算机通过浏览器请求页面时,它也会发送 cookie。使用 PHP,您可以创建和检索 cookie 值。
我研究了上述链接位置的以下演示程序:
<!DOCTYPE html>
<?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];
}
?>
<p><strong>Note:</strong> You might have to reload the page to see the value of the cookie.</p>
</body>
</html>
在浏览完上述代码后,我的脑海中浮现了几个问题。我想给他们满意的答案。
- 由于 cookie 只不过是服务器嵌入用户计算机的文件,那么文件创建和操作代码在哪里?在没有文件操作和文件上传代码的情况下,服务器如何在用户的计算机上嵌入文件或浏览器如何将请求与 cookie 文件一起发送到服务器?
- 不过,如果我认为 cookie 文件已被服务器嵌入到用户的计算机上,那么该文件在我的运行 Windows 10 家庭版的计算机上位于何处?
我还阅读了如下声明:
注意: cookie 的值在发送 cookie 时自动进行 URL 编码,接收时自动解码(为防止 URL 编码,请改用 setrawcookie())。
坦率地说,我完全不明白这句话是什么意思,以及在发送和接收 cookie 时到底发生了什么。我也不知道什么是 PHP 中的 URL 编码和 URL 解码?
如果有人用很好的解释性答案和工作代码示例来解决我上述所有疑问,那就更好了。
老实说,正如我从经验丰富的 PHP 开发人员那里听说的那样,Cookie 和 Session 是 PHP 中最重要的基本概念。但是,我发现它们很难理解。所以,请用简单明了的语言向我解释,以便我可以更好、更轻松地掌握这些概念。
简而言之,我想通过工作代码示例了解 PHP 中 cookie 的概念、功能和用法。
谢谢。
【问题讨论】:
-
1. setcookie 就是这样做的。 2. 取决于浏览器和操作系统
-
本教程教你错。 cookie 不是文件。 cookie 只是一段数据(一个字符串)。
标签: php cookies urlencode setcookie urldecode