csgo通行證表單重復(fù)提交 PHP如何解決刷新頁(yè)面表單重復(fù)提交?
PHP如何解決刷新頁(yè)面表單重復(fù)提交?最常用的方法是使用令牌。即:1。生成頁(yè)時(shí)生成一個(gè)令牌(隨機(jī)字符串),并同時(shí)將其寫(xiě)入窗體和服務(wù)器會(huì)話的隱藏部分。2. 當(dāng)客戶(hù)端向服務(wù)器提交表單時(shí),它會(huì)比較表單中的令牌
PHP如何解決刷新頁(yè)面表單重復(fù)提交?
最常用的方法是使用令牌。即:
1。生成頁(yè)時(shí)生成一個(gè)令牌(隨機(jī)字符串),并同時(shí)將其寫(xiě)入窗體和服務(wù)器會(huì)話的隱藏部分。
2. 當(dāng)客戶(hù)端向服務(wù)器提交表單時(shí),它會(huì)比較表單中的令牌是否與會(huì)話中的令牌一致。否則,請(qǐng)求將被視為無(wú)效。
3. 無(wú)論第二步的驗(yàn)證是否通過(guò),只要使用一次,令牌就會(huì)作廢(即從會(huì)話中銷(xiāo)毀)。同時(shí),令牌還可以關(guān)聯(lián)時(shí)間信息,超時(shí)后自動(dòng)失效。這樣,即使客戶(hù)端重復(fù)提交,也只有第一個(gè)請(qǐng)求才能成功。
PHP如何避免表單的重復(fù)提交?
1. 使用js在單擊一次后禁用按鈕。使用該方法可以防止多次點(diǎn)擊的發(fā)生,實(shí)現(xiàn)方法簡(jiǎn)單。缺點(diǎn)是,如果客戶(hù)端禁止JavaScript腳本,它將是無(wú)效的。
2. 提交成功后執(zhí)行頁(yè)面重定向。轉(zhuǎn)到提交成功信息頁(yè)。特點(diǎn):避免F5重復(fù)提交,并消除了同樣的問(wèn)題所造成的瀏覽器前進(jìn)和后退按鈕。
3. 表單的隱藏字段存儲(chǔ)會(huì)話(請(qǐng)求表單時(shí)生成的標(biāo)記)。使用此方法,在接收到表單數(shù)據(jù)后,檢查標(biāo)志值是否存在,首先刪除標(biāo)志值,然后對(duì)數(shù)據(jù)進(jìn)行處理。如果數(shù)據(jù)不存在,則表示已提交,此提交將被忽略。
4. 數(shù)據(jù)庫(kù)唯一索引約束(防止重復(fù)數(shù)據(jù)的最有效方法)。
5. 使用驗(yàn)證碼