我遇到了CakePHP應用程序的問題。這似乎只發生在IE中,並且僅在某些計算機上。它在發生這種事情的計算機上是一致的。CakePHP Cookie /會話問題
問題之一: 用戶已經登錄並https://example.com/users/view在頁面上點擊並註銷。用戶被重定向到http://example.com,並且似乎被註銷,直到用戶訪問另一個https頁面,並且他們仍然登錄。他們可以多次單擊註銷,但他們總是通過https登錄並僅登錄HTTP。
問題二:在https://example.com/users/signin他們將被重定向到http://example.com現在出現 用戶日誌中記錄用戶去https://example.com/admin/slides,不知道它,但現在已經退出,點擊任何其他網頁上(。或者刷新當前頁面)會要求他們重新登錄。
我不知道發生了什麼事。我已閱讀並嘗試瞭解決這兩個類似問題的解決方案:Session not saving when moving from ssl to non-ssl和Cookie not renewing/overwriting in IE,但我仍然遇到同樣的問題。 (我不知道這是否意味着什麼)是當我在HTTP頁面上同時調試$_SESSION
和$this->Session->read()
時總是隻有$ this-> Session-> read()返回一個值。在HTTPS頁面上,一些總是返回相同的值,其他人總是隻返回$ this-> Session-> read()的值。
例如,http://example.com和https://example.com/users從來沒有看到$ _SESSION,https://example.com/carts總是看到$ _SESSION。我不確定,但我想,也許安全頁面應該看到它,因爲有些不可能有可能是錯誤的,但是當我檢查代碼時,我看不出有什麼區別,說明它爲什麼會這樣做,噸。
此外,如果我將$this->Session->destroy()
添加到AppController中的beforeFilter,那麼所有頁面甚至HTTP都可以看到$ _SESSION。我實際上並沒有在我的應用程序中使用$ _SESSION,我只是認爲這可能是什麼錯誤的線索。
UPDATE
我tooked古斯塔夫·伯特倫的意見,並看了看用戶代理字符串。我將計算機上遇到問題的IE瀏覽器的用戶代理字符串與計算機上沒有問題的IE進行了比較。除了有問題的用戶代理字符串中有「谷歌瀏覽器框架」之外,它們是相同的。我從那臺電腦上卸載了Google Chrome Frame,重新啓動,再次嘗試,問題似乎解決了。
如果這是真正的原因,那麼簡單的解決方案是讓用戶卸載Chrome框架。不過,我想知道是否有解決方案可以讓他們安裝鉻框架並仍能正常工作。
(我認爲你已經淘汰了平常的緩存嫌疑人。)哪些版本的IE?修改頁面標題(緩存控制,等 - 請參閱http://support.microsoft.com/kb/234067)有什麼影響? – OpenSorceress
會話內容是亂碼還是其他?可能是安全選項.. – Dunhamzzz
頁面是否有任何Flash內容?您是否嘗試將會話安全性從HIGH更改爲LOW? – binoy