【问题标题】:Where the php cookies are stored?php cookie 存储在哪里?
【发布时间】:2012-05-28 03:13:33
【问题描述】:

php 手册有这样的 setcookies 语法

setcookie ($name, $value, $expire, $path, $domain, $secure, $httponly) 

据说cookies存储在客户端的远程。该语法具有路径 var,如果应用了 cookie,它将存储在服务器端。

现在假设我提到路径变量“/”。在名为 denish 的用户上登录,我为用户名创建了一个 cookie,用于记住我的功能

setcookie('site_username','denish',time + 3600,'/','.xyz.com')

现在每次不同的用户登录。它会覆盖以前的 cookie 还是创建新的 cookie?

如果我想创建一个 cookie 客户端并且还想应用 $domain var。有可能吗?

【问题讨论】:

    标签: php cookies


    【解决方案1】:

    Cookie 始终存储在客户端中。该路径仅对哪些远程页面可以访问所述 cookie 设置限制。例如,如果您使用路径“/foo/”设置 cookie,则只有目录“/foo/”和“/foo/”子目录中的页面可以读取 cookie。

    域做同样的限制,只对子域。

    同名的 Cookie 会互相覆盖,是的。

    我认为由于安全问题,您不能将 cookie 设置到您所在页面以外的其他域。

    【讨论】:

      【解决方案2】:

      您对 manual 中路径参数的使用不正确:

      cookie 可用的服务器上的路径。

      Cookie 始终存储在客户端的机器上。

      【讨论】:

      • 是的,你是对的。我理解路径不正确。谢谢。
      【解决方案3】:

      如果您使用不同的$paths,您可以拥有两个同名的 cookie。

      setcookie("foobar", "root", time()+3600, "/");
      setcookie("foobar", "test", time()+3600, "/test");
      

      可以使用此域中的任何$path 访问第一个 cookie(根),/test/* 除外。在/test/* 中只能访问第二个cookie。这两个 cookie 都由用户的浏览器存储,浏览器根据哪个 cookie 的 $path 与当前 URL 匹配来决定提供哪个 cookie。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-10
        • 2010-10-20
        • 2016-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-29
        • 1970-01-01
        相关资源
        最近更新 更多