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

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

学习教程tuzi2022-09-03 15:30:52A+A-

最近在用帝国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);

结束!点赞!


点击这里复制本文地址

声明

本站发布所有广告信息、下载资源,均来自互联网,非本站自制,与本站无关。 如有侵犯您的合法权益请来信告之。我们会在三个工作日内予以清除。


本站中所有资料、资源文件均来自于网络搜索,仅作为技术学习研究之用,请必须在24小时内删除所下载文件,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。


本站保证站内提供的所有可下载资源(软件等等)都是按“原样”提供,本站未做过任何改动;但本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。 


访问本站的用户必须明白,[资源爱好者]对提供下载的软件等不拥有任何权利,其版权归该下载资源的合法拥有者所有。


本站所有资源均不提供相关技术服务,如果源码下载地址失效则请联系站长进行补发。


本站所有资源展现图片仅供参考

资源爱好者 © 本站发布所有资源,均来自互联网,非本站自制,分享目的仅供大家学习与参考,与本站无关。
如有侵犯您的合法权益请来信告之。我们会在三个工作日内予以清除。邮箱:admin?aihao.org
关于我们|广告合作|网站地图|冀ICP备14009590号|冀公网安备 13018302000072号