栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP > php开源框架 > ecshop

ecshop退出登录会清空购物车的bug优化最佳解决方法

ecshop 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ecshop退出登录会清空购物车的bug优化最佳解决方法

ecshop退出登陆后,会清空购物车,大家都应该知道有这样的勉强算bug的问题。

网上类似的教程相当多,但都有问题,说句不好听的,算是引新手入歧途!

总结网上方法如下:

1、修改init.php,把sess_id绑定ip的。老杨点评:各种紊乱不解释。

2、修改cls_session.php,让user_id不为0的购物车商品在退出时不删除,修改lib_main.php,将购物车中sess_id换成新的session_id。

老杨点评:算是到了点子上的改法,但是在不同设置或浏览器访问时,会照成其它设备上的出问题!必须重新登录商城模板才能解决!在手机流行的年代,如果手机和pc同时登录,或两台电脑台时登录,你会崩溃的,登了这边,那边购物车就空了,除非重新登录!



3、其它的方法,各种坑,不再列举。

老杨的方法:

1、修改includes/cls_session.php

找到(268行左右):





  1. if (!empty($GLOBALS['ecs']""


  2.  


  3.         {


  4.  


  5.             $this->db->query('DELETe FROM ' . 


  6. $GLOBALS['ecs']->table('cart'" . " WHERe session_id = 


  7. '$this->session_id' ";


  8.  


  9.         }



复制代码


替换为:







  1.     if (!empty($GLOBALS['ecs']""  


  2.     {  


  3.         $this->db->query('DELETe FROM ' . $GLOBALS['ecs']->table('cart'" . " WHERe session_id = '$this->session_id' AND user_id = 0"";//www.lyecs.com 老杨ecshop 只清空匿名**  


  4.     }  



复制代码








2、找到includes/init.php





  1.     define('SESS_ID', $sess->get_session_id("";



复制代码


替换为:




  1.     //判断是否存在user_id的session,避免高版本PHP报错  


  2.     if(isset($_SESSION['user_id']""{  


  3.         //如果存在会员登录  


  4.         if($_SESSION['user_id']>0"{  


  5.             //取得对应user_id的session MD5码,后面加入'@lyecs.com'自定义的自符串加密。  


  6.             $user_session=md5($_SESSION['user_id'].'@lyecs.com'";   //'@lyecs.com'内容可自行修改  


  7.             //取得之前的session_id,www.lyecs.com 老杨ecshop  


  8.             $old_session=$sess->get_session_id(";  


  9.             //如果会员的session_id和原先的session_id不同(则为新登录情况),则将购物车内原session_id的商品,更新为会员下的商品!  


  10.             if($user_session != $old_session"{  


  11.                 $sql="update ".$GLOBALS['ecs']->table('cart'"."set session_id='".$user_session."',user_id='".$_SESSION['user_id']."' where session_id='".$old_session."' ";  


  12.                 $GLOBALS['db']->query($sql";  


  13.             }  


  14.             //定义新的会员唯一session_id  www.lyecs.com 老杨ecshop  


  15.             define('SESS_ID',$user_session";  


  16.         }else{  


  17.             //不存在会员,继续用原有的session_id  


  18.             define('SESS_ID', $sess->get_session_id("";  


  19.         }  


  20.     }else{  


  21.         //不存在会员,继续用原有的session_id  


  22.         define('SESS_ID', $sess->get_session_id("";  


  23.     }  







转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/218848.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号