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

2022-01-20 0 687

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

——————————————————–

3、打开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);

 

文章来源https://www.moyublog.com/notes/1135.html

收藏 (0) 打赏

感谢您的支持,我们会继续努力的!

打开支付宝/微信/QQ扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. 本站所有教学内容和资源均来源于本站原创和网络收集以及用户自主上传,如有侵权请带证联系本站客服进行处理!邮箱:team@lcwl.fun
2. 对于非本站原创的资源不保证所提供下载资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系本站客服处理,有奖励!
3. 除本站原创教学或资源外其余资源您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 本站原创资源如需商用还请申请商业授权,否则本站有权追究其法律责任!
5. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有学币奖励额外收入!

凌晨资源网 主题模板教程 帝国CMS解决360等浏览器会重复表单提交导致加入购物车的商品数量翻倍的问题 https://www.lingchenw.cn/jishu/1167.html

常见问题
  • 本站所有付费教程均可单独付费或者开会员学习,自己购买或者开了会员就可以学习,来凌晨学院报名学习送会员,并且有讲师一对一辅导培训教学,师生互动化,定期布置作业等
查看详情
  • 本站所有资源版权均属于原作者所有,资源中标注可商用的可以商用的代表是本团队自主研发公布可商用的产品,未标注可商用所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务

学习手机编程软件开发
手机编程软件开发

你知道吗?用手机也能开发制作软件,满足自己的编程心,做属于自己的软件

报名学习
自媒体短视频
副业做自媒体短视频

想做自媒体短视频剪辑给自己多一份副业,只需一部手机你也可以

报名学习
搭建网站必备云互联主机
链未云互联

搭建网站,后台云服务等必备云服务器互联主机,IDC云主机

现在使用
Fa快捷助手
用手点一点就能开发做软件

不用记编程语法,不用一行一行手敲代码,用手点一点就能开发制作软件

点击下载