欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

表單提交錯誤后返回內(nèi)容消失問題的解決方法(PHP網(wǎng)站)

 更新時間:2015年10月20日 17:16:27   投稿:lijiao  
這篇文章主要介紹了表單提交錯誤后返回內(nèi)容消失問題的解決方法,需要的朋友可以參考下

表單提交錯誤后返回內(nèi)容消失怎么辦吶,今天就來分析解決一下這個問題。

狀況概述:

做填寫表單信息提交的時候會碰到一個問題就是當(dāng)用戶填寫并提交表單后,程序判斷不符合要求并返回,返回之后之前填寫的表單信息會被清空了的情況。如果填寫的信息量少還無所謂,如果填寫的信息量比較多,這會直接打擊到填寫信息的人的良好心情。因此解決表單提交錯誤返回后填寫的內(nèi)容消失的問題是一個提高用戶體驗度的迫在眉睫的問題。
對于這種問題,綜合總結(jié)了大概有下面幾種情況:
(1)頁面使用了session_start函數(shù),這個函數(shù)有個特點就是會強(qiáng)制當(dāng)前頁面不被刷新,解決方法就是在此函數(shù)后加上下面這段代碼:

header("Cache-control:private");//注意在本行之前你的PHP程序不能有任何輸出 

還有其他的幾種解決方法是在session_start前加上

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

上面的設(shè)置session會使seesion出現(xiàn)緩存的現(xiàn)象,從而導(dǎo)致當(dāng)你應(yīng)用到session的地方會出現(xiàn)session信息不能更新的問題,鑒于這個原因,本文提出下面幾種其他的解決辦法。
 (2)使用Header方法設(shè)置消息頭Cache-control,在頁面加入下段代碼:
header('Cache-control: private, must-revalidate');  //支持頁面回跳,注意本行之前不能有任何輸出
(3)使用session_cache_limiter方法,在頁面加入下段代碼:
session_cache_limiter('private, must-revalidate'); //注意要寫在session_start方法之前
下面對Cache-Control消息頭域做一下補(bǔ)充說明:
Cache-Control指定請求和響應(yīng)遵循的緩存機(jī)制。在請求消息或響應(yīng)消息中設(shè)置Cache-Control并不會修改另一個消息處理過程中的緩存處理過程。請求時的緩存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if- cached,響應(yīng)消息中的指令包括public、private、no-cache、no-store、no-transform、must- revalidate、proxy-revalidate、max-age。各個消息中的指令含義如下:

Public:指示響應(yīng)可被任何緩存區(qū)緩存。

Private:指示對于單個用戶的整個或部分響應(yīng)消息,不能被共享緩存處理。這允許服務(wù)器僅僅描述當(dāng)用戶的部分響應(yīng)消息,此響應(yīng)消息對于其他用戶的請求無效。

no-cache:指示請求或響應(yīng)消息不能緩存 

no-store:用于防止重要的信息被無意的發(fā)布。在請求消息中發(fā)送將使得請求和響應(yīng)消息都不使用緩存。 

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

min-fresh:指示客戶機(jī)可以接收響應(yīng)時間小于當(dāng)前時間加上指定時間的響應(yīng)。

max-stale:指示客戶機(jī)可以接收超出超時期間的響應(yīng)消息。如果指定max-stale消息的值,那么客戶機(jī)可以接收超出超時期指定值之內(nèi)的響應(yīng)消息。

讀完這篇文章大家再遇到類似問題就可以徹底解決了,特別提醒的是這個解決方法僅針對php網(wǎng)站,可記住了。

相關(guān)文章

最新評論