最新公告
  • 欢迎您光临002y资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 解决帝国CMS在360浏览器会重复表单提交导致加入购物车的商品数量翻倍的问题!

    正文概述    2022-09-04   6751

    最近在用帝国cms商城的购物车功能时发现,用360浏览器将商品加入购物车后,购物车产品的数量会翻倍,后来发现是360浏览器在用submit提交表单时,会出现两次验证,导致表单重复提交。

    解决的思路就是在产品页的加入购物车的表单中添加一个随机数,用于做判断。

    然后在购物车的验证页面,建议一个COOKIE缓存字段,每次产品加入购物车,在验证页面中,通过判断COOKIE缓存字段的值是否和get传递过来的随机数相同,来确定表单是否重复提交。

    如果相同,该产品则不加入购物车,并将COOKIE缓存字段的值清空。

    如果不相同,则将该产品加入购物车,并将COOKIE缓存字段的值设置为get传递过来的随机数。

    这样浏览器如果出现重复提交,COOKIE缓存字段的值就会与get传递过来的随机数相同,便可以阻止表单重复提交;

    解决方法如下:

    1、在帝国cms产品模板的加入购物车的表单中加入以下代码

    <input type="hidden" name="gd_yanzhenghao" value="" id="gd_yanzhenghao">

    //建立一个判断用的随机数

    2、在表单的提交按钮中加入:

    onclick="alpj_gongdanhao()"

    也就是在 <input name="submit" type="submit"····> 这一行中加入;

    3、在产品页加入以下js

    <script>
    function alpj_gongdanhao() {
    	var prefix = '';
    	for (var j = 0; j < 12; j++) {
    		prefix = prefix + Math.floor(Math.random() * 15);
    		}
    	var pj_showGD =prefix;
    	document.getElementById("gd_yanzhenghao").value = pj_showGD;
    }
    
    //获取文本框的值,若文本框为空则自动生成随机日期
    function SJ_PageLoad(){
    	var neirong_sj = document.getElementById("gd_yanzhenghao").value;
    	if ( neirong_sj == null || neirong_sj == undefined || neirong_sj=="" ){
    	console.log( alpj_gongdanhao() );//自动执行上方函数然后自动输入一个随机工单号
    
    }
    }
    </script>
    

    4、打开eadminShopSysclasshShopSysFun.php文件

    找到以下函数:

    //加入购物车

    function AddBuycar($classid,$id,$pn=1,$add){

    在该函数的结尾加上一个“}”符号

    然后在该函数中找到以下代码,约在该函数的第五行:

    if(empty($classid)||empty($id)||empty($class_r[$classid][tbname]))

    在其上方加入以下代码:

    //判断浏览器是否重复提交了表单
    	$gd_chongfuPD=$_COOKIE["gd_chongfuPD"];
    	if($gd_chongfuPD==$_GET['gd_yanzhenghao']){
    		$gd_chongfuPD='';
    		// 发送一个缓存cookie用做判断
    		setcookie("gd_chongfuPD",$gd_chongfuPD);
    		header("location:/e/ShopSys/buycar/");
    	}else{
    		$gd_chongfuPD=$_GET['gd_yanzhenghao'];
    		// 发送一个缓存cookie用做判断
    		setcookie("gd_chongfuPD",$gd_chongfuPD);
    

    结束!点赞!


    002y资源网 » 解决帝国CMS在360浏览器会重复表单提交导致加入购物车的商品数量翻倍的问题!

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    微信支付
    余额支付
    ×
    微信扫码支付 0 元