2014-02-24 91 views
1

測試一個在線應用程序和appcache正在工作,但是,當退出然後返回到目標php頁面if(!isset($ _ SESSION [''用戶']))將用戶返回到登錄頁面即使會話信息不存在也不起作用。會話已被銷燬,用戶未設置,並且cookie在註銷時過期。嘗試檢查cookie狀態的相同結果 - if(!isset($ _ COOKIE ['name']))。 !isset即使認爲cookie不存在也會返回False。HTML5應用程序緩存問題 - php會話 - 註銷應用程序

從html標籤中刪除清單引用,它工作正常。

感謝

+0

緩存 - 你的「登錄」頁面保存在瀏覽器的緩存並且會保持在那裏直到瀏覽器嘗試重新加載頁面,並且服務器生成它的「未登錄」版本。 –

+0

謝謝馬克。將清單文件添加到html頁面導致html被添加到appcache中,即使它沒有駐留在清單中。解決方法是加載注入html頁面到主頁面並以這種方式加載清單。 – user3343681

回答

0

在HTML標籤上的清單參考補充說,網頁,即使它沒有在清單文件中列出的應用程序緩存。在瀏覽器中查看chrome:// appcache-internals /將appcache和html頁面顯示爲主項目。

當使用appcache時,Chrome和Safari似乎忽略無chache無存儲http標頭。當注入一個iframe加載包含清單的單獨頁面時,主頁面元素不會從Chrome的緩存中檢索。

解決的辦法是檢查Cookie或sessionStorage的狀態在javascript,以確保重新登錄時,用戶沒有指向緩存頁面