A-A+
解决ecshop关闭浏览器购物车商品清除的方法
今天 ecshop 出现了一个奇怪的问题,就是当关闭浏览器且再次重启浏览器的时候,发现购物车里面已经购物好的商品都不见了,还要重新再次将商品放进购物车,在反复测试了几次之后,确实存在这个 bug,夏日博客从网上找到一个方法,尝试了一下,测试OK。
打开 \includes\init.php 文件,找到如下的代码,在 150-158行。
if(!defined('INIT_NO_USERS')) { /*初始化session*/ include(ROOT_PATH . 'includes/cls_session.php'); $sess = new cls_session($db,$secs->table('sessions'),$ecs->table('sessions_data')); define('sess_ID',$sess->get_session_id()); }
修改成如下代码:
if (!defined('INIT_NO_USERS')) { include(ROOT_PATH . 'includes/cls_session.php'); $sess = new cls_session($db, $ecs->table('sessions'), $ecs->table('sessions_data')); //define('SESS_ID', $sess->get_session_id()); }
继续在本页面最下面代码 ?> 符号前面添加如下代码:
if($_COOKIE['randnumber']==""){ setcookie("randnumber",rand(0,1000),time()+86400); } define('SESS_ID', md5($_COOKIE['randnumber'].real_ip()));
解决的原理,实际上就是将保存购物车商品的方式改变了一下,在 ecshop 中,是以 session 的形式保存购物车商品的,而 session 在浏览器关闭之后也随之消失了,所以当关闭浏览器,再打开的时候商品也就不见了,我们改成 cookie 来保存商品则不会出现这种情况。
试验了,不好使。
Parse error: syntax error, unexpected $end in /data/home/qxu1002100084/htdocs/includes/init.php on line 304
是上面的提示