UCHome中,关于用户退出过程的代码分析

今天来讲讲在UCHOME中关于用户退出这么一个动作是怎么实现的
首先我们看看用户退出链接的url:cp.php?ac=common&op=logout&uhash=c15638d1db1b3dfab9a3a22d7ec74210
从这个url中可以看出操作这个地址是文件是cp_common.php,打开这个文件,看看关于退出的代码

01.<?php
02. 
03./*
04.[UCenter Home] (C) 2007-2008 Comsenz Inc.
05.@author ymaozi
07.@uchome源码交流QQ群:83400263
08.*/
09. 
10.$op = empty($_GET['op'])?'':trim($_GET['op']);
11. 
12.if($op == 'logout') {
13. 
14.if($_GET['uhash'] == $_SGLOBAL['uhash']) {//$_SGLOBAL['uhash'],在common.php文件中设置,$_SGLOBAL['uhash'] = md5($_SGLOBAL['supe_uid']."\t".substr($_SGLOBAL['timestamp'], 0, 6));
15.//删除session
16.if($_SGLOBAL['supe_uid']) {//获取当前用户的uid
17.$_SGLOBAL['db']->query("DELETE FROM ".tname('session')." WHERE uid='$_SGLOBAL[supe_uid]'");//删除当前用户在session中的记录信息
18.$_SGLOBAL['db']->query("DELETE FROM ".tname('adminsession')." WHERE uid='$_SGLOBAL[supe_uid]'");//如果是管理员,则删除admimsession中当前的用户信息
19.}
20. 
21.if($_SCONFIG['uc_status']) {//处理UC应用,同步登出,在common.php中进行定义
22.include_once S_ROOT.'./uc_client/client.php';
23.$ucsynlogout = uc_user_synlogout();
24.} else {
25.$ucsynlogout = '';
26.}
27. 
28.clearcookie();//清除cookie信息
29.ssetcookie('_refer', ''); //将返回链接设置为空
30.}
31.showmessage('security_exit', 'index.php', 1, array($ucsynlogout));
32. 
33.}
34. 
35.//function_common.php
36./**
37.* 清空cookie与一些判断用户登录的信息
38.*/
39.function clearcookie() {
40.global $_SGLOBAL;
41. 
42.obclean(); //清除缓存
43.ssetcookie('auth', '', -86400 * 365); //设置cookie名为auth的过期
44.$_SGLOBAL['supe_uid'] = 0;
45.$_SGLOBAL['supe_username'] = '';
46.$_SGLOBAL['member'] = array(); //将这些全局变量清空
47.}
48.?>

以上就是关于用户退出的一些代码的处理,有什么不明白的,可心到群里进行咨询

posted on 2010-01-26 17:17  14的路  阅读(648)  评论(0编辑  收藏  举报

导航

友情链接:源码下载