ecshop购物流程中出现“您的购物车中没有商品”和“会员自动退出”的问题解决方案

问题1:ecshop使用发现网站上的注册会员登录之后,在个别的地方个别的浏览器上会出现浏览了几个页面之后自动退出的现象。
问题2:ecshop购物流程中出现“您的购物车中没有商品”的问题。

这些问题经检查是$_SESSION丢失,在网上查找发现IE6也有不少SESSION丢失的问题,这时,就要通过COOKIE来找回登录状态,进过本地测试发现,includes\modules\integrates\ecshop.php这个文件整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态。

ecshop插件网给出解决方案:
打开includes\modules\integrates\ecshop.php文件,把如下代码加到最后面去就可以了。
    /**
     * 检查cookie
     *
     * @access  public
     * @param
     *
     * @return void
     */
    function check_cookie ()
    {
        if ( isset($_COOKIE['ECS'])  && isset($_COOKIE['ECS']['user_id'])  && isset($_COOKIE['ECS']['password']))
        {
            $ecs_user_id   = $_COOKIE['ECS']['user_id'];
            $ecs_user_pass = $_COOKIE['ECS']['password'];
            $sql = "SELECT " . $this->field_name ." AS user_name".
                   " FROM " . $this->table($this->user_table) .
                   " WHERE ".$this->field_id." = '$ecs_user_id' AND ".$this->field_pass." = '$ecs_user_pass'";
            $username = $this->db->getOne($sql);
            if ($username && ($this->charset != 'UTF8'))
            {
                $username = ecs_iconv($this->charset, 'UTF8', $username);
            }
            return $username;
        }
        else
        {
            return '';
        }
    }

本文原创地址:https://www.ecshop.cx/article-126.html
版权所有 © 转载时必须以链接形式注明出处!

觉得本文对您有用,想收藏下来!方法很简单:请点击-〉
我们一直坚持白天工作、晚上熬夜更新资源,付出了巨大的精力和时间,其中的辛酸难以言述。

实时购买动态 ×

不动如山会员 在 2019-08-15 购买了 ECSHOP网站安全100分必备补丁 防sql注入/漏洞屏蔽/防黑加固安全防御补丁