2010-10-14 63 views
1

在Apache服務器上,我在由htaccess(/ main/profile)保護的文件夾中設置了一組配置文件頁面。在用戶更新他們的配置文件後,我想設置一個$ _SESSION ['timelineuser'] =或會話cookie,以便在不安全的站點主文件夾(/ main /)中使用。當從https轉到http頁面時,會話變量和cookie在IE中消失

在不安全的頁面上,我想檢查$ _SESSION ['timelineuser']是否存在。在Firefox,Chrome等中運行良好。在IE8中,行爲很奇怪 - 在更新後單擊http://鏈接返回主頁面時,$ _SESSION(和其他測試中的cookie)不會顯示你的個人資料。但是,如果刷新瀏覽器,它確實會顯示

它與我從安全頁面鏈接的方式有關。如果我有一個href =「/ main/index.html」它可以工作,但會引發安全警告。如果我在IE中有一個href =「http://www.foo.com/main/index.html」(我希望它去的地方),那麼在主頁面加載之前會有一個簡短的黑屏。

與從https轉到http有什麼關係?

+1

嘗試向鏈接添加一個隨機查詢變量/值,例如'href =「/ index/main.html?cachebuster = <?php echo time()?>」',這應該強制瀏覽器請求頁面的新副本,而不是僅提供緩存副本。 – 2010-10-14 21:52:46

回答

2

是的。根據我的經驗,設置在子域名「www.mydomain.org」上的Cookie並不總是可以在頂級域名「mydomain.org」上訪問。我總是建議客戶永遠不要提供'www'。在域,路徑等安裝博客軟件包等,因爲然後f.ex.一個網上商店後臺我的代碼只能訪問'www。'如果從包含「www。」的網址導航到Cookie,即。 'www.mydomain.org/webshop/index.php'。

Marc的建議非常適合那些絕對不能陳舊的內容,在登錄頁面上說東西,或者用相同的文件名重新上傳圖片 - 只需在隨機生成的字符串上打一個像img src =「avatar。 jpg「:)