问题描述
|
是否可以设置所有选项卡中都存在的会话变量或cookie?
我以为firefox会在所有现有选项卡上保持会话,但是经过即时测试,发现只有最初设置会话的当前选项卡才可用。
谢谢!
编辑:
标签1:
setcookie(\"testcookie\",\"something\",time()+(60*60*24*365));
标签2:
print_r($_COOKIE[\'testcookie\']);
选项卡2仅打印一个空数组。如果将其移至选项卡1,它将打印出cookie。
解决方法
Cookies始终发送到服务器,条件是:
域匹配(包括子域)。
路径匹配(可以将cookie分配给特定路径-将它们分配给root意味着整个域)。
端口匹配。
如果将cookie设置为安全,则协议(http / https)匹配。
只要所有这些都是正确的,就应该在所有选项卡上都具有基于cookie的会话。您需要刷新选项卡才能查看cookie的任何效果(包括在Firefox扩展的Javascript中查看它)。
如果所有这些都是正确的,并且您仍然没有在所有选项卡上看到cookie,则您需要进行大量调试...这不是标准行为。
, 当我测试您在编辑中显示的代码时,我一点都没有问题...
您可以尝试的一些方法是:
从firefox清除所有cookie并再次运行(如果您之前已经设置过cookie,但是使用其他设置,浏览器有时会感到困惑...
请尝试使用其他浏览器或另一台计算机。
将Cookie的路径设置为\“ / \”,并可选地将域设置为.youdomain.com,例如
setcookie(\"testcookie\",\"something\",time()+(60*60*24*365),\"/\",\".yourdomain.com\");
如果您仍然无法使它正常工作,那么我最好的选择就是清理服务器,可能是重新安装PHP和Apache。
, 要具有通用存储,请使用cookie。
Cookie是客户端
会话是服务器端