2012-01-22 74 views
0

我一直在嘗試正確地管理整個使用PHP編寫的在線訂購系統中的會話。我已經按照我的意圖運行,並且允許用戶在進程中間點擊「後退」按鈕,而不用搞亂數據庫。PHP session_cache_limiter在Safari中不工作?

我唯一想做的事情就是防止在最後的「全部完成」屏幕上(或之後)使用「後退」按鈕。

在第3步(確認和繼續)和步驟4(全部完成),我已經包括了線路:

session_cache_limiter('nocache'); 
session_start(); 

這工作完全在IE瀏覽器 - 你看的頁面確認您的訂單,但你如果您嘗試點擊「返回」,請發出警告。如果您從網站導航,則同樣適用 - 您無法看到最後一步。

相同的網站在Safari(5.1.2)中似乎不起作用。我可以點擊「返回」並查看所有顯示的內容(它是從本地緩存中獲取的,而不是服務器)。

該網站不接受重複輸入,所以它不是一個大問題,但它不是我想要的功能。有誰知道如何使這項工作在Safari?

回答

1

我不認爲問題是代碼,但瀏覽器的行爲。 在Safari中,當您按下後退按鈕時,它會將您帶到之前的同一頁面,就像您在另一個選項卡中打開新頁面然後關閉它一樣,即使您將緩存設置爲「no-cache」 。相反,在Internet Explorer中,當您按回時,它會通過指向它的URL並再次加載它將您帶到上一頁。

在這裏和那裏閱讀,似乎沒有辦法來避免這種行爲,除了一個小技巧,當您按回時應該強制瀏覽器重新加載頁面:Preventing cache on back-button in Safari 5

+0

感謝您 - 我不認爲我做了任何明顯愚蠢的事情,但無法解決爲什麼它不工作。現在很高興你已經確認這是一個瀏覽器問題。我看了一下你引用的技巧,並會在今晚嘗試實現它。 –