我有这样的地址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”文件。它包含所有会话变量。
经过一些处理后,我将他/她重定向到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)
答案 0 :(得分:1)
Cake有一个设置,用于检查浏览器的用户代理。如果它改变将破坏会话。关闭此设置:
Session.checkAgent