代码之家  ›  专栏  ›  技术社区  ›  roflwaffle

PHP为每次页面加载创建新会话

  •  2
  • roflwaffle  · 技术社区  · 14 年前

    我正在使用Codeigniter 1.7.2和 OBsession 用于处理会话并将其存储在数据库中的库。我正在开发的应用程序由一个充当服务的域(带有CI的域)组成(不知道这是否是正确的术语)。其他站点包括一个来自该域的JavaScript文件,然后从那里对CI域进行AJAX调用。如果站点没有会话id,则CI域返回从该调用创建的会话id,然后站点上的JS使用该会话id设置cookie。从那时起,如果站点对CI域进行任何调用,则它将包含该会话id以标识自身。

    除Safari和所有Internet Explorer外,其他所有浏览器(Mac和PC版本)都可以使用此功能。例如,在Firefox中,我可以看到在客户端cookie和数据库中设置的初始会话id,我可以进行任意数量的调用和任意数量的页面刷新,它在cookie和数据库中仍然具有相同的会话id。对于Safari,在每次页面刷新时,我都可以看到新的会话被添加到会话表中。

    有什么想法吗?

    3 回复  |  直到 14 年前
        1
  •  1
  •   kubilayeksioglu    14 年前

    Safari和Internet Explorer(中等安全级别)默认不接受第三方cookie。谷歌搜索带来:

    http://squeeville.com/2010/02/03/third-party-cookies-in-safari-internet-explorer/

    希望这有帮助。

        2
  •  0
  •   Marc B    14 年前

    很明显,会话cookie在Safari中不是“粘滞”的。因为它是由Javascript设置的,所以您必须查看Safari的调试器(无论它在哪里/在什么地方)并查看发生了什么。也许安全模型不允许第三方javascript设置cookie,或者浏览器本身不允许第三方cookie,period。

        3
  •  0
  •   powtac    14 年前

    搜索 session_start() 在这个函数周围粘贴逻辑。。。