最近在用帝國(guó)cms商城的購(gòu)物車(chē)功能時(shí)發(fā)現(xiàn),用360瀏覽器將商品加入購(gòu)物車(chē)后,購(gòu)物車(chē)產(chǎn)品的數(shù)量會(huì)翻倍,后來(lái)發(fā)現(xiàn)是360瀏覽器在用submit提交表單時(shí),會(huì)出現(xiàn)兩次驗(yàn)證,導(dǎo)致表單重復(fù)提交。
解決的思路就是在產(chǎn)品頁(yè)的加入購(gòu)物車(chē)的表單中添加一個(gè)隨機(jī)數(shù),用于做判斷。
然后在購(gòu)物車(chē)的驗(yàn)證頁(yè)面,建議一個(gè)COOKIE緩存字段,每次產(chǎn)品加入購(gòu)物車(chē),在驗(yàn)證頁(yè)面中,通過(guò)判斷COOKIE緩存字段的值是否和get傳遞過(guò)來(lái)的隨機(jī)數(shù)相同,來(lái)確定表單是否重復(fù)提交。
如果相同,該產(chǎn)品則不加入購(gòu)物車(chē),并將COOKIE緩存字段的值清空。
如果不相同,則將該產(chǎn)品加入購(gòu)物車(chē),并將COOKIE緩存字段的值設(shè)置為get傳遞過(guò)來(lái)的隨機(jī)數(shù)。
這樣瀏覽器如果出現(xiàn)重復(fù)提交,COOKIE緩存字段的值就會(huì)與get傳遞過(guò)來(lái)的隨機(jī)數(shù)相同,便可以阻止表單重復(fù)提交;
解決方法如下:
1、在帝國(guó)cms產(chǎn)品模板的加入購(gòu)物車(chē)的表單中加入以下代碼
//建立一個(gè)判斷用的隨機(jī)數(shù)
2、在表單的提交按鈕中加入:
onclick="alpj_gongdanhao()"
也就是在 這一行中加入;
3、在產(chǎn)品頁(yè)加入以下js
4、打開(kāi)eadminShopSysclasshShopSysFun.php文件
找到以下函數(shù):
//加入購(gòu)物車(chē)
function AddBuycar($classid,$id,$pn=1,$add){
在該函數(shù)的結(jié)尾加上一個(gè)"}"符號(hào)
然后在該函數(shù)中找到以下代碼,約在該函數(shù)的第五行:
if(empty($classid)||empty($id)||empty($class_r[$classid][tbname]))
在其上方加入以下代碼:
//判斷瀏覽器是否重復(fù)提交了表單
$gd_chongfuPD=$_COOKIE["gd_chongfuPD"];
if($gd_chongfuPD==$_GET['gd_yanzhenghao']){
$gd_chongfuPD='';
// 發(fā)送一個(gè)緩存cookie用做判斷
setcookie("gd_chongfuPD",$gd_chongfuPD);
header("location:/e/ShopSys/buycar/");
}else{
$gd_chongfuPD=$_GET['gd_yanzhenghao'];
// 發(fā)送一個(gè)緩存cookie用做判斷
setcookie("gd_chongfuPD",$gd_chongfuPD);
結(jié)束!點(diǎn)贊!
版權(quán)聲明: 本站資源均來(lái)自互聯(lián)網(wǎng)或會(huì)員發(fā)布,如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!
轉(zhuǎn)載請(qǐng)注明: 解決帝國(guó)CMS在360瀏覽器會(huì)重復(fù)表單提交導(dǎo)致加入購(gòu)物車(chē)的商品數(shù)量翻倍的問(wèn)題!