AB模板王专注于织梦源码分享、织梦模板、discuz模板、wordpress主题等网站模板,为广大站长提供网站模板以及Discuz插件等素材。
用户名:
密码:
登录
注册
织梦源码,模板王
首页
免费源码
织梦源码
VIP专区
各类模板
Discuz模板
wordpress主题
phpcms模板
phpwind模板
ecshop模板
帝国模板
html模板
手机网站模板
discuz插件
cms教程
织梦教程
Discuz教程
wordpress教程
ecshop教程
站长学院
网站seo
建站资讯
站长素材
图标素材
加入VIP
模板疑问
加入VIP
订阅我们
仿站业务
本站所有源码、模板
织梦源码
()
Discuz模板
wordpress主题
phpcms模板
phpwind模板
ecshop模板
帝国模板
html模板
手机网站模板
网站模板
>
cms教程
>
ecshop教程
>
CMS教程
织梦教程
Discuz教程
wordpress教程
ecshop教程
站长学院
网站seo
建站资讯
ecshop退出登录会清空购物车的bug优化最佳解决方法
www.adminbuy.cn / 2014-12-08
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行左右):
if (!empty($GLOBALS['ecs']))
{
$this->db->query('DELETE FROM ' .
$GLOBALS['ecs']->table('cart') . " WHERE session_id =
'$this->session_id' );
}
复制
代码
替换为:
if (!empty($GLOBALS['ecs']))
{
$this->db->query('DELETE FROM ' . $GLOBALS['ecs']->table('cart') . " WHERE session_id = '$this->session_id' AND user_id = 0");//www.lyecs.com 老杨ecshop 只清空匿名**
}
复制代码
2、找到includes/init.php
define('SESS_ID', $sess->get_session_id());
复制代码
替换为:
//判断是否存在user_id的session,避免高版本
PHP
报错
if(isset($_SESSION['user_id'])){
//如果存在
会员
登录
if($_SESSION['user_id']>0){
//取得对应user_id的session MD5码,后面加入'@lyecs.com'自定义的自符串加密。
$user_session=md5($_SESSION['user_id'].'@lyecs.com'); //'@lyecs.com'内容可自行修改
//取得之前的session_id,www.lyecs.com 老杨ecshop
$old_session=$sess->get_session_id();
//如果会员的session_id和原先的session_id不同(则为新登录情况),则将购物车内原session_id的商品,更新为会员下的商品!
if($user_session != $old_session){
$sql="update ".$GLOBALS['ecs']->table('cart')."set session_id='".$user_session."',user_id='".$_SESSION['user_id']."' where session_id='".$old_session."' ";
$GLOBALS['db']->query($sql);
}
//定义新的会员唯一session_id www.lyecs.com 老杨ecshop
define('SESS_ID',$user_session);
}else{
//不存在会员,继续用原有的session_id
define('SESS_ID', $sess->get_session_id());
}
}else{
//不存在会员,继续用原有的session_id
define('SESS_ID', $sess->get_session_id());
}
上一篇:
关于ECSHOP模板架设的服务器php版本过高报错的解决方法集合
下一篇:
ecshop退出登录会清空购物车的bug优化最佳解决方法
展开
收缩
加入VIP
仿站咨询
织梦后台定制