UCHome中,关于用户退出过程的代码分析
今天来讲讲在UCHOME中关于用户退出这么一个动作是怎么实现的
 首先我们看看用户退出链接的url:cp.php?ac=common&op=logout&uhash=c15638d1db1b3dfab9a3a22d7ec74210
 从这个url中可以看出操作这个地址是文件是cp_common.php,打开这个文件,看看关于退出的代码
  
01.<?php02. 03./*04.[UCenter Home] (C) 2007-2008 Comsenz Inc.05.@author ymaozi06.@copyright http://www.codedesign.cn07.@uchome源码交流QQ群:8340026308.*/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.//删除session16.if($_SGLOBAL['supe_uid']) {//获取当前用户的uid17.$_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.php36./**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.?>以上就是关于用户退出的一些代码的处理,有什么不明白的,可心到群里进行咨询
 
                     
                    
                 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号 
