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系统本身带有退款功能,但是很麻烦.不能...