当然其他判断方式 大家可以举一反三
方法一
修改 init.php 找到 define('SESS_ID', $sess->get_session_id()); 修改为 define('SESS_ID', md5(real_ip()));
if($_SESSION['user_id']>0){ define('SESS_ID', md5($_SESSION['user_id'])); }else{ define('SESS_ID', $sess->get_session_id()); }
这个时候如果是管理员登陆后台,那么所有用户的购物车都会清空。查找管理员登陆时的代码,发现验证管理员登陆成功的时候,系统调用函数将购物车的一些信息清除了。清除的代码位于根目录下的privilege.php文件:
// 清除购物车中过期的数据 clear_cart();
if (!defined('INIT_NO_USERS')) { /* 初始化session */ 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()); }
修改为 也就是把 define('SESS_ID', $sess->get_session_id());注释掉
if (!defined('INIT_NO_USERS')) { /* 初始化session */ 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()));
if($_SESSION['user_id']>0){ define('SESS_ID', md5($_SESSION['user_id'])); }else{ if($_COOKIE['randnumber']==""){ setcookie("randnumber",rand(0,1000),time()+86400); } define('SESS_ID', md5($_COOKIE['randnumber'].real_ip())); }
if(@$_SESSION['user_id']>0){ //@加入就可以不提示警告错误 define('SESS_ID', md5($_SESSION['user_id'])); }else{ define('SESS_ID', $sess->get_session_id()); }