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

时间:2010-11-17 15:19:23

标签: php session codeigniter cookies

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

除了Safari和所有Internet Explorer之外,它适用于所有其他浏览器(Mac和PC版本)。例如,在Firefox中,我可以看到初始会话ID在客户端cookie和数据库中设置,我可以根据需要进行尽可能多的调用以及更多页面刷新,并且在cookie和数据库中仍然具有相同的会话ID 。对于Safari,在每次页面刷新时,我都可以看到新会话被添加到我的会话表中。

关于这里发生了什么的任何想法?

3 个答案:

答案 0 :(得分:1)

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

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

希望这有帮助。

答案 1 :(得分:0)

显然,会话cookie并没有“粘贴”在Safari中。由于它是由Javascript设置的,你将不得不围绕Safari的调试器(无论是什么/无论在哪里),看看有什么东西在爆炸。也许安全模型不允许第三方javascript设置cookie,或浏览器本身不允许第三方cookie,期限。

答案 2 :(得分:0)

搜索session_start()并粘贴此函数的逻辑...