如何在 php 中为每个用户设置一个 cookie?
How to set a cookie per user in php?
我在我开发的 php 页面上使用 cookie,如下所示:
setcookie("ThisCookie[to]", $toValue, time() + (10 * 365 * 24 * 60 * 60), "/");
如果我检测到设置了 cookie,我会检索值:
foreach ($_COOKIE["ThisCookie"] as $name => $value) {
if ($name == "to")
{
$cookie_to = $value;
}
乍一看效果很好,但无论我从哪台机器访问该页面,我都会从 cookie 返回相同的值。因此,例如,在我的台式计算机上,我输入了一个 "ABC" 值,该值会存储在该 cookie 中。如果我从另一台计算机甚至我的 phone.
访问该站点,我会看到返回 "ABC"
我是不是严重误解了 cookie 的工作原理?我认为它们存储在每个用户的本地机器上,而不是所有用户共有的。为什么无论我从哪台机器访问页面,cookie 都返回相同的值?
谢谢。
你完全错了伙计...
Cookies 是用户的,存储在用户的机器上。
当您处理 php 中的 $_COOKIE
变量时,您处理了在 header 中传递的特定用户的 cookie(发出请求的那个)。
对于服务器阅读 $_SESSION
http://php.net/manual/en/reserved.variables.session.php
我在我开发的 php 页面上使用 cookie,如下所示:
setcookie("ThisCookie[to]", $toValue, time() + (10 * 365 * 24 * 60 * 60), "/");
如果我检测到设置了 cookie,我会检索值:
foreach ($_COOKIE["ThisCookie"] as $name => $value) {
if ($name == "to")
{
$cookie_to = $value;
}
乍一看效果很好,但无论我从哪台机器访问该页面,我都会从 cookie 返回相同的值。因此,例如,在我的台式计算机上,我输入了一个 "ABC" 值,该值会存储在该 cookie 中。如果我从另一台计算机甚至我的 phone.
访问该站点,我会看到返回 "ABC"我是不是严重误解了 cookie 的工作原理?我认为它们存储在每个用户的本地机器上,而不是所有用户共有的。为什么无论我从哪台机器访问页面,cookie 都返回相同的值?
谢谢。
你完全错了伙计...
Cookies 是用户的,存储在用户的机器上。
当您处理 php 中的 $_COOKIE
变量时,您处理了在 header 中传递的特定用户的 cookie(发出请求的那个)。
对于服务器阅读 $_SESSION
http://php.net/manual/en/reserved.variables.session.php