【问题标题】:PHP session is destroyed after user agent change用户代理更改后 PHP 会话被销毁
【发布时间】:2013-02-25 18:36:03
【问题描述】:

我有这样的地址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)

【问题讨论】:

    标签: php iphone session cakephp session-management


    【解决方案1】:

    Cake 有一个设置会检查浏览器的用户代理。如果它更改将破坏会话。关闭此设置:

    Session.checkAgent

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-12
      • 2012-05-25
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      • 2012-05-21
      • 2011-02-01
      相关资源
      最近更新 更多