PHP中的multiplet选项卡中的会话或cookie

时间:2011-06-14 20:01:06

标签: php session cookies

是否可以设置所有标签中都存在的会话变量或Cookie?

我认为firefox会在所有现有选项卡中保持会话,但我测试并发现只有会话最初设置的当前选项卡才是可用的会话。

谢谢!

编辑:

标签1:

setcookie("testcookie", "something", time()+(60*60*24*365));

标签2:

print_r($_COOKIE['testcookie']);

Tab 2仅打印一个空数组。如果我将其移动到选项卡1,它将打印出cookie。

3 个答案:

答案 0 :(得分:5)

Cookie始终发送到服务器,提供:

  • 域名匹配(包括子域名)。
  • 路径匹配(可以将cookie分配给特定路径 - 将它们分配给root表示整个域)。
  • 端口匹配。
  • 如果您将cookie设置为安全,则协议(http / https)匹配。

只要所有这些都是真的,您应该在所有选项卡上都有基于cookie / cookie的会话。您需要刷新选项卡才能看到cookie的任何效果(包括在Firefox扩展的Javascript中看到它)。

如果所有这些都是真的并且您仍然没有在所有选项卡上看到您的cookie,那么您需要进行大量调试......这不是标准行为。

答案 1 :(得分:1)

当我使用您在编辑中显示的代码进行测试时,我完全没有问题......

你可以尝试的一些事情是:

  • 清除所有来自firefox的cookie并再次运行(如果您之前设置了cookie但是使用其他设置,浏览器有时会感到困惑......
  • 尝试使用其他浏览器或其他计算机。
  • 将Cookie的路径设置为“/”,并可选择将域设置为.youdomain.com,如setcookie("testcookie", "something", time()+(60*60*24*365), "/", ".yourdomain.com");

如果您仍然无法使其正常工作,我最好的选择是清理服务器,可能需要全新安装PHP和Apache。

答案 2 :(得分:0)

要拥有通用存储空间,请使用Cookie。

Cookie是客户端 会话是服务器端