ecshop撤出登陆会清除买东西车的bug提升最好处理方式
本文摘要:ecshop撤出登录后,会清除买东西车,大伙儿都应当了解有那样的凑合算bug的难题。在网上相近的实例教程非常多,但都是有难题,说句不太好听的,算作引初学者入误入歧途!小结在网上方式以下:1、改动init.php,把sess_id关联ip的。老徐评价:各种各样混乱疑惑
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、
寻找(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 // 老徐ecshop 只清除密名** 

    } 

拷贝编码

2、
    define( SESS_ID , $sess- get_session_id());

拷贝编码

    //分辨是不是存有user_id的session,防止高版本号PHP出错 

    if(isset($_SESSION[ user_id ])){ 

     //假如存有vip会员登陆 

     if($_SESSION[ user_id ] 0){ 

         //获得相匹配user_id的session MD5码,后边添加 自定的自符串数据加密。 

         $user_session=md5($_SESSION[ user_id ].    // 內容可自主改动 

         //获得以前的session_id, 老徐ecshop 

         $old_session=$sess- get_session_id(); 

         //假如vip会员的session_id和本来的session_id不一样(则为新登陆状况),则将买东西车里原session_id的产品,升级为vip会员下的产品! 

         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); 

         } 

         //界定新的vip会员唯一session_id  老徐ecshop 

         define( SESS_ID ,$user_session); 

     }else{ 

         //不会有vip会员,再次用原来的session_id 

         define( SESS_ID , $sess- get_session_id()); 

     } 

    }else{ 

     //不会有vip会员,再次用原来的session_id 

     define( SESS_ID , $sess- get_session_id()); 

    }