【问题标题】:ie8 session problemie8会话问题
【发布时间】:2011-05-23 12:13:14
【问题描述】:
session_start();
//If user was logged in then returns true,
//if user was NOT logged in then it returns false;
//except on ie8 this returns ALWAYS false, and never true
var_dump($this->user->is_logged_in());

$_POST['username'] = 'test';//username = test
$_POST['password'] = 'test';//pass     = test
var_dump($this->user->login());//bool //true/
var_dump($this->user->is_logged_in());//bool true
die();

这就是我在脚本上调试脚本并找出问题所在... 问题在于,在“仅限 ie8”上,会话似乎并没有留下来,并且总是在每次请求时不断删除。

我还应该提到b4这个代码有ob_start()

这让我发疯:(帮助任何人? 如果需要更多信息,我会添加它们。

【问题讨论】:

  • 这有关系吗? stackoverflow.com/questions/794243/… 另外,这只是IE 8中的情况,还是其他版本也会出现这种情况?
  • 仅限 ie8,我检查了 ie6、ie7、ie9 都很好,ff 3.6 + 和 chrome 它工作正常,除了 ie8 有自己的想法
  • 只是阅读您上面的链接他们的意思是 $_SESSION['_bla_bla'] = 'Hello'; 不允许在 ie8 上使用吗?因为下划线?
  • @Val:不,这意味着如果你有例如http://test_domain.example.com/yourscript.php,然后下划线 在域名中 将导致 cookie 未保存(因此会话未保存)。然而,这在每个 IE 中都会发生,至少从版本 6 及更高版本开始。
  • 哦,好吧,那么在这种情况下,这不是问题,域名是这样的。 "www.domain.name.sch.uk"

标签: php session internet-explorer-8


【解决方案1】:

需要检查的一些事项:

您是否在回复中发送了正确的 P3P 标头?

如果您不发送 P3P 标头,IE 似乎在 Internet 区域站点上的 cookie 存在问题。您应该在每个响应中发送类似这样的内容:

P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM"

参见此处:http://msdn.microsoft.com/en-us/library/ms537343(v=VS.85).aspx

它是否适用于其他兼容模式?

我在使用 IE8 时遇到了 cookie 问题,除非它的 X-UA-Compatible 标头设置为 IE=EmulateIE7,但您的情况可能会有所不同。

【讨论】:

  • P3P?我第一次听说所以可能不,我不是,它适用于 ie6,ie7 更容易搞砸
  • 除了 ie6 你放的链接,我的问题是 ie 8 lol
  • @Val:P3P 是在 IE6 中引入的,它从未被退出,所以它在 IE7、IE8、IE9 中,可能也在 IE10 中。
  • 如果我关闭保护模式,它确实可以工作...在工具、选项、隐私上
  • 我还发现,Val,在隐私中关闭保护后,无论标题是否存在,它都可以正常工作,但如果打开保护(默认情况下),那么它不会没有标题的工作。这是在 IE8 中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
  • 2013-02-04
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多