2013-02-25 81 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