解決辦法:首先試試back()或go(-2),若依然不行,則取消禁用頁面緩存的限制
session_cache_limiter('private,must-revalidate');
作用:當session_cache_limiter('private')時,用處是讓表單history.go(-1)的時候,填寫內(nèi)容不丟失。
go(-2)后再forward(1).
為什么我在點擊瀏覽器的后退按鈕后,所有字段的信息都被清空了
答:這是由于你在你的表單提交頁面中使用了 session_start 函數(shù)。
因為我們后退瀏覽的是緩存頁,而該函數(shù)會強制當前頁面不被緩存。所以出現(xiàn)了’警告: 網(wǎng)頁已經(jīng)過期!’.
這些信息,而我們不得不刷新下才能正確顯示,對于一個程序人員來說有可能無所謂,但是對于一個internet網(wǎng)上的一個顧客來說,看到該頁面,他有可能關(guān)閉該頁面,而不會去查看這些信息!
還有一個原因就是當一個網(wǎng)站流量比較大的時候,緩存是我們程序人員最好的工具,如果失去了這把工具,那么你所在的虛擬服務(wù)器必將受到考驗!
解決辦法為,
1、不使用session_start()函數(shù)。
2、在你的 Session_start 函數(shù)后加入 header("Cache-control: private"); 注意在本行之前你的PHP程序不能有任何輸出。
還有基于session的解決方法,在session_start前加上
session_cache_limiter('nocache');// 清空表單
session_cache_limiter('private'); //不清空表單,只在session生效期間
session_cache_limiter('public'); //不清空表單,如同沒使用session一般
在開發(fā)過程中,往往因為表單出錯而返回頁面的時候填寫的信息都不見了,為了支持頁面回跳,可以通過兩種方法實現(xiàn)。
第一,使用Header方法設(shè)置消息頭Cache-control
引用:
header(’Cache-control: private, must-revalidate’); //支持頁面回跳
第二,使用session_cache_limiter方法
session_cache_limiter('private, must-revalidate'); //注意要寫在session_start方法之前
<meta http-equiv="Cache-Control" CONTENT="private,must-revalidate">
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號