新聞中心
為什么PHP的get提交表單數(shù)據(jù)多時(shí)會遺失許多數(shù)據(jù)
因?yàn)閡rl有長度限制。不同的瀏覽器限制也是不一樣的。
公司主營業(yè)務(wù):網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出柳州免費(fèi)做網(wǎng)站回饋大家。
尤其是數(shù)據(jù)中存在中文的時(shí)候。轉(zhuǎn)碼后的中文字符非常多。
大數(shù)據(jù)量使用get傳遞,可能短時(shí)間沒問題,但隨時(shí)有可能發(fā)現(xiàn)意想不到的問題。始終存在不確定性。
所有當(dāng)數(shù)據(jù)量比較大的時(shí)候,應(yīng)該使用post傳遞比較穩(wěn)妥。
PHP表單提交后無法獲得數(shù)據(jù)
你訪問的是文件路徑,并不是服務(wù)地址;
你訪問Localhost或127.0.0.1,具體要看你指向的目錄
thinkphp點(diǎn)擊瀏覽器回退按鈕表單數(shù)據(jù)就沒了
禁用瀏覽器后退按鈕
問題描述:比如有一個(gè)在線測試的頁面,當(dāng)用戶提交頁面之后,調(diào)到呈現(xiàn)測試結(jié)果的頁面(這個(gè)頁面中會給出參考答案之類的),這個(gè)時(shí)候就不能讓用戶再后退到之前的測試頁面進(jìn)行重新做題,然后提交了。有人可能會說,將用戶做兩次這樣的情況放到服務(wù)器端的業(yè)務(wù)部分進(jìn)行驗(yàn)證不就行了嗎?這樣是可以的,但是卻增加了服務(wù)器端的負(fù)擔(dān)(要先去數(shù)據(jù)庫中查找相應(yīng)的記錄,然后再判斷)。我們想著是將這個(gè)功能盡量轉(zhuǎn)移到客戶端去做。下面是一些方法:
(1)參考文獻(xiàn)()
scriptlanguage="JavaScript"
javascript:window.history.forward(1); //我目前先用著這個(gè)
/script
利用JS產(chǎn)生一個(gè)“前進(jìn)”的動作,以抵消后退功能,這種方法應(yīng)該是最簡潔的,并且不需要考慮用戶連點(diǎn)兩次或多次“后退”的情況,缺點(diǎn)是當(dāng)用戶端禁用了JavaScript之后即失效。
(2)
AHREF="logout.do"onclick="javascript:location.replace(this.href); event.returnValue=false;"
Logout(Back Disabled)
/A
這種方法用鏈接頁面的URL替換了當(dāng)前的歷史紀(jì)錄,這樣瀏覽歷史記錄中就不會有本頁面,后退按鈕將不能回到本頁面。用戶點(diǎn)擊“Logout”鏈接注銷并執(zhí)行新頁面,這時(shí)當(dāng)用戶點(diǎn)擊“后退”按鈕將不能回到本頁,而是回到在本頁之前打開的那個(gè)頁面。
也就是說,這種方法清除的是最后一個(gè)訪問歷史記錄,而不是全部的訪問記錄,這是該方法的一個(gè)缺點(diǎn),當(dāng)然可以在每一個(gè)業(yè)務(wù)頁面都添加這段代碼作為保護(hù)。另外,和上一種方法相同,當(dāng)用戶端禁用了JavaScript之后即失效。
3、
scriptlanguage="JavaScript"
functionlogout()
{
window.close(true);
window.open("logout.do");
}
/script
buttononClick="logout()"Logout/button
這種方法比較偷懶,關(guān)掉瀏覽器再重新開,經(jīng)過我的測試在視覺上幾乎感覺不出來延時(shí),同時(shí)又保證了后退按鈕不可用(新窗口瀏覽器后退按鈕為灰色),看起來似乎是個(gè)好方法,但缺點(diǎn)也比較明顯:
首先,關(guān)閉和重開的瀏覽器窗口大小可能不同,用戶可以明顯看出這一過程,并且在一定程度上影響操作。
其次,同上,這是一個(gè)JavaScript方法。
以上方法都是針對“后退”按鈕作出的反應(yīng),客戶端瀏覽器需要打開JavaScript代碼,下面嘗試從另一角度來解決這一問題:
4、禁止緩存
%
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Cache-Control", "no-store");
response.setDateHeader("Expires", 0);
response.setHeader("Pragma", "no-cache");
%
這種方法使用服務(wù)器端腳本,強(qiáng)制瀏覽器重新訪問服務(wù)器下載頁面,而不從緩存讀取,結(jié)合strutsjsp頁面中的logic標(biāo)簽實(shí)現(xiàn)重新定向。
以上各種方法都有一定的局限,雖然是一個(gè)小問題,可是考慮到頁面安全的因素,卻不得不重視。更多問題到問題求助專區(qū)()
php提交表單,點(diǎn)擊錯(cuò)誤彈出框的確定按鈕之后,跳轉(zhuǎn)回原來頁面,怎樣保存原有信息?
可以將接收的數(shù)據(jù)再返回并填充表單,以下是一個(gè)網(wǎng)友的解決方法,貼出如下:
在開發(fā)過程中,經(jīng)常會出現(xiàn)表單出錯(cuò)而返回頁面的時(shí)候填寫的信息全部丟失的情況,為了支持頁面回跳,可以通過以下兩種方法實(shí)現(xiàn)。
1.使用header頭設(shè)置緩存控制頭Cache-control。
header('Cache-control: private, must-revalidate'); //支持頁面回跳
2.使用session_cache_limiter方法。
session_cache_limiter('private, must-revalidate'); //要寫在session_start方法之前
下面的代碼片斷可以防止用戶填寫表單的時(shí)候,單擊“提交”按鈕返回時(shí),剛剛在表單上填寫的內(nèi)容不會被清除:
session_cache_limiter('nocache');
session_cache_limiter('private');
session_cache_limiter('public');
session_start();
參考地址:
網(wǎng)站題目:php表單后數(shù)據(jù)丟失 php表單后數(shù)據(jù)丟失了
URL網(wǎng)址:http://fisionsoft.com.cn/article/doocdsc.html