您现在的位置是:首页 > cms教程 > Ecshop商城教程Ecshop商城教程
ecshop购物车暂无商品,购物车没有商品保存不了的解决方法
书雪2023-12-12Ecshop商城教程已有人查阅
导读这个只需要修改 includes/cls_session.php 就好了1,找到 function cls_session(...)2,找到function gen_session_key($session_id)
这个只需要修改 includes/cls_session.php 就好了
1,找到 function cls_session(...)
在函数结尾出setcookie(...)的地方把 0 改成 time()+86400*30 ,session_id的cookie保存一个月,购物车和session都是根据这个值来获取的,如果丢失会重新生成一个,购物车的东西自然就找不到了
2,找到function gen_session_key($session_id)
最后一句改成
另外,我把$ip也去掉了,因为动态ip的话,同一台电脑下次访问可能ip不一样了,验证也不能通过
3,找到 function destroy_session()
把下面这段代码去掉,这是退出登录的时候,删除cookie,删除购物车的
1,找到 function cls_session(...)
在函数结尾出setcookie(...)的地方把 0 改成 time()+86400*30 ,session_id的cookie保存一个月,购物车和session都是根据这个值来获取的,如果丢失会重新生成一个,购物车的东西自然就找不到了
2,找到function gen_session_key($session_id)
最后一句改成
return sprintf('x', crc32(ROOT_PATH . $ip . $session_id));
2.7.3已经改过了,2.7.2的要改一下,我当初改这个是因为360chrome浏览器在两种模式切换的时候,HTTP_USER_AGENT会改变,没切换一次验证session_id就不能通过,要重新生成,登录,购物车什么的都失效了另外,我把$ip也去掉了,因为动态ip的话,同一台电脑下次访问可能ip不一样了,验证也不能通过
3,找到 function destroy_session()
把下面这段代码去掉,这是退出登录的时候,删除cookie,删除购物车的
setcookie($this->session_name, $this->session_id, 1, $this->session_cookie_path, $this->session_cookie_domain, $this->session_cookie_secure);
if (!empty($GLOBALS['ecs']))
{
$this->db->query('DELETE FROM ' . $GLOBALS['ecs']->table('cart') . " WHERE session_id = '$this->session_id'");
}
4,修改admin/privilege.php不如如果你设置购物车保存一个月的话,每次登录后台还是会被清除掉
function clear_cart()
{
$sql = "SELECT DISTINCT session_id " .
"FROM " . $GLOBALS['ecs']->table('cart') . " AS c, " .
$GLOBALS['ecs']->table('sessi**') . " AS s " .
"WHERE c.session_id = s.sesskey ";
$valid_sess = $GLOBALS['db']->getCol($sql);
// 删除cart中无效的数据
$time = gmtime();
$sql = "DELETE FROM " . $GLOBALS['ecs']->table('cart') .
" WHERE add_time < ".($time-86400*30)." AND session_id NOT " . db_create_in($valid_sess);
$GLOBALS['db']->query($sql);
}
这样的话应该就可以了另外我在用的时候,偶尔发现数据库日志错误,插入session错误,生成的session_id重复了可以做一个改进找到 function gen_session_id(),整个改成下面的代码:
function gen_session_id()
{
do
{
$this->session_id = md5(uniqid(mt_rand(), true));
$rs = $this->insert_session();
if ($rs !== false)
{
return $rs;
}
$error_no = $this->db->errno();
if ($error_no > 0 && $error_no != 1062)
{
die($this->db->ErrorMsg());
}
}
while ($error_no == 1062);
}
本文标签:
很赞哦! ()
相关教程
图文教程
ecshop数据库订单状态判断
order_info 表 刚下完订单 order_status 0 shipping_status 0 pay_status 0 取消 order_status 2
ecshop虚拟商品卡片序号和卡片密码长度限制的解决方法
ECSHOP在设置卡片序号和卡片密码时,用的字符数比较长,存储后显示的只有前面一部分,后面的一些字符显示不出来了,因为ECSHOP长度限制在60个字符
ecshop购物流程电子邮件必填和电话手机怎么去掉
1、include/lib_order.php;2、js/shopping_flow.js 函数checkC**ignee(frm)第582行左右去掉或注释掉
ecshop帮助中心限制文章条数的方法
有的站长的帮助中心的文章可能会很多,都显示在帮助中心里, 感觉会很乱。这里教你一个“在ECSHOP帮助中心限制文章显示条数”的方法
相关源码
-
(自适应响应式)HTML5建筑工程公司建筑集团网站模板下载基于PbootCMS内核开发的响应式建筑行业网站模板,为建筑工程公司、建筑集团等企业打造,通过简洁大气的设计风格展现企业专业形象。查看源码 -
(PC+WAP)房屋建造建筑工程房地产建材行pbootcms网站模板下载本模板基于PbootCMS内核开发,为房屋建造、建筑工程及房地产建材类企业设计。通过本模板可快速搭建具有行业特色的企业官网,只需替换文字与图片内容即可适配其他行业使用。查看源码 -
(自适应响应式)html5高档服装定制西服pbootcms模板下载本模板基于PbootCMS内核开发,为服装定制企业和服装品牌量身打造。设计风格时尚现代,充分展现服装行业的审美特质与品牌魅力。采用HTML5响应式技术,确保在各种设备上呈现视觉效果。整站布局注重产品展示与品牌叙事,帮助企业有效展示服装系列与定制服务,提升客户体验。查看源码 -
帝国cms7.5个人博客资讯文章模板下载本模板简洁个人博客网站设计开发,采用帝国CMS内核构建,只需替换文字图片即可快速搭建专业网站。自适应手机端设计,数据实时同步,操作简单便捷。PHP程序确保安全稳定运行,帮助您以较低成本获取持续业务。查看源码 -
pbootcms模板(PC+WAP)火锅加盟餐饮美食类带留言源码基于PbootCMS内核深度开发,为火锅、餐饮品牌打造的营销型解决方案。采用红色主题传递行业活力,实现PC与WAP端适配。查看源码 -
(自适应响应式)HTML5磁电机械设备蓝色营销型网站pbootcms模板本模板为磁电设备行业设计,采用蓝色营销风格,突出工业设备的专业性和技术感。模板结构清晰,能够有效展示磁电设备的技术参数、应用场景和企业实力,帮助客户快速了解产品特点和公司服务。查看源码
| 分享笔记 (共有 篇笔记) |
