将 cookie 共享到本地主机上的子域

slo*_*ace 8 php cookies

我创建了一堆用于身份验证的 cookie,网站的一部分允许用户导航到该网站的英国部分。这是通过在域中使用 uk 前缀来实现的。(例如 uk.domain.com)。

我基本上有一个小脚本,用于检查子域是否称为 UK,然后我提供 UK 内容。

我怎样才能让 domain.com 上的所有 cookie 都转移到 uk.domain.com?

我试过了 ...

... 将 cookie 设置为根域

 setcookie("auth", "blahblah", time() + 123, "/", "localhost")
Run Code Online (Sandbox Code Playgroud)

... 在域的开头添加一个点

 setcookie("auth", "blahblah", time() + 123, "/", ".localhost")
Run Code Online (Sandbox Code Playgroud)

...在两个域上创建 cookie

 setcookie("auth", "blahblah", time() + 123, "/", "localhost")
 setcookie("auth", "blahblah", time() + 123, "/", "uk.localhost")
Run Code Online (Sandbox Code Playgroud)

... 创建没有任何域或路径的 cookie。

 setcookie("auth", "blahblah", time() + 123, "/")
 setcookie("auth", "blahblah", time() + 123)
Run Code Online (Sandbox Code Playgroud)

我似乎无法让它发挥作用。

slo*_*ace 7

发现您无法将 localhost 设置为 chrome 上的 cookie。它需要是注册管理机构控制的域,而不是 IP 或 Intranet 主机名。

我通过基本上将 localhost 转换为域找到了一种解决方法。

我将此添加到主机文件 (c:\windows\system32\drivers\etc\hosts) -

127.0.0.1    localhost.com    
127.0.0.1    uk.localhost.com    
Run Code Online (Sandbox Code Playgroud)

然后使用 localhost 域创建 cookie

setcookie("auth", "blahblah", time() + 123, "/", "localhost.com")
Run Code Online (Sandbox Code Playgroud)

这允许我从http://uk.localhost.com(或几乎任何子域)访问身份验证 cookie 。