uchome登陆状态以及session分析
2013-01-08 22:21 来源:www.chinab4c.com 作者:uchome专家
uchome登陆状态以及session分析,这个问题是十分值得研究的。因为我们知道严格来说uchome他是没有session的。所以这个问题直接要牵涉到uchome的核心内容。当我们登陆了uchome的时候。其实他是结合了session表以及cookie来实现登陆状态的判断的。首先我们看下function checkauth()函数。
@list($password, $uid) = explode("\t", authcode($_SCOOKIE['auth'], 'DECODE')).
$_SGLOBAL['supe_uid'] = intval($uid);
$password && $_SGLOBAL['supe_uid']
    $query = $_SGLOBAL['db']->query("SELECT * FROM ".tname('session')." WHERE uid='$_SGLOBAL[supe_uid]'");
            if($member = $_SGLOBAL['db']->fetch_array($query)) {
                if($member['password'] == $password) {
                    $_SGLOBAL['supe_username'] = addslashes($member['username']);
                    $_SGLOBAL['session'] = $member;
                } else {
                    $_SGLOBAL['supe_uid'] = 0;
                }
      }
然后通过member检索。是否存在session。如果在session里面,我们就可以直接判断是登陆的。如果session过期了,就通过cookie去取数据,然后通过uid去取member。
    $query = $_SGLOBAL['db']->query("SELECT * FROM ".tname('member')." WHERE uid='$_SGLOBAL[supe_uid]'");
                if($member = $_SGLOBAL['db']->fetch_array($query)) {
                    if($member['password'] == $password) {
                        $_SGLOBAL['supe_username'] = addslashes($member['username']);
                        $session = array('uid' => $_SGLOBAL['supe_uid'], 'username' => $_SGLOBAL['supe_username'], 'password' => $password);
                        include_once(S_ROOT.'./source/function_space.php');
                        insertsession($session);//登录
                    } else {
                        $_SGLOBAL['supe_uid'] = 0;
                    }
                } else {
                    $_SGLOBAL['supe_uid'] = 0;
                }
通过这个处理,他就保存了session。
怪不得uchome没有session。其实他就是用cookie来处理的。
来源:http:.//www.chinab4c.com
最近更新
常用插件
- ecshop订单来源统计插件
                                  我们的站可能会和很多渠道合作。比如我们和baidu合作,我们和google合作... 
- ecshop分类/频道下flash
                                  ecshop分类/频道下flash,这个的功能是非常有用的。ecshop首页flash这个功能... 
- ecshop多位小数显示插件
                                  ecshop多位小数显示插件... 
- ecshop自定义销售排行插件
                                  我们在ecshop程序里面,能看到ecshop中的产品销售出去之后,会有销售排... 
- ecshop退款申请插件二次开
                                  ecshop退款申请插件介绍:ecshop系统本身带有退款功能,但是很麻烦.不能... 



