技术相关 · 2014年8月21日

完美解决ecshop前台和后台自动退出、购物车自动清空

一、出现这个问题的原因:

        ECSHOP的SESSION采用IP生成用户唯一SESS_ID,这样的话,多线接入的用户在路由自动切换时就会造成IP变化,这样,SESSION也就丢失了,与SESSION相关的登陆购物车也就失效。 

二、原理

      当用户第一次登陆时,将用户的首次登陆IP存入Cookie,其它功能依然使用ECSHOP的SESSION。

三、操作

     在根目录includescls_session.php找到

     $this->_ip = real_ip();

    大概在82行,把它删除或用//注释掉,
    在原位置加入如下代码:


 /*启用cookie记录ip地址*/
        if(isset($_COOKIE['real_ipd']) && !empty($_COOKIE['real_ipd']))
        {  
            $this->_ip = $_COOKIE['real_ipd']; 
        } 
        else
        { 
            $this->_ip = real_ip(); 
            setcookie("real_ipd", $this->_ip, time()+36000, "/"); 
        }