2013-02-25 78 views
1

我有这样的地址example.com/page1。例如,访问者的用户代理是这样的:Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B146。我运行session_id()和PHP会话ID是12345.我可以在临时文件夹中看到“sess_12345”文件。它包含所有会话变量。PHP会话在用户代理更改后被破坏

经过一些处理后,我将他/她重定向到example.com/page2。访问者的用户代理更改为:Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_2 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B146 Twitter for iPhone。我再次运行session_id(),发现ID仍然是12345.但是,当我检查“sess_12345”文件时,我发现它已被删除。

只有当用户从“Twitter for iPhone”应用程序访问我的网站时才会发生这种情况。我猜会话文件因用户代理更改而被删除,但我不确定。原因是什么?

(会话除了这种情况下成功运行。我使用CakePHP 2.4)

回答

1

蛋糕具有将检查浏览器的用户代理的设置。如果它改变会破坏会话。关闭此设置:

Session.checkAgent