程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 用PHP程序實現支持頁面後退的兩種方法

用PHP程序實現支持頁面後退的兩種方法

編輯:PHP綜合
  第一,使用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");

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved