2 回答

TA貢獻1797條經驗 獲得超6個贊
session_cache_limiter,它是session在客戶端的緩存方式,有nocache,private,private_no_expire,publice主這幾種。cache是屬于瀏覽器的特性,它決定你瀏覽網頁的緩存方式,沒有緩存的情況會使你按瀏覽的“后退”鍵時提示要你更新連接,之前的內容就沒有了,比如你填入的表單信息,都被丟失。
通過header("Cache-Control: no-store, no-cache, must-revalidate");函數也一樣達到效果。然而,session的處理機制里,就強制自動調用了header函數設置cache,這個置就由php.ini中的缺省值session.cache_limiter值或由session_cache_limiter函數設定所取代。session_cache_limiter內的幾個參數意義是:
nocache:當然是不緩存(比如:表單信息被清除),但公共變量可以緩存
private:私有方式緩存(比如:表單信息被保留,但在生存期內有效)
private_no_cache:私有方式但不過期(表單信息被保留)
publice:公有方式,(表單信息也被保留)它們之間的具體區別,我還不是太清楚,可以區別的是除nocache外其它的都可以緩存,private方式還受生存期影響,這個生存期應該是由session.cache_expire給定,它在php.ini中設置或session_cache_expire函數設置,缺省是180分鐘。

TA貢獻1853條經驗 獲得超18個贊
PHP中的 session_cache_limiter() 函數是指定會話頁面所使用的緩沖控制方法。
語法:
string session_cache_limiter ( [string cache_limiter])
cache_limiter 要設置的緩存限制的名字
返回緩存限制的名字
但是要值得注意的是session_cache_limiter()方法要寫在session_start()方法之前才有用。
實際應用:
在開發過程中,往往因為表單出錯而返回頁面的時候填寫的信息都不見了,為了支持頁面回跳,可以通過兩種方法實現。
第一,使用Header方法設置消息頭Cache-control
header('Cache-control: private, must-revalidate');//支持頁面回跳
第二,使用session_cache_limiter方法
//注意要寫在session_start方法之前
session_cache_limiter('private, must-revalidate');//支持頁面回跳
添加回答
舉報