【问题标题】:How to set a cookie per user in php?如何在php中为每个用户设置一个cookie?
【发布时间】:2017-11-30 19:18:19
【问题描述】:

我在我开发的 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 存储了这个值。如果我从另一台计算机甚至我的手机访问该网站,我会看到返回“ABC”。

我是否严重误解了 cookie 的工作原理?我认为它们是按用户存储在本地计算机上的,并不是所有用户都通用的。为什么无论我从哪台机器访问页面,cookie都会返回相同的值?

谢谢。

【问题讨论】:

    标签: php html cookies session-cookies session-state


    【解决方案1】:

    你搞错了,伙计……

    Cookie 是用户的,存储在用户的机器上。

    当您在 php 中处理 $_COOKIE 变量时,您会处理在标头中传递的特定用户的 cookie(发出请求的那个)。

    对于服务器阅读 $_SESSION http://php.net/manual/en/reserved.variables.session.php

    【讨论】:

    • 所以你是说我不应该看到我所看到的行为,并且每台机器都应该能够拥有自己的 cookie 价值?
    • 它确实...关键是ThisCookie 并且值是您设置的...所以每台机器都会返回您设置的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-30
    • 2011-10-09
    相关资源
    最近更新 更多