代码之家  ›  专栏  ›  技术社区  ›  Steven Mercatante Dimitri Kopriwa

Facebook/IE8-会话未被持久化

  •  5
  • Steven Mercatante Dimitri Kopriwa  · 技术社区  · 14 年前

    我有一个Facebook iFrame应用程序(用PHP编写),当我在IE8中运行它时,我的会话数据不会被持久化。

    我设置了两个测试页面:第一个页面定义了 $_SESSION['foo'] = 'bar' print_r($_SESSION) . 第二页还调用 打印(美元会话)

    我试着从我的页面中删除任何Facebook javascript,认为它可能会有干扰,但这并没有解决任何问题。

    任何帮助都将不胜感激,谢谢!

    2 回复  |  直到 14 年前
        1
  •  23
  •   Steven Mercatante Dimitri Kopriwa    14 年前

    经过更多的研究,这是Facebook iframe应用和Internet Explorer的一个具体问题。幸运的是,解决方案非常简单,我只需要添加以下代码 header('P3P: CP="CAO PSA OUR"'); 现在一切正常!

    经过更多的研究,这个问题并不是Facebook特有的,只是iframes。这与第三方cookie以及Internet Explorer(和Safari)如何处理它们有关。我想指出的是,标题代码适用于IE,但不适用于Safari。

        2
  •  1
  •   Eddie    12 年前

    这是最终成功的原因(我不知道为什么),但这是罪魁祸首。。。

    经过几天的调试,我发现我的脚本有一个图像标记,其中包含一个错误的src引用,如下所示:

    <img src="">
    

    <img src="./images/myimage.gif">
    

    更正空src引用之后,一切都正常工作,甚至在IE8中也正确设置了PHP会话。信不信由你,这就是没有设置PHP会话的原因。

    我仍然不知道,但这之后一切都很好。我得研究一下为什么会出现这样的问题。如果有人知道原因,请张贴答案。