用PHP程式實現支援頁面後退的兩種方法

來源:互聯網
上載者:User

第一,使用Header方法設定訊息頭Cache-control

QUOTE:
header('Cache-control: private, must-revalidate'); //支援頁面回跳

第二,使用session_cache_limiter方法

QUOTE:
//注意要寫在session_start方法之前
session_cache_limiter('private, must-revalidate');

補充:
Cache-Control訊息頭域說明
Cache-Control指定請求和響應遵循的緩衝機制。在請求訊息或響應訊息中設定Cache-Control並不會修改另一個訊息處理過程中的緩衝處理過程。請求時的緩衝指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if- cached,響應訊息中的指令包括public、private、no-cache、no-store、no-transform、must- revalidate、proxy-revalidate、max-age。各個訊息中的指令含義如下:

Public指示響應可被任何緩衝區緩衝。

Private指示對於單個使用者的整個或部分響應訊息,不能被共用快取處理。這允許伺服器僅僅描述當使用者的部分響應訊息,此響應訊息對於其他使用者的請求無效。

no-cache指示請求或響應訊息不能緩衝

no-store用於防止重要的資訊被無意的發布。在請求訊息中發送將使得請求和響應訊息都不使用緩衝。

max-age指示客戶機可以接收生存期不大於指定時間(以秒為單位)的響應。

min-fresh指示客戶機可以接收回應時間小於目前時間加上指定時間的響應。

max-stale指示客戶機可以接收超出逾時期間的響應訊息。如果指定max-stale訊息的值,那麼客戶機可以接收超出逾時期指定值之內的響應訊息。

關於表單重新整理

問:為什麼我在點擊瀏覽器的後退按鈕後,所有欄位的資訊都被清空了?

答:這是由於你在你的表單提交頁面中使用了 session_start 函數。該函數會強制當前頁面不被緩衝。解決辦法為,在你的 Session_start 函數後加入 header("Cache-control: private"); 注意在本行之前你的PHP程式不能有任何輸出。

補充:還有基於session的解決方案,在session_start前加上

QUOTE:
session_cache_limiter('nocache');// 清空表單
session_cache_limiter('private'); //不清空表單,只在session生效期間
session_cache_limiter('public'); //不清空表單,如同沒使用session一般

可以在session_start();前加上 session_cache_limiter("private,max-age=10800");

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.