Chinaunix首页 | 论坛 | 博客
  • 博客访问: 168215
  • 博文数量: 89
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-29 23:10
文章分类

全部博文(89)

文章存档

2016年(89)

我的朋友

分类: Web开发

2016-03-26 14:58:50

关于ecshop2.7.0在部分IE浏览器下丢$_SESSION的问题、ecshop 用户登陆后自动跳出的问题

经查常是$_SESSION丢失,在网上查找发现IE6也有不少SESSION丢失的问题,这时,就要通过COOKIE来找回登录状态,但是 includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在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 '';
        }
    }

转载自:

阅读(542) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~