PHP会话用户代理变更后销毁(PHP session is destroyed after user

2019-10-17 17:38发布

我有这样的地址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的iPhone”应用程序发生。 我猜会话文件,因为用户代理的变化删除了,但我不知道。 可能是什么原因呢?

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

Answer 1:

蛋糕已经将检查浏览器的用户代理设置。 如果它的变化会破坏了会议。 关闭这项设定:

Session.checkAgent



文章来源: PHP session is destroyed after user agent change