Ecshop
注销后,可以清空购物车,每个人都应该知道这个错误不情愿。
类似的网上教程很多,但都有一个问题,不讲好,新手是进错了!
总结了在线方法如下:
1,修改初始化。PHP
绑定 sess_id
IP
。老杨点评:各种障碍不解释。
2、修改 cls_session
。PHP
,让 user_id
0 购物车商品出口不删除,修改 lib_main
。PHP
将在购物车 sess_id
进入新的 session_id
。
老杨点评:甚至另一方面,但在不同的设置,或者浏览器访问,可以根据其他设备上的问题!必须重新登录商城模板来解决它!手机流行的年代,如果手机和电脑同时登录,或两台电脑登录时,您将会崩溃,,购物车是空的,除非重新登录!
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
退出登录会清空购物车的 bug
优化/解决方法